题目
系统调用过程发生了什么
答案
**系统调用也属于中断机制的一种** 因为系统调用是通过**陷入指令**完成的,该指令会引发**内中断** 系统调用具体是什么? 操作系统作为计算机硬件之上的第一层软件,需要向上层提供一些简单易用的服务,这个上层包括用户和应用程序: ![](https://cs-wiki.oss-cn-shanghai.aliyuncs.com/img/20210216231246.png) 给用户提供的接口有图形界面 GUI 和命令接口,给应用程序提供的是程序接口,这个程序接口就是由一组系统调用组成的,是操作系统提供给开发人员使用的。所以系统调用其实就是**可供应用程序调用的特殊函数**,**应用程序可以通过系统调用来请求获得操作系统内核的服务**。 --- **系统调用的过程**大致如下: 1. 在用户态,应用程序传递系统调用参数 2. 执行陷入指令 `trap`,引发一个内中断,使 CPU 进入内核态 3. 在内核态,执行相应的请求,内核程序处理系统调用 4. 返回应用程序