操作系统 第四章 课后题答案
《操作系统》第4章教材习题解答

第4章存储管理“练习与思考”解答1.基本概念和术语逻辑地址、物理地址、逻辑地址空间、内存空间、重定位、静态重定位、动态重定位、碎片、碎片紧缩、虚拟存储器、快表、页面抖动用户程序经编译之后的每个目标模块都以0为基地址顺序编址,这种地址称为相对地址或逻辑地址。
内存中各物理存储单元的地址是从统一的基地址开始顺序编址的,这种地址称为绝对地址或物理地址。
由程序中逻辑地址组成的地址范围叫做逻辑地址空间,或简称为地址空间。
由内存中一系列存储单元所限定的地址范围称作内存空间,也称物理空间或绝对空间。
程序和数据装入内存时,需对目标程序中的地址进行修改。
这种把逻辑地址转变为内存物理地址的过程称作重定位。
静态重定位是在目标程序装入内存时,由装入程序对目标程序中的指令和数据的地址进行修改,即把程序的逻辑地址都改成实际的内存地址。
动态重定位是在程序执行期间,每次访问内存之前进行重定位。
这种变换是靠硬件地址转换机构实现的。
内存中这种容量太小、无法被利用的小分区称作“碎片”或“零头”。
为解决碎片问题,移动某些已分配区的内容,使所有进程的分区紧挨在一起,而把空闲区留在另一端。
这种技术称为紧缩(或叫拼凑)。
虚拟存储器是用户能作为可编址内存对待的虚拟存储空间,它使用户逻辑存储器与物理存储器分离,是操作系统给用户提供的一个比真实内存空间大得多的地址空间。
为了解决在内存中放置页表带来存取速度下降的矛盾,可以使用专用的、高速小容量的联想存储器,也称作快表。
若采用的置换算法不合适,可能出现这样的现象:刚被换出的页,很快又被访问,为把它调入而换出另一页,之后又访问刚被换出的页,……如此频繁地更换页面,以致系统的大部分时间花费在页面的调度和传输上。
此时,系统好像很忙,但实际效率却很低。
这种现象称为“抖动”。
2.基本原理和技术(1)存储器一般分为哪些层次?各有何特性?存储器一般分为寄存器、高速缓存、内存、磁盘和磁带。
CPU内部寄存器,其速度与CPU一样快,但它的成本高,容量小。
孙钟秀操作系统第四章部分习题答案

20.在一个分页虚拟存储系统中,用户编程空 间为32个页,页长1KB,主存空间为16KB。 如果应用程序有10页长,若已知虚页0、1、 2、3,已分得页框4、7、8、10,试把虚地 址0AC5H和1AC5H装换成对应的物理地址。 解:32=25 用5位表示页号 1KB=210B 用10位表示页内偏移 0AC5H=0000 1100 0101B 1AC5H=0001 1010 1100 0101B 缺页中断 物理地址:0010 0010 1100 0101 =22C5H
7.一个进程以下列次序访问5个页:A、B、C、 D、A、B、E、A、B、C、D、E;假定使 用FIFO替换算法,在主存储器重有3个和4 个空闲页框的情况下,分别给出页面替换 次数。 解:3个页框:页面替换次数为9 4个页框:页面替换次数为10
8.某计算机有缓存、主存储器、辅助存储器 来实现虚拟存储器。如果数据在缓存中, 访问数据需要Ans;如果数据在主存但不在 缓存,需要Bns将其装入缓存,然后才能访 问;如果数据不再主存而在辅存,需要Cns 将其读入主存。最后用Bns再读入缓存,然 后才能访问。假设缓存命中率为(n-1)/n, 主存命中率为(m-1)/m,则数据平均访问时间 是多少?
请求(1)
12K 10K 剩余 删除 删除 8 8 9K 空闲 剩余 18 9 15 9 9 删除 6 删除
空闲 剩余 空闲 首次适应 最佳适应 最差适应 下次适应 20 12 20 20 8 删除 8 8 10 10 18 18
10K、4K、20K、18K、 4K、7K、9K、10K、12K、15K、18K、20K 20K、18K、15K、12K、10K、9K、7K 、4K
1.在一个请求分页虚拟存储管理系统中,一 个程序运行的页面走向是: 1,2,3,4,2,1,5,6,2,1,2,3,7,6,3,2,1,2,3,6 分别用FIFO、OPT、LRU算法,对于分配 给程序3个页框、4个页框、5个页框和6个 页框的情况,求出缺页中断次数和缺页中 断率。
操作系统第四章参考答案

第四章参考答案4、为了实现对空闲分区的分配和链接,在每个分区的起始部分,用两个字段设置一些用于控制分区分配的信息(如分区的大小和状态位),以及用于链接其它分区的前向指针;在分区尾部,用两个字段设置了一个后向指针,为了检索方便也设置了控制分区分配的信息。
然后,通过前、后向指针将所有的分区链接成一个双向链表。
5、在连续分配内存方式中,会出现不能被利用的“零头”或“碎片”,为了利用这些“零头”或“碎片”,就必须进行数据或程序的移动—“紧凑”,因此相应的这些程序或数据在内存中的位置就必须进行修改,否则就无法执行。
从本质上讲引入动态重定位,就是在连续分配内存方式下,进一步提高内存利用率的一种方法。
实现技术动态重定位必须获得硬件支持。
只有具有动态重定位硬件机构的计算机系统,才有可能采取动态重定位可变分区多道管理技术,系统的硬件包括重定位寄存器和加法器8、为了实现进程对换,系统必须具备对换空间的管理,进程换入、换出等三项功能。
9、p113.不是,只换出进程的程序与数据,PCB不换出(只进行修改,表示该进程在外边)。
10、页表寄存器11、分段存储管理方式的引入是为了满足用户下列要求(1)便于编程通常用户常常把自己的作业按照逻辑关系划分成若干个段,每个段都有自己的名字,且都从零开始编址,这样,用户程序在执行中可用段名和段内地址进行访问。
例如:LOAD 1,[A] | <D> 这条指令的含义是将分段A中的D单元内的值读入寄存器1。
(2)信息共享(分段共享)在实现程序和数据的共享时,常常以信息的逻辑单位为基础,而分页系统中的每一页只是存放信息的物理单位,其本身没有完整的意义,因而不便于实现信息的共享,而段却是信息的逻辑单位,有利于信息的共享。
(3)分段保护信息保护是对相对完整意义的逻辑单位(段)进行保护。
(4)动态连接通常一个源程序经过编译后所形成的若干个目标程序,还需再经过链接,形成可执行代码后才能运行,这种在装入时进行的链接称为静态链接。
现代操作系统(原书第3版)部分课后答案-第4章

1.这些系统直接把程序载入内存,并且从word0(魔数)开始执行。
为了避免将header作为代码执行,魔数是一条branch指令,其目标地址正好在header之上。
按这种方法,就可能把二进制文件直接读取到新的进程地址空间,并且从0开始运行。
5.rename 调用不会改变文件的创建时间和最后的修改时间,但是创建一个新的文件,其创建时间和最后的修改时间都会改为当前的系统时间。
另外,如果磁盘满,复制可能会失败。
10.由于这些被浪费的空间在分配单元(文件)之间,而不是在它们内部,因此,这是外部碎片。
这类似于交换系统或者纯分段系统中出现的外部碎片。
11.传输前的延迟是9ms,传输速率是2^23Bytes/s,文件大小是2^13Bytes,故从内存读取或写回磁盘的时间都是9+2^13/2^23=9.977ms,总共复制一个文件需要9.977*2=19.954ms。
为了压缩8G磁盘,也就是2^20个文件,每个需要19.954ms,总共就需要20,923 秒。
因此,在每个文件删除后都压缩磁盘不是一个好办法。
12.因为在系统删除的所有文件都会以碎片的形式存在磁盘中,当碎片到达一定量磁盘就不能再装文件了,必须进行外部清理,所以紧缩磁盘会释放更多的存储空间,但在每个文件删除后都压缩磁盘不是一个好办法。
15.由于1024KB = 2^20B, 所以可以容纳的磁盘地址个数是2^20/4 = 2^18个磁盘地址,间接块可以保存2^18个磁盘地址。
与 10 个直接的磁盘地址一道,最大文件有 262154 块。
由于每块为 1 MB,最大的文件是262154 MB。
19.每个磁盘地址需要D位,且有F个空闲块,故需要空闲表为DF位,采用位图法则需要B位,当DF<B时,空闲表采用的空间少于位图,当D=16时,得F/B<1/D=6.25%,即空闲空间的百分比少于6.25%.20.a)1111 1111 1111 0000b)1000 0001 1111 0000c)1111 1111 1111 1100d)1111 1110 0000 110027.平均时间T = 1*h + 40*(1-h)=-39h+40ms28.1500rpm(每分钟1500转),60s/1500=0.004s=4ms,即每转需要4ms,平均旋转延迟为2ms;读取一个k个字节的块所需要的时间T是平均寻道时间,平均旋转延迟和传送时间之和。
操作系统第四章进程调度和死锁习题及答案

第四章一、单项选择题1.为了根据进程的紧迫性做进程调度,应采用(B )。
A.先来先服务调度算法 B. 优先数调度算法 C.时间片轮转调度法 D.分级调度算法2.采用时间片轮转法调度是为了( A)。
A.多个终端都能得到系统的及时响应 B.先来先服务C. 优先数高的进程先使用处理器 D.紧急事件优先处理3.采用优先数调度算法时,对那些具有相同优先数的进程再按( A )的次序分配处理器。
A 先来先服务 B. 时间片轮转 C. 运行时间长短 D.使用外围设备多少4. 当一进程运行时,系统强行将其撤下,让另一个更高优先数的进程占用处理器,这种调度方式是( B )。
A. 非抢占方式B.抢占方式 C. 中断方式 D.查询方式5.( B)必定会引起进程切换。
A.一个进程被创建后进入就绪态B.一个进程从运行态变成阻塞态C.一个进程从阻塞态变成就绪态6.( B)只考虑用户估计的计算机时间,可能使计算时间长的作业等待太久。
A.先来先服务算法B.计算时间短的作业优先算法C.响应比最高者优先算法 D.优先数算法7.先来先服务算法以( A )去选作业,可能会使计算时间短的作业等待时间过长。
A.进入的先后次序 B.计算时间的长短 C.响应比的高低 D.优先数的大小8.可以证明,采用( C )能使平均等待时间最小。
A.优先数调度算法 B.均衡调度算法C.计算时间短的作业优先算法 D.响应比最高者优先算法9.在进行作业调度时.要想兼顾作业等待时间和计算时间,应选取(D )。
A均衡调度算法 B.优先数调度算法C.先来先服务算法D.响应比最高者优先算法10.作业调度算法提到的响应比是指( B )。
A.作业计算时间与等待时间之比B.作业等待时间与计算时间之比C.系统调度时间与作业等待时间之比 D.作业等待时间与系统调度时间之比11.作业调度选择一个作业装入主存后,该作业能否占用处理器必须由( D )来决定。
A.设备管理 B.作业控制 C.驱动调度D.进程调度12.系统出现死锁的根本原因是( D )。
操作系统习题第四章答案

第四章互斥、同步与通讯答案一、单项选择题1.B2.D3.B4.B5.D6.A7.C8.B9.D 10.C11.D 12.C 13.C 14.B 15.B 16.B 17.A 18.B 19.D 20.B21.B 22.A 23.C 24.B 25.B 26.B 27.A 28.C二、多项选择题1.[分析]任何一台CPU在每一时刻只能解释执行一条指令,因而,不可能在同一时刻为多个进程服务。
进程可同时执行的含义是一个进程的工作没有全部完成之前另一进程就可开始工作。
所以,实际上多个进程是轮流占用CPU运行的。
到底哪个进程能占用处理器不仅与进程自身有关,且受外界因素的影响;当多个进程竞争CPU时,必须由进程调度来决定当前哪个进程可以占用CPU;故每个进程都是走走停停的,进程执行的速度不能完全由进程自己来控制。
并发进程相互之间可能是无关的,即它们是各自独立的,这些进程中每一个进程的执行既不依赖于其它进程也不会影响其它进程的执行。
但是,有些并发进程需使用共享资源,为保证进程执行的正确性,对共享资源的使用必须加以限制。
同步就是并发进程中的一种制约关系,一个进程能否使用共享资源取决于其它进程的消息,只有指定的消息到达才可使用共享资源。
如果无约束地使用共享资源,则可能出现多个进程交替地访问共享资源,于是就可能会出现与时间有关的错误。
故本题的答案为C、D、E。
[题解]C、D、E。
2.[分析]根据P操作的定义,当调用P操作时, P操作把信号量S减去1,若结果小于0则调用者将等待信号量,否则可继续运行。
因而,若调用P(S)后S的值为>=0则进程可以继续运行,故应选择A和D。
要注意不能选择C,因S<>0包含了S>0和S<0,当S<0时进程将成为等待状态而不能运行。
[题解]A,D。
3.[题解]A,C,E。
三、判断题1. [题解]是。
2.[分析]如果不控制并发进程执行的相对速度,则它们在共享资源时可能会出现两种情况:一种是并发进程交替使用共享资源,这样就可能会发生与时间有关的错误;另一种是并发执行的速度没有致使它们交替使用共享资源,这时就不会出现与时间有关的错误。
操作系统概念第七版4-6章课后题答案(中文版)

操作系统概念第七版4-6章课后题答案(中⽂版)第四章线程4.1举两个多线程程序设计的例⼦来说明多线程不⽐单线程⽅案提⾼性能答:1)任何形式的顺序程序对线程来说都不是⼀个好的形式。
例如⼀个计算个⼈报酬的程序。
2)另外⼀个例⼦是⼀个“空壳”程序,如C-shell和korn shell。
这种程序必须密切检测其本⾝的⼯作空间。
如打开的⽂件、环境变量和当前⼯作⽬录。
4.2描述⼀下线程库采取⾏动进⾏⽤户级线程上下⽂切换的过程答:⽤户线程之间的上下⽂切换和内核线程之间的相互转换是⾮常相似的。
但它依赖于线程库和怎样把⽤户线程指给内核程序。
⼀般来说,⽤户线程之间的上下⽂切换涉及到⽤⼀个⽤户程序的轻量级进程(LWP)和⽤另外⼀个线程来代替。
这种⾏为通常涉及到寄存器的节约和释放。
4.3在哪些情况下使⽤多内核线程的多线程⽅案⽐单处理器系统的单个线程⽅案提供更好的性能。
答:当⼀个内核线程的页⾯发⽣错误时,另外的内核线程会⽤⼀种有效的⽅法被转换成使⽤交错时间。
另⼀⽅⾯,当页⾯发⽣错误时,⼀个单⼀线程进程将不能够发挥有效性能。
因此,在⼀个程序可能有频繁的页⾯错误或不得不等待其他系统的事件的情况下,多线程⽅案会有⽐单处理器系统更好的性能。
4.4以下程序中的哪些组成部分在多线程程序中是被线程共享的?a.寄存值b.堆内存c.全局变量d.栈内存答:⼀个线程程序的线程共享堆内存和全局变量,但每个线程都有属于⾃⼰的⼀组寄存值和栈内存。
4.5⼀个采⽤多⽤户线程的多线程⽅案在多进程系统中能够取得⽐在单处理器系统中更好的性能吗?答:⼀个包括多⽤户线程的多线程系统⽆法在多处理系统上同时使⽤不同的处理器。
操作系统只能看到⼀个单⼀的进程且不会调度在不同处理器上的不同进程的线程。
因此,多处理器系统执⾏多个⽤户线程是没有性能优势的。
4.6就如4.5.2章节描述的那样,Linux没有区分进程和线程的能⼒。
且Linux线程都是⽤相同的⽅法:允许⼀个任务与⼀组传递给clone()系统调⽤的标志的进程或线程。
操作系统原理-第四章 处理机调度(有答案)

第四章处理机调度4.3 习题4.3.1 选择最合适的答案1.某系统采用了银行家算法,则下列叙述正确的是()。
A.系统处于不安全状态时一定会发生死锁B.系统处于不安全状态时可能会发生死锁C.系统处于安全状态时可能会发生死锁D.系统处于安全状态时一定会发生死锁2.银行家算法中的数据结构包括有可利用资源向量Available、最大需求矩阵Max、分配矩阵Allocation、需求矩阵Need,下列选项正确的是()。
A.Max[i,j]=Allocation[i,j]+Need[i,j]B.Need[i,j]= Allocation[i,j]+ Max[i,j]C.Max[i,j]= Available[i,j]+Need[i,j]D.Need[i,j]= Available[i,j]+ Max[i,j]3.下列进程调度算法中,()可能会出现进程长期得不到调度的情况。
A.非抢占式静态优先权法B.抢占式静态优先权法C.时间片轮转调度算法D.非抢占式动态优先权法4.在下列选项中,属于预防死锁的方法是()。
A.剥夺资源法B.资源分配图简化法C.资源随意分配D.银行家算法5.在下列选项中,属于检测死锁的方法是()。
A.银行家算法B.消进程法C.资源静态分配法D.资源分配图简化法6.在下列选项中,属于解除死锁的方法是()。
A.剥夺资源法 B.资源分配图简化法C.银行家算法 D.资源静态分配法7.为了照顾紧迫型作业,应采用()。
A.先来服务调度算法B.短作业优先调度算法C.时间片轮转调度算法D.优先权调度算法8.在采用动态优先权的优先权调度算法中,如果所有进程都具有相同优先权初值,则此时的优先权调度算法实际上和()相同。
A.先来先服务调度算法B.短作业优先调度算法C.时间片轮转调度算法D.长作业优先调度算法9.作业从后备作业到被调度程序选中的时间称为()。
A.周转时间B.响应时间C.等待调度时间D.运行时间10.资源静态分配法可以预防死锁的发生,它们使死锁四个条件中的()不成立。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第四章
1.为什么说多级反馈队列调度算法能较好地满足各类用户的需要(来自百度):
答案一:
多级反馈队列调度算法能较好地满足各种类型用户的需要。
对终端型作业用户而言,由于他们所提交的大多属于交互型作业,作业通常比较短小,系统只要能使这些作业在第1级队列所规定的时间片内完成,便可使终端型作业用户感到满意;对于短批处理作业用户而言,他们的作业开始时像终端型作业一样,如果仅在第1级队列中执行一个时间片即可完成,便可以获得与终端型作业一样的响应时间,对于稍长的作业,通常也只需要在第2级队列和第3级队列中各执行一个时间片即可完成,其周转时间仍然较短;对于长批处理作业用户而言,它们的长作业将依次在第1,2,…,直到第n级队列中运行,然后再按时间片轮转方式运行,用户不必担心其作业长期得不到处理。
答案二:(惠州学院操作系统课后题)与答案一基本相似,可看做精简版。
答:(1)终端型作业用户提交的作业大多属于较小的交互型作业,系统只要使这些作业在第一队列规定的时间片内完成,终端作业用户就会感到满足。
(2)短批处理作业用户,开始时像终端型作业一样,如果在第一队列中执行一个时间片段即可完成,便可获得与终端作业一样的响应时间。
对于稍长作业,通常只需在第二和第三队列各执行一时间片即可完成,其周转时间仍然较短。
(3)长批处理作业,它将依次在第1 ,2 ,…,n个队列中运行,然后再按轮转方式运行,用户不必担心其作业长期得不到处理。
所以,多级反馈队列调度算法能满足多用户需求。
2.
分别对以上两个进程集合,计算使用先来先服务(FCFS)、时间片轮转法(时间片q=1)、短进程优先(SPN)、最短剩余时间优先(SRT,时间片q=1)、响应比高者优先(HRRN)及多级反馈队列(MFQ,第1个队列的时间片为1,第i(i<1)个队列的时间片q=2(i-1))算法进行CPU调度,请给出各进程的完成时间、周转时间、带权周转时间,及所有进程的平均周转时间和平均带权周转时间。
3.考虑系统中出现的情况:
(1)计算每个进程还可能需要的资源,并填入表的“仍然需要”栏目中。
(2)系统当前是否处于安全状态?为什么?
(3)系统当前是否死锁?为什么?
(4)如果进程P 3又有新的请求(0,2,0,0),系统是否可以安全地接受此请求?
解答:(1)
(2)系统出于安全状态,存在安全序列<P1,P4,P5,P2,P3>
(3)不会发生死锁,因为存在安全序列,进程按此顺序执行可保证不死锁。
(4)不可以接受新的请求,因为系统可用资源不足。
(R2只有1个,而新请求P3需要2个)
4.考虑有一个共有150个存储单元的系统,已经如下分配给三个进程:
试确定下面新的请求是否安全。
如果安全,请给出安全序列。
(1)第4个进程到达,它最多需要60个存储单元,最初需要25个单元。
(2)第4个进程到达,它最多需要60个存储单元,最初需要35个单元。
解答:
(1)
5.有3个进程共享4个资源,一次只能请求或释放一个资源,每个进程最大需要2个资源,试说明系统不会发生死锁。
解答:
根据抽屉原理,3个进程分4个资源,总有1个进程得到2个资源,该进程将满足最大需求而运行完毕,它释放资源后,系统中剩余2个进程享用4个资源,这2个进程也将满足最大需求,所以系统不会发生死锁。
6.N 个进程共享M 个资源,一次只能请求或释放一个资源,每个进程最大需要资源数不超过M ,并且所有进程最大需求的总和小于(M+N),试说明系统不会发生死锁。
解答:方法一:
根据抽屉原理,3个进程分4个资源,总有1个进程得到2个资源,该进程将满足最大需求而运行完毕,它释放资源后,系统中剩余2个进程享用4个资源,这2个进程也将满足最大需求,所以系统不会发生死锁。
反证法:
设该系统发生死锁,即设k 个线程用尽了M 个资源,但都没达到其最大需求。
已经
满足了需求的进程数为N –K.
Xi 为线程i 所占用的资源数,Yi 为线程i 还需要的资源数。
Yi > =1 , 形成死锁。
X1 + X2 + X3 + X4 + ……+ Xk = M
(X1 + X2 + ……+ Xk)+ (Y1 + Y2 + ……+ Yk)< M + N –(N –k)
Y1 + Y2 + ……+ Yk < k
若Yi > = 1 , Y1 + Y2 + ……+ Yk >= k, 矛盾,即该系统不可能发生死锁。
方法二:
(1)进程P1,P2,P3按顺序分别申请一个资源,这时系统中还剩一个资源。
然后P1得到剩下的那一个资源,运行完毕再释放掉一个资源,这时系统中还是有一个剩余的资源,接下来进程P2得到一个资源,运行完毕后释放掉一个资源,最后P3得到P2释放的一个资源得以运行。
安全序列<P1,P2,P3>,所以系统不会发生死锁。
(2)进程Pi, 所需的资源数为Si 。
由题知M ≧1,Si ≦M
在N 个进程中每次让所需资源最小的进程Pmin(i)运行(每次申请一个资源),它所需的资源数为Smin(i),运行完后释放一个资源,此时系统中剩余的资源为M-Smin(i)+1个。
Smin(i+1)为系统中进程所需的第二小的资源数。
只要满足公式M-Smin(i)+1≧Smin(i+1)系统就不会发生死锁
要使M-Smin(i)+1≧Smin(i+1)
只需M+1≧Smin(i+1)+ Smin(i)
只需M+1≧2Smin(i) (放缩Smin(i+1)>Smin(i))
只需Smin(i)≦(M+1)/2
因为M ≧1 所以2M≧M+1 即M≧(M+1)/2 所以Smin(i)≦(M+1)/2成立
所以系统不会发生死锁。