计算机操作系统(第三版 西安电子科技大学出版社)课后题答案 联系客服

发布时间 : 星期三 文章计算机操作系统(第三版 西安电子科技大学出版社)课后题答案更新完毕开始阅读57961e1bfad6195f312ba66d

(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 发现请求创建新进程事件后,调用进程创建原语Creat(); (2)申请空白PCB;

(3)为新进程分配资源; (4)初始化进程控制块; (5)将新进程插入就绪队列.

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

(1)根据被终止进程标识符,从PCB 集中检索出进程PCB,读出该进程状态。 (2)若被终止进程处于执行状态,立即终止该进程的执行,置调度标志真,指示该进程被

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

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

答:a. 请求系统服务;b. 启动某种操作;c. 新数据尚未到达;d. 无新工作可做.

16.进程在运行时存在哪两种形式的制约?并举例说明之。 答:

(1)间接相互制约关系。举例:有两进程A 和B,如果A 提出打印请求,系统已把唯一的

一台打印机分配给了进程B,则进程A 只能阻塞;一旦B 释放打印机,A 才由阻塞改为就 绪。

(2)直接相互制约关系。举例:有输入进程A 通过单缓冲向进程B 提供数据。当缓冲空时,

计算进程因不能获得所需数据而阻塞,当进程A 把数据输入缓冲区后,便唤醒进程B;反

之,当缓冲区已满时,进程A 因没有缓冲区放数据而阻塞,进程B 将缓冲区数据取走后便 唤醒A。

17.为什么进程在进入临界区之前应先执行“进入区”代码?而在退出前又要执行“退出 区”代码? 答:为了实现多个进程对临界资源的互斥访问,必须在临界区前面增加一段用于检查欲访问

的临界资源是否正被访问的代码,如果未被访问,该进程便可进入临界区对资源进行访问,

并设置正被访问标志,如果正被访问,则本进程不能进入临界区,实现这一功能的代码为\

北京石油化工学院信息工程学院计算机系6/48

《计算机操作系统》习题参考答案余有明与计07和计G09的同学们编著 6/48 进入区\代码;

在退出临界区后,必须执行\退出区\代码,用于恢复未被访问标志,使其它进程能再访问此 临界资源。

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

答:同步机构应遵循的基本准则是:空闲让进、忙则等待、有限等待、让权等待 原因:为实现进程互斥进入自己的临界区。

19. 试从物理概念上说明记录型信号量wait 和signal。

答:wait(S):当S.value>0 时,表示目前系统中这类资源还有可用的。执行一次wait 操 作,意味着进程请求一个单位的该类资源,使系统中可供分配的该类资源减少一个,因此描

述为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.如何利用信号量机制来实现多个进程对临界资源的互斥访问?并举例说明之。 答:为使多个进程互斥访问某临界资源,只需为该资源设置一互斥信号量mutex,并设其

初值为1,然后将各进程访问该资源的临界区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 seetion

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; parend end

23.在生产者消费者问题中,如果缺少了signal(full)或signal(empty),对执行结果有何影响? 答: