更新时间: 试题数量: 购买人数: 提供作者:

有效期: 个月

章节介绍: 共有个章节

收藏
搜索
题库预览
在不同的系统中,系统调用的实现方式可能不同,但大体上都可以把系统调用的执行过程分成以下几步。 ①设置系统调用号和参数 在一个系统中,往往都设置了多条系统调用命令,并赋予每条系统调用命令一个唯一的系统调用号。设置系统调用方式有2种方式。 • 直接将参数送入相应的寄存器中,这是最简单的一种方式。这种方式的主要问题是由于寄存器数量有限,从而限制了设置参数的数目。 • 参数表方式。将系统调用所需要的参数,放入一张参数表中,再将该参数表的指针放在某个规定的寄存器中。 ②系统调用命令的一般性处理 为了使不同系统调用能方便地转向相应的命令处理程序,在系统中配置了一张系统调用入口表。表中每个表目都对应一条系统调用命令,核心可利用系统调用号去查找该表,就可以找到相应命令处理程序的入口地址而去执行它。 ③系统调用命令处理程序的处理过程 为了提供系统调用的功能,操作系统内必须有事先编制好的实现这些功能的子程序或过程。这些程序是操作系统程序模块的一部分,且不能直接被用户程序调用。 程序员给定了系统调用名和参数之后是怎样得到系统服务的呢?这需要有一个类似于硬件终端处理的中断处理机构。当用户使用系统调用时,产生一条相应的指令,处理机在执行到该指令时发生相应的中断,并发出有信号给该处理机构。该处理机构在收到了处理机发来的信号后,启动相关的处理程序去完成该系统调用所要求的功能。 在系统中为控制系统调用服务的机构称为陷阱处理机构。与此相对应,把由于系统调用引起处理中断的指令为陷阱指令。在操作系统中,每个系统调用都对应一个功能号。在陷阱指令中必须包括对应系统调用的功能号。而且,在有些陷阱指令中,还带有传递给陷阱处理机构和内部处理程序的有关参数。 为了实现系统调用,系统设计人员还必须为实现各种系统调用功能的子程序编造入口地址表,每个入口地址都与相应的系统子程序名相对应。然后,由陷阱处理程序把陷阱指令中所包含的功能号与该入口地址表的有关项对应起来,从而由系统调用功能号驱动有关系统子程序执行。 由于在系统调用处理结束之后,用户程序还需利用系统调用的返回结果继续执行,因此,在进入系统调用处理之前,陷阱处理机构还需保存处理机现场。再者,在系统调用处理结束之后,陷阱处理机构还要回复处理机现场。在操作系统中,处理机的现场一般被保护在特定的内存区或寄存器中。