系统调用时由 *** 作系统实现提供的所有系统调用所构成的集合即程序接口或应用编程接口(Application Programming Interface,API)。是应用程序同系统之间的接口。
*** 作系统的主要功能是为管理硬件资源和为应用程序开发人员提供良好的环境来使应用程序具有更好的兼容性,为了达到这个目的,内核提供一系列具备预定功能的多内核函数,通过一组称为系统调用(system call)的接口呈现给用户。
系统调用把应用程序的请求传给内核,调用相应的的内核函数完成所需的处理,将处理结果返回给应用程序。
扩展资料
对于一般通用的OS而言,系统调用分为三大类:
1、进程控制类系统调用
主要用于对进程控制的系统调用有:
(1)创建和终止进程的系统调用。
(2)获得和设置进程属性的系统调用。进程的属性包括有进程标识符,进程优先级,最大允许执行时间等。
(3)等待某事件出现的系统调用。
2、文件 *** 纵类系统调用
(1)创建和删除文件
(2)打开和关闭文件的系统调用
(3)读和写文件的系统调用
3、进程通信类系统调用
在单机处理系统中,OS经常采用消息传递方式和共享存储区方式。
当采用消息传递方式时,通信前需先打开一个连接。为此,应由源进程发出一条打开连接的系统调用,而目标进程则应利用接受连接的系统调用表示同意进行通信;
然后,在源和目标进程之间便开始通信。可以利用发送消息的系统调用或者用接收消息的系统调用来交换信息。通信结束后,还须再利用关闭连接的系统调用结束通信。
用户在利用共享存储区进行通信之前,须先利用建立共享存储区的系统调用来建立一个共享存储区,再利用建立连接的系统调用将该共享存储区连接到进程自身的虚地址空间上,然后便可以利用读和写共享存储区的系统调用实现相互通信。
参考资料来源:百度百科-系统调用
各个 *** 作系统的实现并不一样,同样 *** 作系统在不同CPU上实现也有区别,但总的来说, *** 作系统都至少区分两个运行状态——核心态和用户态,系统调用运行在内核态,用户程序运行在用户态。用户态的所有代码都无法直接访问内核态的地址空间,只能通过系统调用(实际上就是系统留给用户的有限的接口)来访问系统功能。这样就保证了系统运行的安全可靠。
库函数直接这样叫是笼统的,如果与命题结合起来,同样也分两类,一类是系统库函数,一般是由 *** 作系统的编写者所提供的,只能由系统调用来使用的函数集,在用户态是无法访问的。它一般没有用户态库函数那么丰富,仅仅为了实现 *** 作系统必不可少的功能而专门设计。而用户态库函数一般是由支持语言的厂商设计提供的(如果用户愿意,也可以自己补充),可以相当丰富,但是它们本质上也还是用户程序,当它们想要运行系统功能的时候,也还是通过系统调用来实现。所以用户态库函数不过是厂家提供的功能完善的一组用户程序集合而已。
给个参考资料吧。 WINDOWS *** 作系统的主要功能: *** 作系统是用户与计算机硬件之间的接口, *** 作系统是对计算机硬件系统的第一次扩充,用户通过 *** 作系统来使用计算机系统。换句话来说, *** 作系统紧靠着计算机硬件并在其基础上提供了许多新的设施和能力,从而使得用户能够方便、可靠、安全、高效地 *** 纵计算机硬件和运行自己的程序。例如,改造各种硬件设施,使之更容易使用;提供原语或系统调用,扩展机器的指令系统;而这些功能到目前为止还难于由硬件直接实现。 *** 作系统还合理组织计算机的工作流程,协调各个部件有效工作,为用户提供一个良好的运行环境。经过 *** 作系统改造和扩充过的计算机不但功能更强,使用也更为方便,用户可以直接调用 *** 作系统提供的许多功能,而无需了解许多软硬件使用细节。 *** 作系统可以提供虚拟计算机(Virtual Machine)。许多年以前,人们就认识到必须找到某种方法把硬件的复杂性与用户隔离开来,经过不断的探索和研究,目前采用的方法是在计算机裸机上加上一层又一层的软件来组成整个计算机系统,同时,为用户提供一个容易理解和便于程序设计的接口。在 *** 作系统中,类似地把硬件细节隐藏并把它与用户隔离开来的情况处处可见,例如:I/O管理软件、文件管理软件、窗口软件向用户提供了一个越来越方便的使用I/O功能的方法。由此可见,每当在计算机上复盖一层软件,提供了一种抽象,系统的功能便增加一点,使用就更加方便一点,用户可用的运行环境就更加好一点。所以,当计算机上复盖了 *** 作系统后,便为用户提供了一台功能显著增强,使用更加方便,效率明显提高的机器。 *** 作系统还是计算机系统的资源管理者。在计算机系统中,能分配给用户使用的各种硬件和软件设施总称为资源。资源包括两大类:硬件资源和信息资源。其中,硬件资源分为处理器、存储器、I/O设备等,I/O设备又分为输入型设备、输出型设备和存储型设备;信息资源则分为程序和数据等。 *** 作系统的重要任务之一是有序地管理计算机中的硬件、软件资源,跟踪资源使用状况,满足用户对资源的需求,协调各程序对资源的使用冲突,为用户提供简单、有效的资源使用方法,最大限度地实现各类资源的共享,提高资源利用率,从而使得计算机系统的效率有很大提高。 资源管理是 *** 作系统的一项主要任务,而控制程序执行、扩充及其功能、屏蔽使用细节、方便用户使用、组织合理工作流程、改善人机界面等等都可以从资源管理的角度去理解。下面就从资源管理的观点来看 *** 作系统具有的几个主要功能。 1、处理机管理 处理器管理的第一项工作是处理中断事件,硬件只能发现中断事件,捕捉它并产生中断信号,但不能进行处理。配置了 *** 作系统,就能对中断事件进行处理。 处理器管理的第二项工作是处理器调度。在单用户单任务的情况下,处理器仅为一个用户的一个任务所独占,处理器管理的工作十分简单。但在多道程序或多用户的情况下,组织多个作业或任务执行时,就要解决处理器的调度、分配和回收等问题。近年来设计出各种各样的多处理器系统,处理器管理就更加复杂。为了实现处理器管理的功能, *** 作系统引入了进程(process)的概念,处理器的分配和执行都是以进程为基本单位;随着并行处理技术的发展,为了进一步提高系统并行性,使并发执行单位的粒度变细, *** 作系统又引入了线程(Thread)的概念。对处理器的管理最总归结为对进程和线程的管理,包括:1)进程控制和管理;2)进程同步和互斥;3)进程通信;4)进程死锁;5)处理器调度,又分高级调度,中级调度,低级调度等;6)线程控制和管理。 正是由于 *** 作系统对处理器的管理策略不同,其提供的作业处理方式也就不同,例如,批处理方式、分时处理方式、实时处理方式等等。从而,呈现在用户面前,成为具有不同性质和不同功能的 *** 作系统。 2、存储管理 存储管理的主要任务是管理存储器资源,为多道程序运行提供有力的支撑。存储管理的主要功能包括:1)存储分配。存储管理将根据用户程序的需要给它分配存储器资源。2)存储共享。存储管理能地让主存中的多个用户程序实现存储资源的共享,以提高存储器的利用率。3)存储保护。存储管理要把各个用户程序相互隔离起来互不干扰,更不允许用户程序访问 *** 作系统的程序和数据,从而保护用户程序存放在存储器中的信息不被破坏。4)存储扩充。由于物理内存容量有限,难于满足用户程序的需求,存储管理还应该能从逻辑上来扩充内存储器,为用户提供一个比内存实际容量大得多的编程空间,方便用户的编程和使用。 *** 作系统的这一部分功能与硬件存储器的组织结构和支撑设施密切相关, *** 作系统设计者应根据硬件情况和用户使用需要,采用各种相应的有效存储资源分配策略和保护措施。 3、设备管理 设备管理的主要任务是管理各类外围设备,完成用户提出的I/O请求,加快I/O信息的传送速度,发挥I/O设备的并行性,提高I/O设备的利用率;以及提供每种设备的设备驱动程序和中断处理程序,向用户屏蔽硬件使用细节。为实现这些任务,设备管理应该具有以下功能:1)提供外围设备的控制与处理;2)提供缓冲区的管理;3)提供外围设备的分配;4)提供共享型外围设备的驱动;5)实现虚拟设备。 4、文件管理 上述三种管理是针对计算机硬件资源的管理。文件管理则是对系统的信息资源的管理。在现代计算机中,通常把程序和数据以文件形式存储在外存储器上,供用户使用,这样,外存储器上保存了大量文件,对这些文件如不能采取良好的管理方式,就会导致混乱或破坏,造成严重后果。为此,在 *** 作系统中配置了文件管理,它的主要任务是对用户文件和系统文件进行有效管理,实现按名存取;实现文件的共享、保护和保密,保证文件的安全性;并提供给用户一套能方便使用文件的 *** 作和命令。具体来说,文件管理要完成以下任务:1)提供文件逻辑组织方法;2)提供文件物理组织方法;3)提供文件的存取方法;4)提供文件的使用方法;5)实现文件的目录管理;6)实现文件的存取控制;7)实现文件的存储空间管理。 5、网络与通信管理 计算机网络源于计算机与通信技术的结合, 近二十年来, 从单机与终端之间的远程通信, 到今天全世界成千上万台计算机联网工作, 计算机网络的应用已十分广泛。联网 *** 作系统至少应具有以下管理功能:1)网上资源管理功能。计算机网络的主要目的之一是共享资源,网络 *** 作系统应实现网上资滚源的共享, 管理用户应用程序对资源的访问, 保证信息资源的安全性和一致性。2)数据通信管理功能。计算机联网后, 站点之间可以互相传送数据, 进行通信, 通过通信软件, 按照通信协议的规定, 完成网络上计算机之间的信息传送。3)网络管理功能。包括: 故障管理、安全管理、性能管理、记帐管理和配置管理。 6、用户接口 为了使用户能灵活、方便地使用计算机和 *** 作系统, *** 作系统还提供了一组友好的用户接口,包括:1)程序接口;2)命令接口;3)图形接口。
以上就是关于什么是系统调用全部的内容,包括:什么是系统调用、系统调用与一般用户程序有什么区别,与库函数又有什么区别、 *** 作系统是使计算机便于 *** 作的软件系统等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)