一.概念
系统调用就是操作系统提供给应用程序使用的接口,可以理解为可以供应用程序调用的特殊函数,应用程序可以通过发出系统调用请求来获得操作系统的服务。
二.作用
而操作系统提供系统调用功能,当用户进程想要调用打印机这种共享资源时,只能通过系统调用对系统发生请求,这样操作系统就可以对各个请求进行协调管理,这样就可以保证系统的安全和稳定。
注:系统调用会涉及到对系统资源的管理,对进程的控制,因此要调用一些特权指令才能完成,因此系统调用相关处理要在核心态下完成
三.系统调用和库函数
四.系统调用的过程
- 执行陷入指令之后,cpu的操作权就会交给操作系统,由操作系统进行系统调用。
- 首先传递系统调用参数
- 执行陷入指定(运行在用户态,当运行完陷入指令后,立即引发一个内中断,CPU会立即进入核心态)
- 此时操作系统获得CPU的控制权,开始执行系统调用相应服务程序(在核心态)
- 返回应用程序
注意:
- 发出系统调用请求是在用户态,而对系统调用的响应处理是在核心态下进行。
- 陷入指令是唯一一个只能在用户态执行,不能在核心态执行的指令
五.小结
- 系统调用可以理解为就是一个应用程序要调用系统功能的入口,而操作系统通过把守这个入口,来协调管理应用程序对系统功能的调用,来保证系统的安全性。
- 库函数中可以封装一些系统调用,使得系统调用更简单
- 陷入指定功能就是引发内中断,它是唯一一个只能在用户态执行得指令