问答题
现代操作系统一般都提供多进程(或称多任务)运行环境,回答以下问题:
问答题
为支持多进程的并发执行,系统必须建立哪些关于进程的数据结构?
【正确答案】为支持多进程的并发执行,系统为每个进程建立了一个数据结构:进程控制块(PCB),用于进程的管理和控制。PCB中记录了有关进程的一些描述信息和控制信息,包括进程标识符、进程当前的状态、优先级、进程放弃CPU时的现场信息,以及指示组成进程的程序和数据在存储器中存放位置的信息、资源使用信息、进程各种队列的连接指针和反映进程之间的隶属关系的信息等。
【答案解析】
问答题
为支持进程状态的变迁,系统至少应提供哪些进程控制原语?
【正确答案】在进程的整个生命周期中,会经历多种状态。进程控制的主要职能是对系统中所有进程实施有效地管理,它具有创建新进程、撤销已有进程、实现进程的状态转换等功能。在操作系统内核中,有一组程序专门用于完成对进程的控制,这些原语至少需要包括创建新进程原语、阻塞进程原语、唤醒进程原语、终止进程原语等操作。系统服务对用户开放,也就是说用户可以通过相应的接口来使用它们。
【答案解析】
问答题
执行每一个进程控制原语时,进程状态发生什么变化?相应的数据结构发生什么变化?
【正确答案】进程创建原语:从PCB集合中申请一个空白的PCB,将调用者参数(如进程外部标识符、初始CPU状态、进程优先数、初始内存及申请资源清单等),添入该PCB,设置记账数据。置新进程为“就绪”状态。
终止进程原语:用于终止完成的进程,回收其所占资源。包括消去其资源描述块,消去进程的PCB。
阻塞原语:将进程从运行状态变为阻塞状态。进程被插入等待事件的队列中,同时修改PCB中相应的表项,如进程状态和等待队列指针等。
唤醒原语:将进程从阻塞状态变为就绪状态。进程从阻塞队列中移出,插入到就绪队列中,等待调度,同时修改PCB中相应的表项,如进程状态等。
【答案解析】