计算机操作系统

系统调用与过程调用在功能及实现上有什么相同点和不同点?

题目

系统调用与过程调用在功能及实现上有什么相同点和不同点?

参考答案和解析
正确答案: 相同点:两者都由程序代码构成,可直接用高级程序设计语言(如C,C++和Perl语言)来编制;使用方式相同——以函数调用的形式出现,调用时传送参数。
不同点:
①代码层次不同,过程调用不属于操作系统的一部分,而系统调用是操作系统的一部分。
②运行状态不同。过程调用只能在用户态下运行,不能进入核心态,而系统调用是在核心态下运行的。
③进入方式不同。过程调用在用户程序中调用,并直接在用户空间内执行;而系统调用可以在用户程序中调用,但是在用户程序中执行到系统调用时,会产生异常事件。实现处理机状态从用户态到核心态的转变,从而进入操作系统核心空间去执行系统调用的代码。