问题 问答题

简述系统调用的实现过程。

答案

参考答案:系统调用是操作系统提供给软件开发人员的唯一接口,开发人员可以利用它使用系统功能。OS核心中都有一组实现系统功能的过程(子程序),系统调用是对上述过程的调用。因此系统调用直观上就像一个黑匣子,对用户屏蔽操作系统的具体动作而只提供有关的功能。
为了实现系统调用,系统设计人员还必须为实现各种系统调用功能的子程序编造入口地址表,每个入口地址都与相应的系统子程序名相对应。然后,由陷阱处理程序把陷阱指令中所包含的功能号与该入口地址表中的有关项对应起来,从而由系统调用功能号驱动有关系统子程序执行。
由于在系统调用处理结束后,用户程序还需利用系统调用的返回结果继续执行,因此,在进入系统调用处理之前,陷阱处理机构还需保存处理机现场。再者,在系统调用处理结束之后,陷阱处理机构还要恢复处理现场。在操作系统中,处理机的现场一般被保护在特定的内存区或寄存器中。系统调用的处理过程如图1-6所示。
有关系统调用的另一个问题是参数传递问题,不同的系统调用需要传递给系统子程序以不同的参数。而且,系统调用的执行结果也是以参数形式返回给用户程序的。一般把处理机在用户程序中执行称为用户态,而把处理机在系统程序中执行称为系统态。
[*]

单项选择题 B1型题
单项选择题