OS课后习题答案

上传人:jiups****uk12 文档编号:38440373 上传时间:2018-05-02 格式:DOC 页数:16 大小:256.50KB
返回 下载 相关 举报
OS课后习题答案_第1页
第1页 / 共16页
OS课后习题答案_第2页
第2页 / 共16页
OS课后习题答案_第3页
第3页 / 共16页
OS课后习题答案_第4页
第4页 / 共16页
OS课后习题答案_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《OS课后习题答案》由会员分享,可在线阅读,更多相关《OS课后习题答案(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 是微软公司在个人电脑

3、上开发图形界面的首次尝试。 (2)Windows 95 是混合的 16 位/32 位系统,第一个支持 32 位。带来了更强大、更稳 定、更实用的桌面图形用户界面,结束了桌面操作系统间的竞争。 (3)Windows 98 是微软公司的混合 16 位/32 位 Windows 操作系统,改良了硬件标准 的支持,革新了内存管理,是多进程操作系统。 (4)Windows XP 是基于 Windows 2000 的产品,拥有新用户图形界面月神 Luna。简化 了用户安全特性,整合了防火墙。 (5)Windows Vista 包含了上百种新功能;特别是新版图形用户界面和 Windows Aero 全新界面

4、风格、加强的搜寻功能(Windows Indexing Service) 、新媒体创作工具以及重 新 设计的网络、音频、输出(打印)和显示子系统。 12试从交互性、及时性以及可靠性方面,将分时系统与实时系统进行比较。 答:(1)及时性:实时信息处理系统对实时性的要求与分时系统类似,都是以人所能接受 的等待时间来确定;而实时控制系统的及时性,是以控制对象所要求的开始截止时间或完 成截止时间来确定的,一般为秒级到毫秒级,甚至有的要低于 100 微妙。 (2)交互性:实时信息处理系统具有交互性,但人与系统的交互仅限于访问系统中某些特 定的专用服务程序。不像分时系统那样能向终端用户提供数据和资源共享等

5、服务。 (3)可靠性:分时系统也要求系统可靠,但相比之下,实时系统则要求系统具有高度的可 靠性。因为任何差错都可能带来巨大的经济损失,甚至是灾难性后果,所以在实时系统中, 往往都采取了多级容错措施保障系统的安全性及数据的安全性。 18什么原因使操作系统具有异步性特征? (1)程序执行结果是不确定的,即程序是不可再现的 (2)每个程序在何时执行,多个程序间的执行顺序以及完成每道程序所需的时间都是不确 定的,即不可预知性23何谓微内核技术?在微内核中通常提供了哪些功能? 答:把操作系统中更多的成分和功能放到更高的层次(即用户模式)中去运行,而留下一 个尽量小的内核,用它来完成操作系统最基本的核心功

6、能,称这种技术为微内核技术。在微内核中通常提供了进程(线程)管理、低级存储器管理、中断和陷入处理等功能。 第二章第二章 进程管理进程管理2. 试画出下面四条语句的前趋图: S1:a:=x+y; S2:b:=z+1; S3:c:=a b; S4:w:=c+1; 4程序并发执行时为什么会失去封闭性和可再现性? 答:程序并发执行时,多个程序共享系统中的各种资源,因而这些资源的状态由多个程序 改变,致使程序运行失去了封闭性,也会导致其失去可再现性。 5在操作系统中为什么要引入进程概念?它会产生什么样的影响? 答:为了使程序在多道程序环境下能并发执行,并能对并发执行的程序加以控制和描述, 而引入了进程概

7、念 影响: 使程序的并发执行得以实行 6试从动态性,并发性和独立性上比较进程和程序。 答:(1)动态性是进程最基本的特性,表现为由创建而产生,由调度而执行,因得不到资源 而暂停执行,由撤销而消亡。进程有一定的生命期,而程序只是一组有序的指令集合,是 静态实体 (2)并发性是进程的重要特征,同时也是 OS 的重要特征。引入进程的目的正是为了使其程 序能和其它进程的程序并发执行,而程序是不能并发执行的。 (3)独立性是指进程实体是一个能独立运行的基本单位,也是系统中独立获得资源和独立调 度的基本单位。对于未建立任何进程的程序,不能作为独立单位参加运行。 7试说明 PCB 的作用,为什么说 PCB

8、是进程存在的惟一标志? 答:PCB 是进程实体的一部分,是操作系统中最重要的记录型数据结构。作用是使一个在 多道程序环境下不能独立运行的程序,成为一个能独立运行的基本单位,成为能与其它进 程并发执行的进程。OS 是根据 PCB 对并发执行的进程进行控制和管理的。 8试说明进程在三个基本状态之间转换的典型原因。 答:(1)就绪状态执行状态:进程分配到 CPU 资源(2)执行状态就绪状态:时间片用完 (3)执行状态阻塞状态:I/O 请求 (4)阻塞状态就绪状态:I/O 完成 23在生产者消费者问题中,如果缺少了 signal(full)戒 signal(empty),对执行结果有何影 响? 答:如

9、果缺少 signal(full),那么表明从第一个生产者进程开始就没有改变信号量 full 值, 即使缓冲池产品已满,但 full 值还是 0,这样消费者进程执行 wait(full) 时认为缓冲池是空 而取不到产品,消费者进程一直处于等待状态。 如果缺少 signal(empty),在生产者进程向 n 个缓冲区投满产品后消费者进程才开始从中取产品,这时 empty=0,full=n,那么每当消 费者进程取走一个产品 empty 值并不改变,直到缓冲池取空了,empty 值也是 0,即使目前缓冲池有 n 个空缓冲区,生产者进程要想再往缓冲池中投放产品也会因为申请不到空缓冲 区被阻塞。 24在生

10、产者消费者问题中,如果将两个 wait 操作即 wait(full)和 wait(mutex)互换位置, 或者将 signal(mutex)与 signal(full)互换位置,结果如何? 答:将 wait(full)和 wait(mutex)互换位臵后,可能引起死锁。考虑系统中缓冲区全满时,若 一生产者进程先执行了 wait(mutex)操作并获得成功,则当再执行 wait(empty)操作时,它将 因失败而进入阻塞状态,它期待消费者进程执行 signal(empty)来唤醒自己,在此之前,它 不可能执行 signal(mutex)操作,从而使试图通过执行 wait(mutex)操作而进入自

11、己的临界区 的其他生产者和所有消费者进程全部进入阻塞状态,这样容易引起系统死锁。若 signal(mutex)和 signal(full)互换位置后只是影响进程对临界资源的释放次序,而不会引起系 统死锁,因此可以互换位置。 25我们在为某一临界资源设置一把锁 W,当 W=1 时表示关锁,当 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

12、:=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 26试修改下面生产者消费者问题解法中的错误: 答: producer: begin repeat producer an item in nextp; wait(mutex); wait(full); /* 应为 wait(empty),而且还应该在 wait(mutex)的前面 */ buffer(in):=nex

13、tp; /* 缓冲池数组游标应前移: in:=(in+1) mod n; */ signal(mutex); /* signal(full); */ until false; end consumer: begin repeat wait(mutex); wait(empty); /* 应为 wait(full),而且还应该在 wait(mutex)的前面 */ nextc:=buffer(out); out:=out+1; /* 考虑循环,应改为: out:=(out+1) mod n; */ signal(mutex);/* signal(empty); */ consumer item

14、in nextc; until false; end 27试利用记录型信号量写出一个不会出现死锁的哲学家进餐问题的算法.。 答:Var chopstick:array0,4 of semaphore; 所有信号量均被初始化为 1,第 i 位哲学家的活动可描述为: Repeat Wait(chopsticki); Wait(. chopstick(i+1) mod 5); Ea.t ; Signal(chopsticki); Signal(chopstick(i+1) mod 5) Ea.t ; Think; 11 Until false; 28在测量控制系统中的数据采集仸务,把所采集的数据送一

15、单缓冲区;计算任务从该单 缓冲区中取出数据进行计算。试写出利用信号量机制实现两任务共享单缓冲区的同步算法。答: a. Var mutex, empty, full: semaphore:=1, 1, 0; gather: begin repeat gather data in nextp; 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; wait(empty); buffer:=nextp; signal(full); until false; end compute: begin repeat wait(full); nextc:=buffer; signal(empty); compute dat

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号