概览

系统调用是操作系统内核提供给用户程序请求操作系统服务的接口。

系统调用在用户态调用,在内核态完成处理过程后回到用户态结束。

Tip

  • 不同操作系统在同一硬件的计算机的系统调用,暴露的接口是一样的
  • 硬件改变时,一般来说系统调用指令也会改变

系统调用过程

  1. 参数准备
  2. 陷入指令 trap,引发一个异常,进入对应的中断处理程序,即系统调用的入口程序
  3. 中断处理过程
  4. 进程变回就绪态,等到运行态后,完成系统调用的返回

Tip

若是传送数据类的系统调用,在中断处理过程结束后,数据被送到内核缓存区,等到运行态后,将内核缓冲区的数据复制到用户进程缓存区,系统调用返回。