系统调用的过程及操作系统通过什么机制触发系统调用
过程
- 用户进程通过库函数或者直接使用汇编指令(如svc)发起系统调用请求,将系统调用号和参数保存在寄存器中。
- 处理器切换到内核模式,根据中断向量表跳转到系统调用总入口程序,保存用户进程的现场信息。
- 系统调用总入口程序根据系统调用号查找对应的服务例程,执行服务例程的功能。
- 服务例程执行完毕后,恢复用户进程的现场信息,返回到用户空间继续执行。
机制
操作系统通过中断机制触发系统调用。中断机制是一种硬件和软件之间的通信方式,可以让处理器响应外部事件或者内部异常。中断可以分为硬中断和软中断。硬中断是由外设产生的信号,如键盘输入、鼠标移动等。软中断是由当前运行的进程产生的指令,如svc、int等。系统调用就是一种软中断,它模拟了硬中断的处理过程。