第一章课后习题: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; beginparbeginbegin 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; beginparbeginbegin 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 前趋图parendend23、在生产者-消费者问题中,如果缺少了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 :repeatlock(W);critical sectionunlock(W);remainder sectionuntil 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;RepeatWait(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)+n2、试选择(A)~(D),以便能正确地描述图1所示的前趋关系。
Var a,b,c: semaphore:=0,0,0;beginparbeginbegin S1; (A); end;begin:S2; (B); end;begin:wait(a); wait(b); S3; (C); end;begin:(D);S4; end;parendend图1 前趋图A、B、C、D:(1)signal(a);(2)signal(b);(3)wait(c);(4)signal(c)。