什么是系统调用机制?
系统调用机制是用户程序请求内核服务的技术之一。系统调用始终为操作系统提供的服务提供接口。
让我们看看如下所示的系统调用机制的逐步解释:
步骤 1 - 在用户模式下运行用户程序的进程想要执行读取文件指令,它必须执行陷阱指令以将控制权转移到操作系统。
步骤 2 - 系统调用中的读取操作有三个参数,如下所示:
指定文件。
指向缓冲区。
给出要读取的字节数。
步骤 3 - Count = read (fd, buffer, nbytes);
步骤 4 - 首先将参数压入堆栈。
步骤 5 - 在上一步(步骤 4)中调用库程序。
步骤 6 - 库程序通常是用汇编语言编写的,它将系统调用号放在操作系统期望的位置,例如寄存器(步骤 5)。
步骤 7 - 然后为了从用户模式切换到内核模式并在内核中的固定地址开始执行(步骤 6),它执行 TRAP 指令。
步骤 8 - 内核代码开始执行 TRAP,检查系统调用号,然后分派到正确的系统调用处理程序,通常通过一个系统调用处理程序指针表来完成,该表根据系统调用号进行索引(步骤 7)。
步骤 9 - 在这一点上,系统调用处理程序运行(步骤 8)。
步骤 10 - 完成工作后,控制权可能会返回到用户空间库程序,返回到 TRAP 指令后的指令(步骤 9)。
步骤 11 - 此程序然后以通常的过程调用返回方式返回用户程序(步骤 10)。
以下是系统调用机制的图示:
广告