OS课后习题答案.doc





《OS课后习题答案.doc》由会员分享,可在线阅读,更多相关《OS课后习题答案.doc(16页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 第一章 操作系统引论2OS的作用可表现在哪几个方面? 答:(1)OS作为用户与计算机系统之间的接口 (2)OS作为计算机系统资源的管理者 (3)OS实现了对计算机资源的抽象 3为什么说OS实现了对计算机资源的抽象? 答:OS首先在裸机上覆盖一层I/O设备管理软件,实现了对计算机硬件操作的第一层次抽 象;在第一层软件上再覆盖文件管理软件,实现了对硬件资源操作的第二层次抽象。OS通过在计算机硬件上安装多层系统软件,增强了系统功能,隐藏了对硬件操作的细节,由它们共同实现了对计算机资源的抽象。 4试说明推动多道批处理系统形成和发展的主要动力是什么。 答:主要动力来源于四个方面的社会需求与技术发展:(
2、1) 不断提高计算机资源的利用率; (2)方便用户; (3)器件的不断更新换代; (4)计算机体系结构的不断发展。 6试说明推动分时系统形成和发展的主要动力是什么。 答:推动分时系统形成和发展的主要动力是更好地满足用户的需要。主要表现在:CPU的分时使用缩短了作业的平均周转时间;人机交互能力使用户能直接控制自己的作业;主机的共享使多用户能同时使用同一台计算机,独立地处理自己的作业。 11试列出Windows OS中五个主要版本,并说明它们分别较之前一个版本有何改进。 答:(1)Microsoft Windows 1.0是微软公司在个人电脑上开发图形界面的首次尝试。 (2)Windows 95是
3、混合的16位/32位系统,第一个支持32位。带来了更强大、更稳定、更实用的桌面图形用户界面,结束了桌面操作系统间的竞争。 (3)Windows 98是微软公司的混合16位/32位Windows 操作系统,改良了硬件标准的支持,革新了内存管理,是多进程操作系统。 (4)Windows XP是基于Windows 2000的产品,拥有新用户图形界面月神Luna。简化了用户安全特性,整合了防火墙。 (5)Windows Vista 包含了上百种新功能;特别是新版图形用户界面和Windows Aero全新界面风格、加强的搜寻功能(Windows Indexing Service)、新媒体创作工具以及重
4、新设计的网络、音频、输出(打印)和显示子系统。12试从交互性、及时性以及可靠性方面,将分时系统与实时系统进行比较。 答:(1)及时性:实时信息处理系统对实时性的要求与分时系统类似,都是以人所能接受的等待时间来确定;而实时控制系统的及时性,是以控制对象所要求的开始截止时间或完成截止时间来确定的,一般为秒级到毫秒级,甚至有的要低于100微妙。 (2)交互性:实时信息处理系统具有交互性,但人与系统的交互仅限于访问系统中某些特定的专用服务程序。不像分时系统那样能向终端用户提供数据和资源共享等服务。 (3)可靠性:分时系统也要求系统可靠,但相比之下,实时系统则要求系统具有高度的可靠性。因为任何差错都可能
5、带来巨大的经济损失,甚至是灾难性后果,所以在实时系统中,往往都采取了多级容错措施保障系统的安全性及数据的安全性。 18什么原因使操作系统具有异步性特征?(1)程序执行结果是不确定的,即程序是不可再现的(2)每个程序在何时执行,多个程序间的执行顺序以及完成每道程序所需的时间都是不确定的,即不可预知性23何谓微内核技术?在微内核中通常提供了哪些功能? 答:把操作系统中更多的成分和功能放到更高的层次(即用户模式)中去运行,而留下一个尽量小的内核,用它来完成操作系统最基本的核心功能,称这种技术为微内核技术。 在微内核中通常提供了进程(线程)管理、低级存储器管理、中断和陷入处理等功能。 第二章 进程管理
6、 2. 试画出下面四条语句的前趋图: S1:a:=x+y; S2:b:=z+1; S3:c:=a b; S4:w:=c+1; 4程序并发执行时为什么会失去封闭性和可再现性? 答:程序并发执行时,多个程序共享系统中的各种资源,因而这些资源的状态由多个程序改变,致使程序运行失去了封闭性,也会导致其失去可再现性。 5在操作系统中为什么要引入进程概念?它会产生什么样的影响? 答:为了使程序在多道程序环境下能并发执行,并能对并发执行的程序加以控制和描述,而引入了进程概念影响: 使程序的并发执行得以实行6试从动态性,并发性和独立性上比较进程和程序。答:(1)动态性是进程最基本的特性,表现为由创建而产生,由
7、调度而执行,因得不到资源而暂停执行,由撤销而消亡。进程有一定的生命期,而程序只是一组有序的指令集合,是静态实体(2)并发性是进程的重要特征,同时也是OS的重要特征。引入进程的目的正是为了使其程序能和其它进程的程序并发执行,而程序是不能并发执行的。 (3)独立性是指进程实体是一个能独立运行的基本单位,也是系统中独立获得资源和独立调度的基本单位。对于未建立任何进程的程序,不能作为独立单位参加运行。 7试说明PCB的作用,为什么说PCB是进程存在的惟一标志? 答:PCB是进程实体的一部分,是操作系统中最重要的记录型数据结构。作用是使一个在多道程序环境下不能独立运行的程序,成为一个能独立运行的基本单位
8、,成为能与其它进程并发执行的进程。OS是根据PCB对并发执行的进程进行控制和管理的。 8试说明进程在三个基本状态之间转换的典型原因。 答:(1)就绪状态执行状态:进程分配到CPU资源 (2)执行状态就绪状态:时间片用完 (3)执行状态阻塞状态:I/O请求 (4)阻塞状态就绪状态:I/O完成 23在生产者消费者问题中,如果缺少了signal(full)戒signal(empty),对执行结果有何影响? 答:如果缺少signal(full),那么表明从第一个生产者进程开始就没有改变信号量full值,即使缓冲池产品已满,但full值还是0,这样消费者进程执行wait(full) 时认为缓冲池是空而取
9、不到产品,消费者进程一直处于等待状态。 如果缺少signal(empty),在生产者进程向n个缓冲区投满产品后消费者进程才开始从中取产品,这时empty=0,full=n,那么每当消费者进程取走一个产品empty值并不改变,直到缓冲池取空了,empty值也是0,即使目前缓冲池有n个空缓冲区,生产者进程要想再往缓冲池中投放产品也会因为申请不到空缓冲区被阻塞。 24在生产者消费者问题中,如果将两个wait 操作即wait(full)和wait(mutex)互换位置,或者将signal(mutex)与signal(full)互换位置,结果如何? 答:将wait(full)和wait(mutex)互换
10、位臵后,可能引起死锁。考虑系统中缓冲区全满时,若一生产者进程先执行了wait(mutex)操作并获得成功,则当再执行wait(empty)操作时,它将因失败而进入阻塞状态,它期待消费者进程执行signal(empty)来唤醒自己,在此之前,它不可能执行signal(mutex)操作,从而使试图通过执行wait(mutex)操作而进入自己的临界区的其他生产者和所有消费者进程全部进入阻塞状态,这样容易引起系统死锁。若signal(mutex)和signal(full)互换位置后只是影响进程对临界资源的释放次序,而不会引起系统死锁,因此可以互换位置。 25我们在为某一临界资源设置一把锁W,当W=1时
11、表示关锁,当W=0时表示锁已打开。 试写出开锁和关锁的原诧,并利用他们实现互斥。 答:整型信号量:lock(W): while W=1 do no-op W:=1; unlock(W): W:=0; 记录型信号量:lock(W): W:=W+1; if(W1) then block(W, L) unlock(W): W:=W-1; if(W0) then wakeup(W, L) 例子: Var W:semaphore:=0; begin repeat lock(W); critical section unlock(W); remainder section until false; end
12、 26试修改下面生产者消费者问题解法中的错误: 答: producer: begin repeat producer an item in nextp; wait(mutex); wait(full); /* 应为wait(empty),而且还应该在wait(mutex)的前面 */ buffer(in):=nextp; /* 缓冲池数组游标应前移: in:=(in+1) mod n; */ signal(mutex); /* signal(full); */ until false; end consumer: begin repeat wait(mutex); wait(empty); /
13、* 应为wait(full),而且还应该在wait(mutex)的前面 */ nextc:=buffer(out); out:=out+1; /* 考虑循环,应改为: out:=(out+1) mod n; */ signal(mutex);/* signal(empty); */ consumer item in nextc; until false; end 27试利用记录型信号量写出一个不会出现死锁的哲学家进餐问题的算法.。答:Var chopstick:array0,4 of semaphore; 所有信号量均被初始化为1,第i 位哲学家的活动可描述为: Repeat Wait(cho
14、psticki); Wait(. chopstick(i+1) mod 5); Ea.t ; Signal(chopsticki); Signal(chopstick(i+1) mod 5) Ea.t ; Think; 11 Until false; 28在测量控制系统中的数据采集仸务,把所采集的数据送一单缓冲区;计算任务从该单 缓冲区中取出数据进行计算。试写出利用信号量机制实现两任务共享单缓冲区的同步算法。 答: a. Var mutex, empty, full: semaphore:=1, 1, 0; gather: begin repeat gather data in nextp;
15、wait(empty); wait(mutex); buffer:=nextp; signal(mutex); signal(full); until false; end compute: begin repeat wait(full); wait(mutex); nextc:=buffer; signal(mutex); signal(empty); compute data in nextc; until false; end b. Var empty, full: semaphore:=1, 0; gather: begin repeat gather data in nextp; w
16、ait(empty); buffer:=nextp; signal(full); until false; end compute: begin repeat wait(full); nextc:=buffer; signal(empty); compute data in nextc; until false; end 30如何利用管程来解决生产者消费者问题? 答:首先建立一个管程,命名为ProclucerConsumer,包括两个过程: (1)Put(item)过程。生产者利用该过程将自己生产的产品放到缓冲池,用整型变 量count 表示在缓冲池中已有的产品数目,当countn 时,表示缓
17、冲池已满,生产者须 等待。 (2)get(item)过程。消费者利用该过程从缓冲池中取出一个产品,当count0 时,表示缓冲池中已无可取的产品,消费者应等待。 PC 管程可描述如下: type producer-consumer =monitor Var in,out,count:integer; buffer:array0,n-1of item; notfull,notempty:condition; procedure entry dot(item) begin if count=n then not full.wait; buffer(in):=nextp; in:=(in+1)mod
18、 n; count:=count+1; if notempty.queue then notempty.signal; end procedure entry get(item) begin if count=0 then not full.wait; nextc:=buffer(out); out:=(out+1)mod n; count:=count-1; if notfull.quene then notfull.signal; end begin in:=out:=0; count:=0 end 在利用管程解决生产者一消费者问题时,其中的生产者和消费者可描述为: producer: b
19、egin pepeat produce an inem in nestp PC.put(item); until false; end consumer: begin repeat PC.get(item); consume the item in enxtc; until false; end 31什么是AND信号量?试利用AND信号量写出生产者一消费者问题的解法。 答:为解决并行带来的死锁问题,在wait操作中引入AND 条件,其基本思想是将进 程在整个运行过程中所需要的所有临界资源,一次性地全部分配给进程,用完后一次性释放。 解决生产者消费者问题可描述如下: var mutex,empt
20、y,full: semaphore:=1,n,0; buffer: array0,.,n-1 of item; in,out: integer:=0,0; begin parbegin 14 producer: begin repeat produce an item in nextp; wait(empty); wait(s1,s2,s3,.,sn); /s1,s2,.,sn为执行生产者进程除empty 外其余的条件 wait(mutex); buffer(in):=nextp; in:=(in+1) mod n; signal(mutex); signal(full); signal(s1
21、,s2,s3,.,sn); until false; end consumer: begin repeat wait(full); wait(k1,k2,k3,.,kn); /k1,k2,.,kn 为执行消费者进程除full 外其余的条件 wait(mutex); nextc:=buffer(out); out:=(out+1) mod n; signal(mutex); signal(empty); signal(k1,k2,k3,.,kn); consume the item in nextc; until false; end parend end 32什么是信号量集?试利用信号量集写出
22、读者一写者问题的解法。 答:对AND信号量加以扩充,形成的信号量集合的读写机制。 解法:Var RN integer; L,mx: semaphore:=RN,1; begin parbegin reader:begin repeat Swait(L,1,1); Swait(mx,1,1); perform read operation; Ssignal(L,1); until false end writer:begin repeat Swait(mx,1,1;L,RN,0); perform write operation; Ssignal(mx,1); until false end p
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- OS 课后 习题 答案

限制150内