计算机操作系统(第四版)汤小丹课后答案完整版 下载本文

影响 : 使程序的并发执行得以实行。

6.试从动态性,并发性和独立性上比较进程和程序

?

答: (1) 动态性是进程最基本的特性,表现为由创建而产生,由调度而执行,因得不到资源 而暂停执行,由撤销而消亡。进程有一定的生命期,而程序只是一组有序的指令集合, 是静

态实体。

(2) 并发性是进程的重要特征,同时也是

OS 的重要特征。引入进程的目的正是为了使

其程序能和其它进程的程序并发执行,而程序是不能并发执行的。

(3) 独立性是指进程实体是一个能独立运行的基本单位,也是系统中独立获得资源和独立调度的基本单位。对于未建立任何进程的程序,不能作为独立单位参加运行。 7.试说明 PCB 的作用,为什么说 PCB 是进程存在的惟一标志? 答: PCB 是进程实体的一部分,是操作系统中最重要的记录型 数据结构 。作用是使一个在多道程序环境下不能独立运行的程序,

成为一个能独立运行的基本单位,

成为能与其它进程

并发执行的进程。 OS 是根据 PCB 对并发执行的进程进行控制和管理的。 8.试说明进程在三个基本状态之间转换的典型原因。 答: ( 1)就绪状态 → 执行状态:进程分配到 CPU 资源

(2 )执行状态 → 就绪状态:时间片用完 (3 )执行状态 → 阻塞状态: I/O 请求 (4 )阻塞状态 → 就绪状态: I/O 完成 9.为什么要引入挂起状态?该状态有哪些性质? 答:引入挂起状态处于五种不同的需要

: 终端用户需要,父进程需要,操作系统需要,对换

北京石油化工学院信息工程学院计算机系 5/48 《计算机操作系统》习题参考答案余有明与计

07 和计 G09 的同学们编著 5/48

需要和负荷调节需要。处于挂起状态的进程不能接收处理机调度。 10 .在进行进程切换时,所要保存的处理机状态信息有哪些? 答:进行进程切换时,所要保存的处理机状态信息有: (1 )进程当前暂存信息 (2 )下一指令地址信息 (3 )进程状态信息

(4 )过程和系统调用参数及调用地址信息。 11 .试说明引起进程创建的主要事件。

答:引起进程创建的主要事件有:用户登录、作业调度、提供服务、应用请求。 12 .试说明引起进程被撤销的主要事件。

答:引起进程被撤销的主要事件有:正常结束、异常结束(越界错误、保护错、非法指令、 特权指令错、运行超时、等待超时、算术运算错、 I/O 故障)、外界干预(操作员或操作系

统干预、父进程请求、父进程终止)。

13 .在创建一个进程时所要完成的主要工作是什么?答:

(1 ) OS 发现请求创建新进程事件后,调用进程创建原语 (2 )申请空白 PCB ; (3 )为新进程分配资源; (4 )初始化进程控制块; (5 )将新进程插入就绪队列 .

14 .在撤销一个进程时所要完成的主要工作是什么?答:

(1 )根据被终止进程标识符,从

PCB 集中检索出进程 PCB ,读出该进程状态。

Creat() ;

(2 )若被终止进程处于执行状态,立即终止该进程的执行,置调度标志真,指示该进程被终止后重新调度。

(3 )若该进程还有子进程,应将所有子孙进程终止,以防它们成为不可控进程。 (4 )将被终止进程拥有的全部资源,归还给父进程,或归还给系统。

(5 )将被终止进程 PCB 从所在队列或列表中移出,等待其它程序搜集信息。 15 .试说明引起进程阻塞或被唤醒的主要事件是什么?

答: a. 请求系统服务; b. 启动某种操作; c. 新数据尚未到达; d. 无新工作可做 . 16 .进程在运行时存在哪两种形式的制约?并举例说明之。 答:

(1 )间接相互制约关系。举例:有两进程 的

一台打印机分配给了进程 绪。

(2 )直接相互制约关系。举例:有输入进程 时,

计算进程因不能获得所需数据而阻塞,当进程 之,当缓冲区已满时,进程 唤醒 A 。

17 .为什么进程在进入临界区之前应先执行 区”代码?

答:为了实现多个进程对临界资源的互斥访问,

必须在临界区前面增加一段用于检查欲访问“进入区 ”代码?而在退出前又要执行

“退出

A 把数据输入缓冲区后,便唤醒进程

B ;反

A 通过单缓冲向进程 B 提供数据。当缓冲空

B,则进程 A 只能阻塞; 一旦 B 释放打印机, A 才由阻塞改为就

A 和 B,如果 A 提出打印请求,系统已把唯一

A 因没有缓冲区放数据而阻塞,进程 B 将缓冲区数据取走后便

的临界资源是否正被访问的代码,如果未被访问,该进程便可进入临界区对资源进行访问, 并设置正被访问标志,如果正被访问,则本进程不能进入临界区,实现这一功能的代码为 进入区 \代码;在退出临界区后,必须执行 进程能再访问此临界资源。

\退出区 \代码,用于恢复未被访问标志,使其它

\

18. 同步机构应遵循哪些基本准则?为什么?

答:同步机构应遵循的基本准则是:空闲让进、忙则等待、有限等待、让权等待原因:为实现进程互斥进入自己的临界区。 19. 试从物理概念上说明记录型信号量

wait 和 signal 。

wait 操

答: wait(S) :当 S.value>0 时,表示目前系统中这类资源还有可用的。执行一次

作,意味着进程请求一个单位的该类资源, 使系统中可供分配的该类资源减少一个, 因此描述为 S.value:=S.value-1 ;当 S.value<0 时,表示该类资源已分配完毕,进程应调用 block 原语自我阻塞,放弃处理机,并插入到信号量链表

S.L 中。

signal(S) :执行一次 signal 操作,意味着释放一个单位的可用资源,使系统中可供分配 的该类资源数增加一个,故执行

S.value:=S.value+1

操作。若加 1 后 S. value ≤0,则表

wakeup 原语,将 S.L

示在该信号量链表中,仍有等待该资源的进程被阻塞,因此应调用 链表中的第一个等待进程唤醒。

20 .你认为整型信号量机制是否完全遵循了同步机构的四条准则? 答:整型信号量机制不完全遵循同步机制的四条准则,它不满足

“让权等待 ”准则。

21 .如何利用信号量机制来实现多个进程对临界资源的互斥访问?并举例说明之。 答:为使多个进程互斥访问某临界资源,只需为该资源设置一互斥信号量 初值为 1 ,然后将各进程访问该资源的临界区

mutex ,并设其

CS 置 于 wait(mutex) 和 signal(mutex) 操 作

mutex 执行

之间即可。这样,每个欲访问该临界资源的进程在进入临界区之前,都要先对

wait 操作,若该资源此刻未被访问, 本次 wait 操作必然成功, 进程便可进入自己的临界区, 这时若再有其他进程也欲进入自己的临界区,此时由于对 因而该进程阻塞, 从而保证了该临界资源能被互斥访问。

mutex 执行 wait 操作定会失败, 当访问临界资源的进程退出临界区

后,应对 mutex 执行 signal 操作,释放该临界资源。利用信号量实现进程互斥的进程描述 如下:

Var mutex: semaphore:=1 begin parbegin process 1: begin repeat wait(mutex) ; critical section signal(mutex) ; remainder section until false ; end

process 2: begin

repeat wait(mutex) ; critical section signal(mutex) ; remainder section until false ; end parend

22 .试写出相应的程序来描述图 2-17 所示的前驱图。

答:( a)Var a, b, c, d, e, f, g, h; semaphore:= 0, 0,0, 0, 0, 0, 0, 0; begin parbegin

begin S1; signal(a); signal(b); end; begin wait(a); S2; signal(c); signal(d); end; begin wait(b); S3; signal(e); end; begin wait(c); S4; signal(f); end; begin wait(d); S5; signal(g); end; begin wait(e); S6; signal(h); end; begin wait(f); wait(g); wait(h); S7; end; parend end

(b ) Var a, b, c, d, e, f, g, h,i,j; semaphore:= 0,0, 0, 0, 0, 0, 0,0,0, 0; begin parbegin

begin S1; signal(a); signal(b); end; begin wait(a); S2; signal(c); signal(d); end; begin wait(b); S3; signal(e); signal(f); end; begin wait(c); S4; signal(g); end; begin wait(d); S5; signal(h); end; begin wait(e); S6; signal(i); end; begin wait(f); S7; signal(j); end;

begin wait(g);wait(h); wait(i); wait(j); S8;end;