OS习题和答案汇总-给学生
- 格式:pdf
- 大小:212.02 KB
- 文档页数:9
OS习题和答案汇总-给学⽣
第⼀章
课后习题:1.设计现代OS的主要⽬标是什么?
答:⽅便性,有效性,可扩充性和开放性.2. OS的作⽤可表现为哪⼏个⽅⾯?
答:a. OS作为⽤户与计算机硬件系统之间的接⼝(⽤户观点);
b. OS作为计算机系统资源的管理者(设计者观点);
c. OS作为扩充机器.(虚拟机观点)
13、OS具有哪⼏⼤特征?它的最基本特征是什么?
a. 并发(Concurrence)、共享(Sharing)、虚拟(Virtual)、异步性(Asynchronism)。
b. 其中最基本特征是并发和共享。
25、从资源管理的⾓度看,操作系统具有哪些功能?
处理机管理、存储器管理、设备管理和⽂件管理。
补充习题:
1、在计算机系统中配置操作系统的主要⽬的是(A),操作系统的主要功能是管理计算机系统中的(B),其中包括(C)管理和(D)管理,以及设备管理和⽂件管理。这⾥的(C)管理主要是对进程进⾏管理。
A:(1)增强计算机系统的功能;(2)提⾼系统资源的利⽤率;
(3)提⾼系统的运⾏速度;(4)合理地组织系统的⼯作流程,以提⾼系统吞吐量。
B:(1)程序和数据;(2)进程;(3)资源;(4)作业;(5)任务。
C、D:(1)存储器;(2)虚拟存储器;(3)运算器;(4)处理机;(5)控制器。2、操作系统有多种类型:
(1)允许多个⽤户以交互⽅式使⽤计算机的操作系统,称为(A);
(2)允许多⽤户将若⼲个作业提交给计算机系统集中处理的操作系统称为(B);
(3)在(C)的控制下,计算机系统能及时处理由过程控制反馈的数据,并做出响应。A、B、C:(1)批处理操作系统;(2)分时操作系统;(3)实时操作系统;(4)微机操作系统;(5)多处理机操作系统。3、从下⾯关于操作系统的论述中,选出⼀条正确的论述:( )
(1)对批处理作业,必须提供相应的作业控制信息;
(2)对于分时系统,不⼀定全部提供⼈机交互功能;
(3)从响应⾓度看,分时系统与实时系统的要求相似;
(4)采⽤分时操作系统的计算机系统中,⽤户可以独占计算机操作系统的⽂件系统;(5)从交互⾓度看,分时系统与实时系统相似。4、操作系统是⼀种(A),在OS中采⽤多道程序设计技术,能有效地提⾼CPU、内存和I/O设备的(B),为实现多道程序设计需要有(C)。
A:(1)应⽤软件;(2)系统软件;(3)通⽤软件;(4)软件包。B:(1)灵活性;(2)可靠性;(3)兼容性;(4)利⽤率。
C:(1)更⼤的内存(2)更快的CPU;(3)更快的外部设备;(4)更先进的终端。5、操作系统是⼀种应⽤软件。()
6、分时系统中,时间⽚越⼩越好。()
7、多道程序设计是指在⼀台处理机上同⼀时刻运⾏多个程序。()
8、在实时要求严格的实时系统中进程调度采⽤⾮抢占⽅式。()
9、操作系统的基本职能是()。
(1)控制和管理系统内各种资源,有效地组织多道程序的运⾏
(2)提供⽤户界⾯,⽅便⽤户使⽤
(3)提供⽅便的可视化编辑程序
(4)提供功能强⼤的⽹络管理⼯具10、为了使系统中所有的⽤户都能得到及时的响应,该操作系统应该是()。
(1)多道批处理系统;(2)分时系统;(3)实时系统;(4)⽹络系统。
第⼆章7、试说明PCB的作⽤?为什么说PCB是进程存在的唯⼀标志?
(1)PCB是进程实体的⼀部分(进程实体包括PCB、程序代码、数据),是操作系统中最重要的记录型数据结构,PCB中记录了操作系统所需的⽤于描述进程情况及控制进程运⾏所需的全部信息。
(2)在进程的整个⽣命周期中,系统总是通过其PCB对进程进⾏控制,系统是根据进程的PCB⽽感知到该进程的存在的,所以说,PCB是进程存在的唯⼀标志。8、试说明进程在三个状态之间转换的典型原因
答:主要原因是I/O请求和I/O完成、(CPU)进程调度、时间⽚完。19、试从物理概念上说明记录型信号量及其操作wait和signal。
答:Wait操作⼜叫P操作,signal操作⼜叫V操作。
(1)信号量的初值表⽰系统中某类资源的数⽬。
(2)对信号量的每次wait操作,表⽰请求⼀个单位的该类资源,使系统中可供分配的该类资源数减少⼀个。
(3)对信号量的每次signal操作,表⽰执⾏进程释放⼀个单位资源,使系统中可供分配的该类资源数增加⼀个。20、你认为整型信号量机制和记录型信号量机制,是否完全遵循了同步机构的四条准则? 答:
a. 在整型信号量机制中,未遵循"让权等待"的准则,存在“忙等”现象。
b. 记录型信号量机制完全遵循了同步机构的四条准则。
22、试写出相应的程序来描述图22-1、22-2所⽰的前驱图。
答:参考P54-55“2利⽤信号量实现前驱关系”(考研的同学应把这部分内容看⼀下)。这也是信号量对进程同步的⼀种⽤法,信号量初值为0。
图22-1的程序描述如下:Var a,b,c,d,e,f,g,h: semaphore:=0,0,0,0,0,0,0,0; beginparbegin
begin S1; V(a); V(b); end;
begin P(a); S2; V(c); V(d); end; begin P(b); S3; V(e); end; begin P(c); S4; V(f); end; begin P(d); S5; V(g); end; begin P(e); S6;V(h);end;
begin P(f); P(g); P(h); S7; end; parend end
图22-2的程序描述如下: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; V(a); V(b); end;
begin P(a); S2; V(c); V(d); end; begin P(b); S3; V(e); V(f);end; begin P(c); S4; V(g); end; begin P(d); S5; V(h); end; begin P(e);S6; V(i);end; begin P(f); S7; V(j);end;
begin P(g); P(h); P(i); P(j);S7; end;
图22-1 前趋图
图22-2 前趋图parend
end
23、在⽣产者-消费者问题中,如果缺少了signal(full)或signal(empty),对执⾏结果会有何影响?
答:
(1)缓冲区满后(empty=0),⽣产者进程被阻塞(进⼊关于信号量empty的等待队列),由于消费者取⾛产品后不执⾏signal(empty), 被阻塞的⽣产者进程继续被阻塞,即便缓冲区有空位也不能⽣产。
(2)缓冲区空后(full=0),消费者进程被阻塞(进⼊关于信号量full的等待队列),由于⽣产者⽣产后不执⾏signal(full), 被阻塞的消费者进程继续被阻塞,即便缓冲区有产品也不能消费。24、在⽣产者-消费者问题中,如果将两个wait操作即wait(full)和wait(mutex)互换位置;或者是将signal(mutex)与signal(full)互换位置结果会如何?
答:
(1)如果将(消费者的)两个wait操作即wait(full)和wait(mutex)互换位置,后果是:a.影响了多个消费者的并发性,当⼀个消费者进⾏了wait(mutex),其它消费者因得不到mutex 被阻塞,即便缓冲区有多个产品也不允许取。(形象的说,教材的解法允许多个消费者同时逛商店,但拿产品时⼀个⼀个消费者拿;⽽颠倒wait(full)和wait(mutex)顺序后,商店⼀次只能允许⼀个顾客进⼊,等顾客拿完产品出门后,另⼀位顾客才能进去。)b. 可能造成死锁。假如某消费者执⾏wait(mutex)后没被阻塞,但接着执⾏wait(full)后被阻塞了, 要等待⽣产者的signal (full)才能解除阻塞,⽽⽣产者可能因消费者提前使mutex=0⽽被阻塞,⽆法执⾏signal (full),这样就造成死锁。
(2)将(⽣产者的)signal(mutex)与signal(full)互换位置,似乎不会影响并发性,也不会造死锁,这也是⼀种正确的写法。25. 我们为某临界区设置⼀把锁W,当W=1时,表⽰关锁;W=0时,表⽰锁已打开.试写出开锁原语和关锁原语,并利⽤它们去实现互斥.
答:
锁可以看作是共享变量W,对W有两个操作:unlock(W),lock(W),这两个操作必须是原⼦操作,其理由与信号量必须是原⼦操作⼀样。锁⽐信号量简单,但只能⽤于进程互斥,不能⽤于同步。
(1)开锁原语:unlock(W){W=0;}
(2)关锁原语:lock(W) { if(W==1) do no_op; W=1;}
(3)利⽤开关锁原语实现互斥,⽤lock(W);替代Entry section,unlock(W)替代Exit section 即可。var W:=0;
process :
repeat
lock(W);
critical section
unlock(W);
remainder section
until false;
26、试修改下⾯⽣产者—消费者问题解法中的错误
答:按P58的正确解法修改即可。27、试利⽤记录型信号量写出⼀个不会出现死锁的哲学家进餐问题的算法.
答:根据死锁的四个必要条件,只要破除其中⼀个必要条件即可。
第i个哲学家的活动描述为:Var chopsticks:array[0,…,4] of semaphore:=(1,1,1,1,1);
(chopsticks(i)=1,i=0, (4)Sm:semaphore:=4;
Repeat
Wait(Sm);
Wait(chopsticks[i]);
Wait(chopsticks[(i+1)mod 5]);
Eat();
Signal(chopsticks[i]);
Signal(chopsticks[(i+1)mod 5]);
Signal(Sm);
Think();
Until false;
补充题:1、在⽣产者-消费者问题中,应设置互斥信号量mutex、资源信号量full和empty。它们的初值应分别是(A)、(B)、(C)。A、B、C:(1)0 (2)1 (3)-1 (4)-n (5)+n
2、试选择(A)~(D),以便能正确地描述图1所⽰的前趋关系。
Var a,b,c: semaphore:=0,0,0;
begin
parbegin
begin S1; (A); end;
begin:S2; (B); end;