操作系统作为用户和计算机硬件之间的接口,需要向上提供一些简单易用的服务。主要包括命令接口和程序接口。其中,程序接口由一组系统调用组成。
为什么要有系统调用这个功能?
操作系统提供系统调用的功能。为了让用户进程使用某种共享资源不混用的情况,当某个用户进程要想使用某种共享资源的时候,只能通过系统调用向操作系统发送请求。操作系统会对各个请求进行协调管理。
系统调用和库函数的区别:
系统调用是操作系统向上层提供的接口,有的库函数是对系统调用的进一步的封装。
当今编写的应用程序大多是通过高级语言提供的库函数间接地进行系统调用。
系统调用背后的过程(系统调用发生在用户态,对系统调用的处理发生在核心态)
1.传递系统调用参数
2.执行陷入指令:产生内中断,使处理器从用户态进入核心态
3.执行系统调用相应服务程序
4.返回用户程序