系统调用本质上是过程调用的一种特殊形式,与一般过程调用有差别:
(1)运行状态不同。一般过程调用的调用过程和被调用过程均为用户程序,或者均为系统程序,运行在同一系统状态(用户态或系统态);系统调用的调用过程是用户态下的用户程序,被调用过程是系统态下的系统程序。
(2)软中断进入机制。一般的过程调用可直接由调用过程转向被调用过程;而系统调用不允许由调用过程直接转向被调用过程,一般通过软中断机制,先进入操作系统内核,经内核分析后,才能转向相应命令处理程序。
(3)返回及重新调度。一般过程调用在被调用结束后,返回调用点继续执行;系统调用被调用完后,要对系统中所有运行进程重新调度。只有当调用进程仍具有最高优先权才返回调用过程继续执行。
(4)嵌套调用。一般过程和系统调用都允许嵌套调用,注意系统过程嵌套而非用户过程。
(简答题)
试比较一般的过程调用和系统调用?
正确答案
答案解析
略