什么是系统调用

Python016

什么是系统调用,第1张

系统调用时由操作系统实现提供的所有系统调用所构成的集合即程序接口或应用编程接口(Application Programming Interface,API)。是应用程序同系统之间的接口。

操作系统的主要功能是为管理硬件资源和为应用程序开发人员提供良好的环境来使应用程序具有更好的兼容性,为了达到这个目的,内核提供一系列具备预定功能的多内核函数,通过一组称为系统调用(system call)的接口呈现给用户。

系统调用把应用程序的请求传给内核,调用相应的的内核函数完成所需的处理,将处理结果返回给应用程序。

扩展资料

对于一般通用的OS而言,系统调用分为三大类:

1、进程控制类系统调用

主要用于对进程控制的系统调用有:

(1)创建和终止进程的系统调用。

(2)获得和设置进程属性的系统调用。进程的属性包括有进程标识符,进程优先级,最大允许执行时间等。

(3)等待某事件出现的系统调用。

2、文件操纵类系统调用

(1)创建和删除文件

(2)打开和关闭文件的系统调用

(3)读和写文件的系统调用

3、进程通信类系统调用

在单机处理系统中,OS经常采用消息传递方式和共享存储区方式。

当采用消息传递方式时,通信前需先打开一个连接。为此,应由源进程发出一条打开连接的系统调用,而目标进程则应利用接受连接的系统调用表示同意进行通信;

然后,在源和目标进程之间便开始通信。可以利用发送消息的系统调用或者用接收消息的系统调用来交换信息。通信结束后,还须再利用关闭连接的系统调用结束通信。

用户在利用共享存储区进行通信之前,须先利用建立共享存储区的系统调用来建立一个共享存储区,再利用建立连接的系统调用将该共享存储区连接到进程自身的虚地址空间上,然后便可以利用读和写共享存储区的系统调用实现相互通信。

参考资料来源:百度百科-系统调用

系统调用,一般有两种,一种是API ,即application program interface即应用程序接口,我们所说的库函数 实际上就是一种API函数,所以,这种情况下,它们是一种东西,所以可以共存,另外一种系统调用,是内核级的,在linux上可以直接通过内核调用指令,或者在C语言代码中通过 asm关键字内联调用。。这时候,这还是系统调用。。只不过是更低层的操作系统调用。。