目录
知识总览
1、什么是系统调用,有何作用?
“系统调用”是操作系统提供给应用程序(程序员/编程人员)使用的接口,可以理解为一种可供应用程序调用的特殊函数,应用程序可以发出系统调用请求来获得操作系统的服务,系统调用会使处理器从用户态进入核心态。
应用程序通过系统调用请求操作系统的服务。系统中的各种共享资源都由操作系统统一管理,因此,在用户程序中,凡与资源有关的操作(如存储分配、I/O操作等),须通过系统调用的方式向操作系统提出服务请求,保证系统的稳定性和安全性。
2、系统调用与库函数的区别
①系统调用是操作系统向上层提供的接口;
②有的库函数是对系统调用的进一步封装;
③当今编写的应用程序大多是通过高级语言提供的库函数间接地进行系统调用
3、系统调用背后的过程
详解:
过程:
①传递系统调用函数 ;
② 执行陷入指令(用户态);
③ 执行系统调用相应服务程序(核心态);
④返回用户程序
注意:
①陷入指令是在用户态执行的,执行陷入指令之后立即引发一个内中断,从而CPU进入核心态;
②发出系统调用请求是在用户态,而对系统调用的相应处理是在核心态下进行的;
③陷入指令是唯一一个只能在用户态执行而不可在核心态执行的指令。
回顾
参考:
《王道计算机考研 操作系统》
https://www.bilibili.com/video/av70156862