《操作系统习题答案(共11页).doc》由会员分享,可在线阅读,更多相关《操作系统习题答案(共11页).doc(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上第一章1设计现代OS的主要目标是什么?答:(1)有效性 (2)便性 (3)可扩充性 (4)开放性2OS的作用可表现在哪几个面?答:(1)OS作为用户与计算机硬件系统之间的接口(2)OS作为计算机系统资源的管理者(3)OS实现了对计算机资源的抽象13OS有哪几大特征?其最基本的特征是什么?答:并发性、共享性、虚拟性和异步性四个基本特征;最基本的特征是并发性。14处理机管理有哪些主要功能?它们的主要任务是什么?答:处理机管理的主要功能是:进程管理、进程同步、进程通信和处理机调度;进程管理:为作业创建进程,撤销已结束进程,控制进程在运行过程中的状态转换。进程同步:为多个进程
2、(含线程)的运行进行协调。通信:用来实现在相互合作的进程之间的信息交换。处理机调度:(1)作业调度。从后备队里按照一定的算法,选出若干个作业,为他们分配运行所需的资源(首选是分配存)。(2)进程调度:从进程的就绪队列中,按照一定算法选出一个进程,把处理机分配给它,并设置运行现场,使进程投入执行。15存管理有哪些主要功能?他们的主要任务是什么?答:存管理的主要功能有:存分配、存保护、地址映射和存扩充。存分配:为每道程序分配存。存保护:确保每道用户程序都只在自己的存空间运行,彼此互不干扰。地址映射:将地址空间的逻辑地址转换为存空间与对应的物理地址。存扩充:用于实现请求调用功能,置换功能等。16设备
3、管理有哪些主要功能?其主要任务是什么?答:主要功能有: 缓冲管理、设备分配和设备处理以及虚拟设备等。主要任务: 完成用户提出的I/O 请求,为用户分配I/O 设备;提高CPU 和I/O 设备的利用率;提高I/O速度;以及便用户使用I/O设备.17文件管理有哪些主要功能?其主要任务是什么?答:文件管理主要功能:文件存储空间的管理、目录管理、文件的读/写管理和保护。文件管理的主要任务:管理用户文件和系统文件,便用户使用,保证文件安全性。21试描述什么是微核OS。答:1)足够小的核 2)基于客户/服务器模式3)应用机制与策略分离原理 4)采用面向对象技术。第二章3. 什么程序并发执行会产生间断性特征
4、?答:程序在并发执行时,由于它们共享系统资源,为完成同一项任务需要相互合作,致使这些并发执行的进程之间,形成了相互制约关系,从而使得进程在执行期间出现间断性。4程序并发执行时为什么会失去封闭性和可再现性?答:程序并发执行时,多个程序共享系统中的各种资源,因而这些资源的状态由多个程序改变,致使程序运行失去了封闭性,也会导致其失去可再现性。8试说明进程在三个基本状态之间转换的典型原因。答: (1)就绪状态执行状态:进程分配到CPU资源(2)执行状态就绪状态:时间片用完(3)执行状态阻塞状态:I/O请求(4)阻塞状态就绪状态:I/O完成16进程在运行时存在哪两种形式的制约?并举例说明之。答:(1)间
5、接相互制约关系。举例:有两进程A 和B,如果A 提出打印请求,系统已把唯一的一台打印机分配给了进程B,则进程A 只能阻塞;一旦B 释放打印机,A 才由阻塞改为就绪。(2)直接相互制约关系。举例:有输入进程A 通过单缓冲向进程B 提供数据。当缓冲空时,计算进程因不能获得所需数据而阻塞,当进程A 把数据输入缓冲区后,便唤醒进程B;反之,当缓冲区已满时,进程A 因没有缓冲区放数据而阻塞,进程B 将缓冲区数据取走后便唤醒A。17为什么进程在进入临界区之前应先执行“进入区”代码?而在退出前又要执行“退出区”代码?答:为了实现多个进程对临界资源的互斥访问,必须在临界区前面增加一段用于检查欲访问的临界资源是
6、否正被访问的代码,如果未被访问,该进程便可进入临界区对资源进行访问,并设置正被访问标志,如果正被访问,则本进程不能进入临界区,实现这一功能的代码为进入区代码;在退出临界区后,必须执行退出区代码,用于恢复未被访问标志,使其它进程能再访问此临界资源。18. 同步机构应遵循哪些基本准则?为什么?答:同步机构应遵循的基本准则是:空闲让进、忙则等待、有限等待、让权等待原因:为实现进程互斥进入自己的临界区。21如利用信号量机制来实现多个进程对临界资源的互斥访问?并举例说明之。答:为使多个进程互斥访问某临界资源,只需为该资源设置一互斥信号量mutex,并设其初值为1,然后将各进程访问该资源的临界区CS置于w
7、ait(mutex)和signal(mutex)操作之间即可。这样,每个欲访问该临界资源的进程在进入临界区之前,都要先对mutex 执行wait 操作,若该资源此刻未被访问,本次wait 操作必然成功,进程便可进入自己的临界区,这时若再有其他进程也欲进入自己的临界区,此时由于对mutex 执行wait操作定会失败,因而该进程阻塞,从而保证了该临界资源能被互斥访问。当访问临界资源的进程退出临界区后,应对mutex执行signal 操作,释放该临界资源。利用信号量实现进程互斥的进程描述如下:Var mutex: semaphore:=1;beginparbeginprocess 1: beginr
8、epeatwait(mutex);critical sectionsignal(mutex);remainder seetionuntil false;endprocess 2: beginrepeatwait(mutex);critical sectionsignal(mutex);remainder sectionuntil false;endparend23在生产者消费者问题中,如果缺少了signal(full)或signal(empty),对执行结果有影响?答:如果缺少signal(full),那么表明从第一个生产者进程开始就没有改变信号量full 值,即使缓冲池产品已满,但full
9、值还是0,这样消费者进程执行wait(full)时认为缓冲池是空而取不到产品,消费者进程一直处于等待状态。如果缺signal(empty),在生产者进程向n个缓冲区投满产品后消费者进程才开始从中取产品,这时empty=0,full=n,那么每当消费者进程取走一个产品empty 值并不改变,直到缓冲池取空了,empty 值也是0,即使目前缓冲池有n 个空缓冲区,生产者进程要想再往缓冲池中投放产品也会因为申请不到空缓冲区被阻塞。24在生产消费者问题中,如果将两个wait 操作即wait(full)和wait(mutex)互换位置,或者将signal(mutex)与signal(full)互换位置,
10、结果如?答:将wait(full)和wait(mutex)互换位置后,可能引起死锁。考虑系统中缓冲区全满时,若一生产者进程先执行了wait(mutex)操作并获得成功,则当再执行wait(empty)操作时,它将因失败而进入阻塞状态,它期待消费者进程执行signal(empty)来唤醒自己,在此之前,它不可能执行signal(mutex)操作,从而使试图通过执行wait(mutex)操作而进入自己的临界区的其他生产者和所有消费者进程全部进入阻塞状态,这样容易引起系统死锁。若signal(mutex)signal(full)互换位置后只是影响进程对临界资源的释放次序,而不会引起系统死锁,因此可以
11、互换位置。26试修改下面生产者消费者问题解法中的错误:答: producer:beginrepeatproducer 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;endconsumer:beginrepeatwait(mutex);wait(empty); /应为wait(full),而且还应
12、该在wait(mutex)的前面 nextc:=buffer(out);out:=out+1; /* 考虑循环,应改为: out:=(out+1) mod n; */signal(mutex);/* signal(empty); */consumer item in nextc;until false;end第三章1高级调度与低级调度的主要任务是什么?为什么要引入中级调度?答:高级调度的主要任务是根据某种算法,把外存上处于后备队列中的那些作业调入存。低级调度是保存处理机的现场信息,按某种算法先取进程,再把处理器分配给进程。引入中级调度的主要目的是为了提高存利用率和系统吞吐量。使那些暂时不能运行
13、的进程不再占用存资源,将它们调至外存等待,把进程状态改为就绪驻外存状态或挂起状态。7在选择调度式和调度算法时,应遵循的准则是什么?答:(1)面向用户的准则:转时间短、响应时间快、截止时间的保证、优先权准则。(2)面向系统的准则:系统吞吐量高、处理机利用率好、各类资源的平衡利用。8在批处理系统、分时系统和实时系统中,各采用哪几种进程(作业)调度算法?答:批处理系统的调度算法:短作业优先、优先权、高响应比优先、多级反馈队列调度算法。分时系统的调度算法:时间片轮转法。实时系统的调度算法:最早截止时间优先即EDF、最低松弛度优先即LLF算法。10试比较FCFS和SPF两种进程调度算法。答:相同点:两种
14、调度算法都可以用于作业调度和进程调度。不同点: FCFS调度算法每次都从后备队列中选择一个或多个最先进入该队列的作业,将它们调入存、分配资源、创建进程、插入到就绪队列。该算法有利于长作业/进程,不利于短作业/进程。SPF算法每次调度都从后备队列中选择一个或若干个估计运行时间最短的作业,调入存中运行。该算法有利于短作业/进程,不利于长作业/进程。15按照调度式可将实时调度算法分为哪几种?答:可分为非抢占式和抢占式两种算法。而非抢占式算法又分为非抢占式轮转和优先调度算法;抢占式调度算法又分为基于时钟中断的抢占式优先权和立即抢占式优先权调度算法。16什么是最早截止时间优先调度算法?举例说明。答:根据
15、任务的开始截止时间确定的任务优先级调度算法。截止时间越早则优先级越高。该算法要求在系统中保持一个实时任务就绪队列,该队列按各任务截止时间的先后排序。举例:非抢占式调度式用于非期实时任务。图3-9 是将该算法用于非抢占调度式之例。该例中具有四个非期任务,它们先后到达。系统首先调度任务1执行,在任务1执行期间,任务2、3又先后到达。由于任务3的开始截止时间早于任务2,故系统在任务1后将调度任务3执行。在此期间又到达作业4,其开始截止时间仍是早于任务2的,故在任务3执行完后,系统又调度任务4执行,最后才调度任务2执行。图3-9 EDF算法用于非抢占调度的调度式17什么是最低松弛度优先调度算法?举例说
16、明之。答:该算法是根据任务紧急(或松弛)的程度,来确定任务的优先级。任务的紧急程度愈高,为该任务所赋予的优先级就愈高,以使之优先执行。例如,一个任务在200 ms 时必须完成,而它本身所需的运行时间就有100 ms,因此,调度程序必须在100 ms 之前调度执行,该任务的紧急程度(松弛程度)为100 ms。又如,另一任务在400 ms 时必须完成,它本身需要运行 150 ms,则其松弛程度为 250 ms。18谓死锁?产生死锁的原因和必要条件是什么?答:死锁是指多个进程在运行过程中因争夺资源而造成的一种僵局,当进程处于这种僵持状态时,若无外力作用,它们都将无法再向前推进。产生死锁的原因为竞争资
17、源和进程间推进顺序非法。其必要条件是:互斥条件、请求和保持条件、不剥夺条件、环路等待条件。19在解决死锁问题的几个法中,哪种法最易于实现?哪种法使资源利用率最高?答:解决死锁的四种法即预防、避免、检测和解除死锁中,预防死锁最容易实现;避免死锁使资源的利用率最高。20请详细说明可通过哪些途径预防死锁。答:(1)摈弃“请求和保持”条件,就是如果系统有足够资源,便一次性把进程需要的所有资源分配给它;(2)摈弃“不剥夺”条件,就是已经拥有资源的进程,当它提出新资源请求而不能立即满足时,必须释放它已保持的所有资源,待以后需要时再重新申请;(3)摈弃“环路等待”条件,就是将所有资源按类型排序标号,所有进程
18、对资源的请求必须格按序号递增的次序提出。21在银行家算法的例子中,如果P0发出请求向量由Request(0,2,0)改为Request(0,1,0),问系统可否将资源分配给它?答:(1)可以。银行家算法各种资源数量分别为10、5、7,在T0时刻的资源分配如图所示:(2)具体分析如下:Requst0(0,1,0)=Need0(7,4,3); Requst0(0,1,0)=Available(2,3,0);系统先假定可为P0分配资源,并修改Available0,Allocation0和Need0向量,由此形成的资源变化情况如下图所示:(3)P0请求资源:P0发出请求向量Requst0(0,1,0),系统按银行家算法进行检查: Requst0(0,1,0)=Need0(7,4,3); Requst0(0,1,0)=Available(2,3,0); 系统暂时先假定可为P0分配资源,并修改_有关数据,如下图所示综上所述系统可以将资源分配给它。专心-专注-专业