系统调用

什么是系统调用

我们知道操作系统要向上提供两种接口,一种是命令接口,一种是程序接口,而程序接口就是由一组系统调用组成,我们可以把系统调用简单的理解为,可供应用程序调用的特殊函数,应用程序可以发出系统调用请求来获得操作系统的服务。

系统调用功能

功能

需要注意的是,有的功能是需要特权指令的,因此要在系统调用的相关处理要在核心态下进行

系统调用与库函数的区别

区别

图中黑色箭头表示,我们本该用汇编语言调用系统调用,但现在我们一般都通过调用高级语言的库函数来实现调用系统调用,因为库函数封装好了系统调用。

传递系统调用参数->执行陷入指令(用户态)->执行系统调用响应服务程序(核心态)->返回用户程序

这里需要注意,陷入指令是唯一一个只能在用户态执行而不能在核心态执行的指令

发出用户系统调用请求是在用户态,对系统调用的处理在核心态
-------------本文结束感谢您的阅读-------------