系统调用也叫程序接口,是应用程序请求 OS 内核完成某功能时的一种过程调用,是用户程序对 OS 内核功能进行调用的一种手段。
在设置了系统调用功能号和参数后,执行系统调用指令便开始进入系统调用,其一般处理过程如下:
1) 系统产生软中断(或陷入),由中断硬件完成部分现场信息保护: PSW 的值和 PC 寄存器的值;并通过中断向量转向系统总控中断处理程序完成其他 CPU 现场信息的保存:如陷入类型、参数表指针、其他 CPU 寄存器的值等
2) 然后转向执行系统调用处理程序:使用系统调用功能号查找系统调用入口表,找到相应系统调用的处理子程序的入口地址;
3) 执行系统调用处理子程序,完毕后返回执行成功与否以及成功时的执行结果给调用者;恢复被中断进程或新调度进程的 CPU 现场,返回被中断进程或新调度进程执行。