1、系统调用的作用2、系统调用和库函数的区别3、系统调用背后的过程
命令接口和程序接口
1、操作系统作为用户和计算机硬件之间的接口,需要向上提供一些简单易用的服务。主要包括命令接口和程序接口。
2、命令接口指允许用户直接使用的接口,分为联机命令接口和脱机命令接口。联机命令接口指用户说一句,系统做一句的接口,脱机命令接口指用户说了一堆,系统做一堆的接口。
3、程序接口指允许用户通过程序间接使用的接口,是由一组系统调用组成。
系统调用的概念
1、“系统调用”是操作系统提供给应用程序(程序员/编程人员)使用的接口,可以理解为一种可供应用程序调用的特殊函数,应用程序可以发出系统调用请求来获得操作系统的服务。
2、系统调用相关处理涉及到对系统资源的管理、对进程的控制,这些功能需要执行一些特权指令才能完成,因此系统调用的相关处理需要在核心态下进行。
系统调用的作用
1、应用程序通过系统调用请求操作系统的服务。
2、系统中的各种共享资源都由操作系统统一掌管,因此在用户程序中,凡是与资源有关的操作(如存储分派 、I/O操作、文件管理的等)都必须通过系统调用的方式向操作系统提出服务请求,由操作系统代为完成。
3、因此,系统调用可以保证系统的稳定性和安全性,防止用户进行非法操作。
系统调用与库函数的区别
1、应用程序可以直接进行系统调用,应用程序也可以通过有的库函数间接使用系统调用。
2、有的库函数会将系统调用封装在内,以隐藏系统调用的一些细节达到使上层调用更方便的目的。
系统调用背后的过程
1、用户程序在执行到某一步时需要使用系统调用,所以首先需要传入系统调用的参数。
2、收到系统调用的需求,CPU会执行陷入指令(目的是由用户态切换到核心态)。
3、CPU在核心态下执行系统调用的相应服务程序,结束后返回用户程序。