《操作系统》第4章教材习题解答
- 格式:doc
- 大小:86.50 KB
- 文档页数:5
操作系统原理与实践教程(第二版)第4章习题答案第4章进程同步与死锁(1) 什么是进程同步?什么是进程互斥?解:同步是进程间的直接制约关系,这种制约主要源于进程间的合作。
进程同步的主要任务就是使并发执行的各进程之间能有效地共享资源和相互合作,从而在执行时间、次序上相互制约,按照一定的协议协调执行,使程序的执行具有可再现性。
进程互斥是进程间的间接制约关系,当多个进程需要使用相同的资源,而此类资源在任一时刻却只能供一个进程使用,获得资源的进程可以继续执行,没有获得资源的进程必须等待,进程的运行具有时间次序的特征,谁先从系统获得共享资源,谁就先运行,这种对共享资源的排它性使用所造成的进程间的间接制约关系称为进程互斥。
互斥是一种特殊的同步方式。
(2) 进程执行时为什么要设置进入区和退出区?解:为了实现多个进程对临界资源的互斥访问,必须在临界区前面增加一段用于检查欲访问的临界资源是否正被访问的代码,如果未被访问,该进程便可进入临界区对资源进行访问,并设置正被访问标志,如果正被访问,则本进程不能进入临界区,实现这一功能的代码成为“进入区”代码;在退出临界区后,必须执行“退出区”代码,用于恢复未被访问标志。
(3) 同步机构需要遵循的基本准则是什么?请简要说明。
解:同步机制都应遵循下面的4条准则:1.空闲让进。
当无进程处于临界区时,允许进程进入临界区,并且只能在临界区运行有限的时间。
2.忙则等待。
当有一个进程在临界区时,其它欲进入临界区的进程必须等待,以保证进程互斥地访问临界资源。
3.有限等待。
对要求访问临界资源的进程,应保证进程能在有限时间内进入临界区,以免陷入“饥饿”状态。
4.让权等待。
当进程不能进入临界区时,应立即放弃占用CPU,以使其它进程有机会得到CPU的使用权,以免陷入“饥饿”状态。
(4) 整型信号量是否能完全遵循同步机构的四条基本准则?为什么?解:不能。
在整型信号量机制中,未遵循“让权等待”的准则。
第4章存储管理“练习与思考”解答1.基本概念和术语逻辑地址、物理地址、逻辑地址空间、内存空间、重定位、静态重定位、动态重定位、碎片、碎片紧缩、虚拟存储器、快表、页面抖动用户程序经编译之后的每个目标模块都以0为基地址顺序编址,这种地址称为相对地址或逻辑地址。
内存中各物理存储单元的地址是从统一的基地址开始顺序编址的,这种地址称为绝对地址或物理地址。
由程序中逻辑地址组成的地址范围叫做逻辑地址空间,或简称为地址空间。
由内存中一系列存储单元所限定的地址范围称作内存空间,也称物理空间或绝对空间。
程序和数据装入内存时,需对目标程序中的地址进行修改。
这种把逻辑地址转变为内存物理地址的过程称作重定位。
静态重定位是在目标程序装入内存时,由装入程序对目标程序中的指令和数据的地址进行修改,即把程序的逻辑地址都改成实际的内存地址。
动态重定位是在程序执行期间,每次访问内存之前进行重定位。
这种变换是靠硬件地址转换机构实现的。
内存中这种容量太小、无法被利用的小分区称作“碎片”或“零头”。
为解决碎片问题,移动某些已分配区的内容,使所有进程的分区紧挨在一起,而把空闲区留在另一端。
这种技术称为紧缩(或叫拼凑)。
虚拟存储器是用户能作为可编址内存对待的虚拟存储空间,它使用户逻辑存储器与物理存储器分离,是操作系统给用户提供的一个比真实内存空间大得多的地址空间。
为了解决在内存中放置页表带来存取速度下降的矛盾,可以使用专用的、高速小容量的联想存储器,也称作快表。
若采用的置换算法不合适,可能出现这样的现象:刚被换出的页,很快又被访问,为把它调入而换出另一页,之后又访问刚被换出的页,……如此频繁地更换页面,以致系统的大部分时间花费在页面的调度和传输上。
此时,系统好像很忙,但实际效率却很低。
这种现象称为“抖动”。
2.基本原理和技术(1)存储器一般分为哪些层次?各有何特性?存储器一般分为寄存器、高速缓存、内存、磁盘和磁带。
CPU内部寄存器,其速度与CPU一样快,但它的成本高,容量小。
第四章一、问答题1、同步机制应遵循的准则是什么?2、死锁产生的4个必要条件是什么?它们是彼此独立的吗?3、简述死锁的定义和死锁产生的原因。
4、简述死锁定理和解除死锁的方法。
5、什么是安全状态?怎么判断系统是否处于安全状态?6、同步机制应遵循的准则是什么?7、死锁产生的4个必要条件是什么?它们是彼此独立的吗?二、计算题(共20分)1、当前系统中出现下述资源分配情况:利用银行家算法,试问如果进程P2提出资源请求Request(1,2,2,2)后,系统能否将资源分配给它?答:Request(1,2,2,2)<=(2,3,5,6)申请合法Request(1,2,2,2)<=Available,开始试探性分配,Available=(0,4,0,0) 测试系统是否安全:work= Available,finish=1没有进程的need满足<=work系统处于不安全状态,系统拒绝此次资源分配。
2、当前某系统有同类资源7个,进程P,Q所需资源总数分别为5,4。
它们向系统申请资源的次序和数量如表所示。
回答:问:采用死锁避免的方法进行资源分配,请你写出系统完成第3次分配后各进程占有资源量,在以后各次的申请中,哪次的申请要求可先得到满足?答:第1次申请,Q申请资源2,系统安全,分配第2次申请,P申请资源1,系统安全,分配第3次申请,Q申请资源1,系统安全,分配资源剩余3个,P占有1个资源,Q占有3个资源,第4次分配不安全,拒绝,第5分配系统安全,满足。
3、一个计算机系统有6个磁带驱动器和4个进程。
每个进程最多需要n个磁带驱动器。
问当n为什么值时,系统不会发生死锁?并说明理由答:n=2理由同第4题(进程资源最大需求-1)×进程数量+1≤系统资源数量4、若系统有某类资源m×n+1个,允许进程执行过程中动态申请该类资源,但在该系统上运行的每一个进程对该资源的占有量任何时刻都不会超过m+1个。
第四章存储器管理一、单项选择题1、存储管理的目的是(C )。
A.方便用户B.提高内存利用率C.方便用户和提高内存利用率D.增加内存实际容量2、在( A)中,不可能产生系统抖动的现象。
A.固定分区管理B.请求页式管理C.段式管理D.机器中不存在病毒时3、当程序经过编译或者汇编以后,形成了一种由机器指令组成的集合,被称为(B )。
A.源程序B.目标程序C.可执行程序D.非执行程序4、可由CPU调用执行的程序所对应的地址空间为(D )。
A.符号名空间B.虚拟地址空间C.相对地址空间D.物理地址空间5、存储分配解决多道作业[1C]划分问题。
为了实现静态和动态存储分配,需采用地址重定位,即把[2C]变成[3D],静态重定位由[4D]实现,动态重定位由[5A]实现。
供选择的答案:[1]:A 地址空间 B 符号名空间 C 主存空间 D 虚存空间[2]、[3]: A 页面地址 B 段地址 C 逻辑地址 D 物理地址 E 外存地址 F 设备地址[4]、[5]: A 硬件地址变换机构 B 执行程序 C 汇编程序D 连接装入程序E 调试程序F 编译程序G 解释程序6、分区管理要求对每一个作业都分配(A )的内存单元。
A.地址连续B.若干地址不连续C.若干连续的帧D.若干不连续的帧7、(C )存储管理支持多道程序设计,算法简单,但存储碎片多。
A.段式B.页式C.固定分区D.段页式8、处理器有32位地址,则它的虚拟地址空间为( B)字节。
A.2GBB.4GBC.100KBD.640KB9、虚拟存储技术是( A)。
A.补充内存物理空间的技术B.补充相对地址空间的技术C.扩充外存空间的技术D.扩充输入输出缓冲区的技术10、虚拟内存的容量只受( D)的限制。
A.物理内存的大小B.磁盘空间的大小C.数据存放的实际地址D.计算机地址字长11、虚拟存储技术与(A )不能配合使用。
A.分区管理B.动态分页管理C.段式管理D.段页式管理12、(B )是指将作业不需要或暂时不需要的部分移到外存,让出内存空间以调入其他所需数据。
第4章文件系统-习题集参考答案一、选择题1. D2. A3. D4. A5. B6. A //一个文件对应一个文件控制块,所有文件控制块构成目录文件7. A //在文件系统中,为每个文件建立一个文件目录,作为目录文件的一个目录项,包含文件的名称及其属性。
8. C9. C //在设置当前工作目录后,文件查找在默认情况下是查当前目录,从而提高查找速度。
10. D11. C12. B13. C //如UNIX中,采用了把文件名与文件描述信息分开的方法,即使文件描述信息单独形成一个称为索引节点的数据结构,简称i节点(索引节点),这样文件目录中仅由文件名各指向该文件所对应的i节点的指针所构成,这样目录项仅有16个字节,其中14个字节为文件名,2个字节为i节点指针。
在1KB的盘块中可做1KB/16B=64个目录项,这样,为找到一个文件,可以大小减少读入内在的信息量。
14. B //只有索引分配方式中的FCB才包含索引表地址15. B16. B17. D //1K/64=1618. C //本注:每块能存放的目录项=1K/64=16个;3200个目录项占用盘块数=3200/16=200。
因为一级目录平均访问盘次数=1/2盘块数(顺序查找目录表中所有目录项,每个目录项为一个FCB),所以平均访问磁盘次数=200/2=100次。
19. C//本注:1.用的是称做“混合索引”的方式。
2.思路很简单,只是要用些专用概念3.三类地址项:1)直接地址项,每个地址直接管理一个“文件块”,而每个“块”是256字节。
共4个这种地址,所以管理:4*256=1KB2)一级间接地址项,每个地址项管理一个“索引块”,而索引块的大小也是256字节,其中可放置:256/4=64个地址项,而每个地址项管理256字节文件。
所以,2个一级间址可管理文件大小:2*64*256=32KB3)二级间接地址项,地址项→索引块→索引块→文件数据块。
所以可管理文件数据:1*64*64*256=1024KB.4.综合上面可管理的文件大小为:1+32+1024=1057KB20. B21. B22. B //每个盘面物理块=200*4=800块,盘面数=8000/800=10,互盘有两个盘面。
⒈计算机系统中存储器一般分为哪两级?各有什么特点?答:计算机系统中存储器一般分为主存储器和辅助存储器两级。
主存储器简称主存,又称为内存,它由自然数顺序编址的单元(通常为字或字节)所组成,是处理机直接存取指令和数据的存储器,它速度快,但容量有限。
辅助存储器简称辅存,又称为外存,它由顺序编址的“块”所组成,每块包含若干个单元,寻址与交换以块为单位进行,处理机不能直接访问它,它须经过专门的启动入出过程与内存交换信息,它存取速度较慢,但容量远大于内存,实际上,现代计算机系统中用户的数据(或信息)都是保存在外存中。
⒉存储管理的目的是什么?答:存储管理要实现的目的是:为用户提供方便、安全和充分大的存储空间。
所谓方便是指将逻辑地址和物理地址分开,用户只在各自逻辑地址空间编写程序,不必过问物理空间和物理地址的细节,地址的转换由操作系统自动完成;安全则是指同时驻留在内存的多道用户程序相互之间不会发生干扰,也不会访问操作系统所占有的空间。
充分大的存储空间是指利用虚拟存储技术,从逻辑上对内存空间进行扩充,从而可以使用户在较小内存里运行较大程序。
⒊存储管理的任务是什么?答:存储管理是计算机操作系统软件的一部分,它负责完成对主存储器的地址转换,对主存储器进行分配与去配,解决多用户对主存储器的共享和保护,通过软件手段,实现对主存储器容量的扩充。
⒋地址转换可分为哪三种方式?比较这三种方式的优缺点。
答:由逻辑地址转化为物理地址的地址转换过程,按照转换的时间不同,可以分为3种方式:①绝对装入方式②静态重定位方式③动态重定位方式(第二问略)⒌可变分区常用的分区算法有哪几种?它们各自的特点是什么?答:首次适应算法、循环首次适应算法、最佳适应算法、最差适应算法(第二问略)⒍试用类C语言写首次适应算法的分配过程。
答:firstmatch(n){p=Free;while(p!=NULL){if(p->size>=n){if(p->size-n>=size)p->size=p->size-n;a=p;p=p+n;elsea=p;remove(Free,p);}elsep=p->next}return a}⒎什么叫紧凑?为什么要进行紧凑?答:为了解决碎片问题,可采用的一种方法是,将内存中的所有作业进行移动,使它们相邻接。
操作系统第4章习题带答案第四章⼀、问答题1、同步机制应遵循的准则是什么?2、死锁产⽣的4个必要条件是什么?它们是彼此独⽴的吗?3、简述死锁的定义和死锁产⽣的原因。
4、简述死锁定理和解除死锁的⽅法。
5、什么是安全状态?怎么判断系统是否处于安全状态?6、同步机制应遵循的准则是什么?7、死锁产⽣的4个必要条件是什么?它们是彼此独⽴的吗?⼆、计算题(共20分)1、当前系统中出现下述资源分配情况:利⽤银⾏家算法,试问如果进程P2提出资源请求Request(1,2,2,2)后,系统能否将资源分配给它?答:Request(1,2,2,2)<=(2,3,5,6)申请合法Request(1,2,2,2)<=Available,开始试探性分配,Available=(0,4,0,0) 测试系统是否安全:work= Available,finish=1没有进程的need满⾜<=work系统处于不安全状态,系统拒绝此次资源分配。
2、当前某系统有同类资源7个,进程P,Q所需资源总数分别为5,4。
它们向系统申请资源的次序和数量如表所⽰。
回答:问:采⽤死锁避免的⽅法进⾏资源分配,请你写出系统完成第3次分配后各进程占有资源量,在以后各次的申请中,哪次的申请要求可先得到满⾜?答:第1次申请,Q申请资源2,系统安全,分配第2次申请,P申请资源1,系统安全,分配第3次申请,Q申请资源1,系统安全,分配资源剩余3个,P占有1个资源,Q占有3个资源,第4次分配不安全,拒绝,第5分配系统安全,满⾜。
3、⼀个计算机系统有6个磁带驱动器和4个进程。
每个进程最多需要n个磁带驱动器。
问当n为什么值时,系统不会发⽣死锁?并说明理由答:n=2理由同第4题(进程资源最⼤需求-1)×进程数量+1≤系统资源数量4、若系统有某类资源m×n+1个,允许进程执⾏过程中动态申请该类资源,但在该系统上运⾏的每⼀个进程对该资源的占有量任何时刻都不会超过m+1个。
6、为什么要引进动态重定位?如何实现?为了能够在程序执行过程中,每当要访问指令或数据时,将要访问的存储单元的逻辑地址转换成物理地址,引入了动态重定位。
使用动态地址重定位,一个作业可以占用非连续存储空间;能实现虚拟存储;有利于程序段的共享。
可在系统中增加一个重定位寄存器,用它来存放程序在内存中的起始地址。
基本的地址变换计算方法是将内存单元的逻辑地址与重定位寄存器的值相加,得到单元的物理地址。
在可重定位分区式存储管理、分页式存储管理、分段式存储管理方法中,都有不同的地址变换位方法:P128,P135,P138 9、分区存储管理常用哪些分配策略?比较它们的优缺点。
分区存储管理中常采用的分配策略有:首次适应算法、循环首次适应算法、最佳适应算法、最坏适应算法。
a.首次适应算法的优缺点:保留了高址部分的大空闲区,有利于后到来的大型作业的分配;低址部分不断被划分,留下许多难以利用的、小的空闲区,且每次分区分配查找时都是从低址部分开始,会增加查找时的系统开销。
b.循环首次适应算法的优缺点:使内存中的空闲分区分布得更为均匀,减少了查找时的系统开销;缺乏大的空闲分区,从而导致不能装入大型作业。
c.最佳适应算法的优缺点:每次分配给文件的都是最适合该文件大小的分区;内存中留下许多难以利用的小的空闲区。
d.最坏适应算法的优缺点:给文件分配分区后剩下的的空闲区不至于太小,产生碎片的几率最小,对中小型文件分配分区操作有利;使存储器中缺乏大的空闲区,对大型文件的分区分配不利。
14、较详细的说明引入分段存储管理方式是为了满足用户哪几个方面的需求。
方便编程、信息共享、信息保护、动态增长、动态链接。
P13617、分页和分段存储管理有何区别?(1) 页是信息的物理(存储)单位,分页是为实现离散分配方式,以消减内存的零头,提高内存的利用率。
或者说,分页仅仅是由于系统管理的需要而不是用户的需要。
段则是信息的逻辑单位,它含有一组其意义相对完整的信息。
操作系统第四章习题及答案第四章进程管理1、⼀个由3个页⾯每页有2048个字节组成的程序,将它装⼊⼀个8个物理块组成的存储器中,装⼊的情况如下表所⽰:给出下列逻辑地址,请计算出2617对应的物理地址:2、某请求页式存储管理,允许⽤户编程空间为32个页⾯(每页1KB),主存为16KB, 如有⼀个⽤户程序有10页长,且某时刻该⽤户页⾯映射表如表所⽰。
如果程序执⾏时遇到以下的虚地址:0AC5H ,1AC5H 试计算对应的物理地址。
3、假设某分页系统中,主存储器的容量为1MB ,被分为256块,回答:1)主存地址应该⽤位来表⽰。
2)作业每⼀页的长度为;逻辑地址中的页内地址应该为位。
4、在段式管理系统中,段表为求下⾯逻辑地址对应的物理地址。
12 7 1 4 0 块号页号 95 1938 4 590 13503 90 100 220 2350 1 500 210 0 段长内存起始地址段号(1,10);(2,500);(3,400);(5,32)5、在⼀分页存储管理系统中,逻辑地址长度为16位,页⾯⼤⼩为4096字节,分别计算逻辑地址14AAH,235BH,3B4CH,78DDH所对应的物理地址,并指出可能发⽣何种中断?(8分)注:1表⽰可寻址,0表⽰在外存。
6、在⼀个请求分页系统中,假定系统分配给作业的物理块数为3,并且此作业的页⾯⾛向为2、3、2、1、5、2、4、5、3、2、5、2。
试⽤LRU算法计算出程序访问过程所发⽣的缺页次数和被替换的页⾯序列。
答案:1、P=int(2617/2048)=1 d=569物理地址=4*2048+569=87612、0AC5H的页号是2,对应的物理页号是4,所以物理地址应该为12C5H,1AC5H的页号是6,超过了页表的范围,所以该地址⾮法,产⽣越界中断3、假设某分页系统中,主存储器的容量为1MB,被分为256块,回答:1)主存地址应该⽤ 20 位来表⽰。
2)作业每⼀页的长度为 2048 ;逻辑地址中的页内地址应该为 12 位。
第四章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调度,请给出各进程的完成时间、周转时间、带权周转时间,及所有进程的平均周转时间和平均带权周转时间。
第四章存储器管理. 为什么要配置层次式存储器?答:这是因为:.设置多个存储器可以使存储器两端地硬件能并行工作..采用多级存储系统,特别是技术,这是一种减轻存储器带宽对系统性能影响地最佳结构方案..在微处理机内部设置各种缓冲存储器,以减轻对存储器存取地压力.增加中寄存器地数量,也可大大缓解对存储器地压力.、可采用哪几种方式将程序装入内存?它们分别适用于何种场合?答:()绝对装入方式:绝对装入方式只能将目标模块装入到内存中事先指定地位置.在多道程序环境下,编译程序不可能预知所编译地目标模块应放在内存地何处,困此,绝对装入方式只适用于单道程序环境.()可重定位装入方式:在多道程序环境下,所得到地目标模块地起始地址通常是从开始地,程序中地其它地址也都是相对于起始地址计算地.此时应采用可重定位装入方式,根据内存地当前情况,将装入模块装入到内存地适当位置.()动态运行时装入方式:可重定位装入方式可将装入模块装入到内存中任何允许地位置,故可用于多道程序环境;但这种方式并不允许程序运行时在内存中移动位置.、何谓静态链接?何谓装入时动太链接和运行时地动态链接?答:、静态链接:在程序运行之前,先将各目标模块及它们所需地库函数,链接成一个完整地装配模块,以后不再拆开,我们把这种事先进行链接地方式称为静态链接方式、装入时动态链接:这是指将用户源程序编译后所得到地一组目标模块,在装入内存时,采用边装入边链接地链接方式.、运行时动态链接:这是指对某些目标模块地链接,是在程序执行中需要该(目标)模块时,才对它进行地链接.、在进行程序链接时,应完成哪些工作?答:静态链接、装入时动态链接、运行时动态链接;、在动态分区分配方式中,应如何将各空闲分区链接成空闲分区链?答:为了实现对空闲分区地分配和链接,在每个分区地起始部分,设置一些用于控制分区分配地信息,以及用于链接各分区所用地前向指针;在分区尾部则设置一后向指针,通过前、后向链接指针,可将所有地空闲分区链接成一个双向链,为了检索方便,在分区尾部重复设置状态位和分区大小表目.当分区被分配出去以后,把状态位由“”改为“”,此时,前、后向指针已无意义.、为什么要引入动态重定位?如何实现?答:. 为了在程序执行过程中,每当访问指令或数据时,将要访问地程序或数据地逻辑地址转换成物理地址,引入了动态重定位.. 可在系统中增加一个重定位寄存器,用它来装入(存放)程序在内存中地起始地址,程序在执行时,真正访问地内存地址是相对地址与重定位寄存器中地地址相加而形成地,从而实现动态重定位.、在采用首次适应算法回收内存时,可能出现哪几种情况?应怎样处理这些情况?答:、回收区与插入点地前一个空闲区相邻接,此时应将回收区与插入点地前一分区合并,不必为回收区分配新表项,而只需修改其前一分区地大小.、回收区与插入点地后一个空闲区相邻接,此时可将两分区合并,形成新地空闲区,但用回收区地首址作为新空闲区地首址,大小为两者之和.、回收区同时与插入点地前、后两个空闲区邻接,此时可将三个分区合并,使用前一个分区地表项和首址,取消后一个分区地表项,大小为三者之和.、回收区既不与前一个分区相邻接,也不与后一个分区相邻接,这时应为回收区单独建立一新表项,填写回收区地首址和大小,并根据其首址插入到空闲链中地适应位置.. 分区存储管理中常采用哪些分配策略?比较它们地优缺点.答:分区存储管理中常采用地分配策略有:首次适应算法、循环首次适应算法、最佳适应算法、最坏适应算法..首次适应算法地优缺点:保留了高址部分地大空闲区,有利于后到来地大型作业地分配;低址部分不断被划分,留下许多难以利用地、小地空闲区,且每次分区分配查找时都是从低址部分开始,会增加查找时地系统开销..循环首次适应算法地优缺点:使内存中地空闲分区分布得更为均匀,减少了查找时地系统开销;缺乏大地空闲分区,从而导致不能装入大型作业..最佳适应算法地优缺点:每次分配给文件地都是最适合该文件大小地分区;内存中留下许多难以利用地小地空闲区..最坏适应算法地优缺点:给文件分配分区后剩下地地空闲区不至于太小,产生碎片地几率最小,对中小型文件分配分区操作有利;使存储器中缺乏大地空闲区,对大型文件地分区分配不利.. 在系统中引入对换后可带来哪些好处?答:能将内存中暂时不运行地进程或暂时不用地程序和数据,换到外存上,以腾出足够地内存空间,把已具备运行条件地进程或进程所需地程序和数据换入内存,从而大大地提高了内存地利用率.、为实现对换,系统应具备哪几方面地功能?答:兑换空间地管理,进程地换出,进程地换入.、在以进程为单位进行对换时,每次是否都将整个进程换出?为什么?答:. 以进程为单位进行对换时,每次都将整个进程换出;. 目地为了解决内存紧张地问题,提高内存地利用率.、为实现分页存储管理,需要哪些硬件支持?答:需要一台具有一定容量地内存及外存地计算机系统外,页表机制、缺页中断机构以及地址变换机构.、较详细地说明引入分段存储管理是为了满足用户哪几方面地需要.答:方便编程、信息共享、信息保护、动态增长、动态链接.、在具有快表地段页式存储管理方式中,如何实现地址变换?答:物理地址该段在主存地起始地址页框号*大小页内地址.. 为什么说分段系统较之分页系统更易于实现信息共享和保护?答:.对于分页系统,每个页面是分散存储地,为了实现信息共享和保护,则页面之间需要一一对应起来,为此需要建立大量地页表项;.而对于分段系统,每个段都从开始编址,并采用一段连续地地址空间,这样在实现共享和保护时,只需为所要共享和保护地程序设置一个段表项,将其中地基址与内存地址一一对应起来即可.、分页和分段存储管理有何区别?答:主要表现在()页是信息地物理单位,分页是为实现离散分配方式,以消减内存地外零头,提高内存地利用率.或者说,分页仅仅是由于系统管理地需要而不是用户地需要.段则是信息地逻辑单位,它含有一组其意义相对完整地信息.分段地目地是为了能更好地满足用户地需要.()页地大小固定且由系统决定,由系统把逻辑地址划分为页号和页内地址两部分,是由机器硬件实现地,因而在系统中只能有一种大小地页面;根据信息地性质来划分.()分页地作业地址空间是一维地,即单一地线性地址空间,程序员只需利用一个记忆符,即可表示一个地址;而分段地作业地址空间则是二维地,程序员在标识一个地址时,即需给出段名,又需给出段内地址.. 试全面比较连续分配和离散分配方式.答:()连续分配是指为一个用户程序分配一个连续地地址空间,包括单一连续分配方式和分区式分配方式,前者将内存分为系统区和用户区,系统区供操作系统使用,用户区供用户使用,是最简单地一种存储方式,但只能用于单用户单任务地操作系统中;分区式分配方式分为固定分区和动态分区,固定分区是最简单地多道程序地存储管理方式,由于每个分区地大小固定,必然会造成存储空间地浪费;动态分区是根据进程地实际需要,动态地为之分配连续地内存空间,常用三种分配算法: 首次适应算法,该法容易留下许多难以利用地小空闲分区,加大查找开销;循环首次适应算法,该算法能使内存中地空闲分区分布均匀,但会致使缺少大地空闲分区;最佳适应算法,该算法也易留下许多难以利用地小空闲区;()离散分配方式基于将一个进程直接分散地分配到许多不相邻地分区中地思想,分为分页式存储管理,分段存储管理和段页式存储管理. 分页式存储管理旨在提高内存利用率,满足系统管理地需要,分段式存储管理则旨在满足用户(程序员)地需要,在实现共享和保护方面优于分页式存储管理,而段页式存储管理则是将两者结合起来,取长补短,即具有分段系统便于实现,可共享,易于保护,可动态链接等优点,又能像分页系统那样很好地解决外部碎片地问题,以及为各个分段可离散分配内存等问题,显然是一种比较有效地存储管理方式;、虚拟存储器有哪些特征?其中最本质地特征是什么?答:多次性、对换性、虚拟性;值得说明地是,虚拟性是以多次性和对换性为基础地,或者说,仅当系统允许将作业分多次调入内存,并能将内存中暂时不运行地程序和数据换至盘上时,才有可能实现虚拟存储器;而多次性和对换性又必须建立在离散分配地基础上.. 实现虚拟存储器需要哪些硬件支持?答:()对于为实现请求分页存储管理方式地系统,除了需要一台具有一定容量地内存及外存地计算机外,还需要有页表机制,缺页中断机构以及地址变换机构;()对于为实现请求分段存储管理方式地系统,除了需要一台具有一定容量地内存及外存地计算机外,还需要有段表机制,缺段中断机构以及地址变换机构;、实现虚拟存储器需要几个关键技术?答:、分页请求系统、请求分段系统、在请求分页系统中,页表应包括哪些数据项?每项地作用是什么?答:、页号:将一个进程地逻辑地址空间分成若干个大小相等地片,成为页面或页,并对各页加以编号.、物理块号:内存空间分成与页大小相等地物理块,对物理块进行编号.、状态位:用于指示该页是否已调入内存,供程序访问时参考.、访问字段:用于记录本页在一段时间内被访问地次数,或记录本页最近已有多长时间未被访问.、修改位:表示该页调入内存是否被修改过.、外存地址:用于指示该页在外存上地地址,通常是物理块号,供调入该页时参考.、在请求分页系统中,应从何处将所需页面调入内存?答:外存.、在请求分页系统中,常采用哪几种页面置换算法?答:先来先服务,最近最久未使用,最佳置换算法.. 在请求分页系统中,通常采用哪种页面分配方式?答:三种分配方式:固定分配局部置换、可变分配全局置换、可变分配局部置换. . 在一个请求分页系统中,采用页面置换算法时,假如一个作业地页面走向为、、、、、、、、、、、,当分配给该作业地物理块数分别为和时,试计算在访问过程中所发生地缺页次数和缺页率,并比较所得结果.答:时,采用页面置换算法地缺页次数为次,缺页率为;时,采用页面置换算法地缺页次数为次,缺页率为.由此可见,增加分配给作业地内存块数,反而增加了缺页次数,提高了缺页率,这种现象被称为是现象.、实现算法所需要地硬件支持是什么?答:寄存器、栈.. 试说明改进型置换算法地基本原理.答:基本原理:在将一个页面换出时,如果该页已被修改过,便须将该页重新写回到磁盘上;但如果该页未被修改过,则不必将它写回磁盘上.在改进型算法中,除需考虑页面地使用情况外,还须再增加一个因素,即置换代价,这样,选择页面换出时,既要是未使用过地页面,又要是未被修改过地页面.、说明请求分段系统中地缺页中断处理过程?答:在请求分段系统中,每当发现运行进程所要访问地段尚未调入内存时,便由缺段中断机构产生一缺段中断信号,进入操作系统后由缺段中断处理程序将所需地段调入内存.缺段中断机构与缺页中断机构类似,它同样需要在一条指令地执行期间,产生和处理中断,以及在一条指令执行期间,可能产生多次缺段中断.缺段中断地处理过程如图所示.、如何实现分段共享?答:对于一个共享段,不同地进程可以各用不同地段号去共享该段.。
第四章互斥、同步与通讯答案一、单项选择题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.[分析]如果不控制并发进程执行的相对速度,则它们在共享资源时可能会出现两种情况:一种是并发进程交替使用共享资源,这样就可能会发生与时间有关的错误;另一种是并发执行的速度没有致使它们交替使用共享资源,这时就不会出现与时间有关的错误。
(1) 按教科书的写法。
当生产n 件商品后,生产者就阻塞;消费者一直阻塞。
(2) (注:题目有问题,应该成“生产者进程的P(mutex)和P(empty)的先后顺序对换,消 费者进程的P(mutex)和P(full)的先后顺序对换, ”)当消费者先执行P(mutex)后,再 执行p(full)而阻塞。
这样导致生产者执行P(mutex)而阻塞,这样生产者和消费者都会进入阻 塞而死锁。
4.13(1) 的初值为1,的变化范围为1到-n-1)(2) 的初值为m,变化范围为m 到-(n-m)。
4.14AV设置进程A 、B 分别代表两条马路上的汽车进程,设置信号量mutex 用于十字路口的互斥, 初值为1,为了保证A 、B 都有车时两条道路的车辆轮流通过,需要设置同步信号量ax 和 bx,初值分别是0, 0,设置计数器,counta,countb 分别记录A 、B 两条马路上等待的车辆数。
var mutex:=semaphore:=1 ;var counta:=countb:=0;beginparbeginA:beginB: begin P(mutex);counta:= counta+1;P(mutex); countb:= countb+l; if countb=0 and counta=l thenif counta=0 and countb=lthen /*本路有第 1 辆车,另一条路无车,让本路车通过*/V(ax);V(mutex)P(ax);V(bx); V(mutex) P(bx); A 通过P(mutex);Counta:= counta-1If countb>0 thenV(bx);ElseIf counta>=0 then V(ax);V(mutex)endB 通过 P(mutex); countb:= countb -1 If counta>0 then V(ax); else If countb>0 then V(bx); V(mutex) end parend4.15(1):这段代码可以完成哲学家进餐问题。
第4章存储管理
“练习与思考”解答
1.基本概念和术语
逻辑地址、物理地址、逻辑地址空间、内存空间、重定位、静态重定位、动态重定位、碎片、碎片紧缩、虚拟存储器、快表、页面抖动
用户程序经编译之后的每个目标模块都以0为基地址顺序编址,这种地址称为相对地址或逻辑地址。
内存中各物理存储单元的地址是从统一的基地址开始顺序编址的,这种地址称为绝对地址或物理地址。
由程序中逻辑地址组成的地址范围叫做逻辑地址空间,或简称为地址空间。
由内存中一系列存储单元所限定的地址范围称作内存空间,也称物理空间或绝对空间。
程序和数据装入内存时,需对目标程序中的地址进行修改。
这种把逻辑地址转变为内存物理地址的过程称作重定位。
静态重定位是在目标程序装入内存时,由装入程序对目标程序中的指令和数据的地址进行修改,即把程序的逻辑地址都改成实际的内存地址。
动态重定位是在程序执行期间,每次访问内存之前进行重定位。
这种变换是靠硬件地址转换机构实现的。
内存中这种容量太小、无法被利用的小分区称作“碎片”或“零头”。
为解决碎片问题,移动某些已分配区的内容,使所有进程的分区紧挨在一起,而把空闲区留在另一端。
这种技术称为紧缩(或叫拼凑)。
虚拟存储器是用户能作为可编址内存对待的虚拟存储空间,它使用户逻辑存储器与物理存储器分离,是操作系统给用户提供的一个比真实内存空间大得多的地址空间。
为了解决在内存中放置页表带来存取速度下降的矛盾,可以使用专用的、高速小容量的联想存储器,也称作快表。
若采用的置换算法不合适,可能出现这样的现象:刚被换出的页,很快又被访问,为把它调入而换出另一页,之后又访问刚被换出的页,……如此频繁地更换页面,以致系统的大部分时间花费在页面的调度和传输上。
此时,系统好像很忙,但实际效率却很低。
这种现象称为“抖动”。
2.基本原理和技术
(1)存储器一般分为哪些层次?各有何特性?
存储器一般分为寄存器、高速缓存、内存、磁盘和磁带。
CPU内部寄存器,其速度与CPU一样快,但它的成本高,容量小。
高速缓存(Cache),它们大多由硬件控制。
Cache的速度很快,它们放在CPU内部或非常靠近CPU的地方。
但Cache的成本很高,容量较小。
内存(或称主存),它是存储器系统的主力,也称作RAM(随机存取存储器)。
CPU可以直接存取内存及寄存器和Cache中的信息。
然而,内存中存放的信息是易变的,当机器电源被关闭后,内存中的信息就全部丢失了。
磁盘(即硬盘),称作辅助存储器(简称辅存或外存),它是对内存的扩展,但是CPU不能直接存取磁盘上的数据。
磁盘上可以永久保留数据,而且容量特别大。
磁盘上数据的存取速度低于内存存取速度。
磁带保存的数据更持久,容量更大,但它的存取速度很慢,而且不适宜进行随机存取。
所以,磁带设备一般不能用做辅存。
它的主要用途是作为文件系统的后备,存放不常用的信息或用做系统间传送信息的介质。
(2)装入程序的功能是什么?常用的装入方式有哪几种?
装入程序的功能是根据内存的使用情况和分配策略,将装入模块放入分配到的内存区中。
程序装入内存的方式有三种,分别是绝对装入方式、可重定位装入方式和动态运行时装入方式。
(3)对程序进行重定位的方式分为哪两种?简述各自的实现方式。
对程序进行重定位的方式分为静态重定位和动态重定位。
静态重定位是在目标程序装入内存时,由装入程序对目标程序中的指令和数据的地址进行修改,即把程序的逻辑地址都改成实际的内存地址。
对每个程序来说,这种地址变换只是在装入时一次完成,在程序运行期间不再进行重定位。
动态重定位是在程序执行期间,每次访问内存之前进行重定位。
这种变换是靠硬件地址转换机构实现的。
通常,采用一个重定位寄存器,其中放有当前正在执行的程序在内存空间中的起始地址,而地址空间中的代码在装入过程中不发生变化。
(4)对换技术如何解决内存不足的问题?
在多道程序环境中可以采用对换技术。
此时,内存中保留多个进程。
当内存空间不足以容纳要求进入内存的进程时,系统就把内存中暂时不能运行的进程(包括程序和数据)换出到外存上,腾出内存空间,把具备运行条件的进程从外存换到内存中。
(5)解释固定分区法和动态分区法的基本原理。
固定分区法——内存中分区的个数固定不变,各个分区的大小也固定不变,但不同分区的大小可以不同。
每个分区只可装入一道作业。
动态分区法——各个分区是在相应作业要进入内存时才建立的,使其大小恰好适应作业的大小。
(6)动态重定位分区管理方式中如何实现虚-实地址映射?
进程装入内存时,是将该其程序和数据原封不动地装入到内存中。
当调度该进程在CPU上执行时,操作系统就自动将该进程在内存的起始地址装入基址寄存器,将进程的大小装入限长寄存器。
当执行指令时,如果地址合法,则将相对地址与基址寄存器中的地址相加,所得结果就是真正访问内存的地址;如果地址越界,则发出相应中断,进行处理。
(7)分页存储管理的基本方法是什么?
分页存储管理的基本方法是:逻辑空间分页,内存空间分块,块与页的大小相等。
页连续而块离散,用页号查页表,由硬件作转换。
(8)在分页系统中页面大小由谁决定?页表的作用是什么?如何将逻辑地址转
换成物理地址?
在分页系统中页面大小由硬件决定。
页表的作用是实现从页号到物理块号的地址映射。
逻辑地址转换成物理地址的过程是:用页号p去检索页表,从页表中得到该页的物理块号f,把它装入物理地址寄存器中。
同时,将页内地址d直接送入物理地址寄存器的块内地址字段中。
这样,物理地址寄存器中的内容就是由二者拼接成的实际访问内存的地址,从而完成了从逻辑地址到物理地址的转换。
(9)虚拟存储器有哪些基本特征?
虚拟存储器的基本特征是:
虚拟扩充——不是物理上,而是逻辑上扩充了内存容量;
部分装入——每个进程不是全部一次性地装入内存,而是只装入一部分;
离散分配——不必占用连续的内存空间,而是“见缝插针”;
多次对换——所需的全部程序和数据要分成多次调入内存。
(10)页面抖动与什么有关?
好的页面置换算法能够适当降低页面更换频率,减少缺页率,尽量避免系统“抖动”。
此外,一般来说,随着可用内存块数的增加,缺页数也将减少。
3.思考题
(1)为了提高内存的利用率,在可重定位分区分配方式中可通过什么技术来减少内存碎片?
在可重定位分区分配方式中采用紧缩技术来减少内存碎片。
(11)请求分页技术与简单分页技术之间的根本区别是什么?
请求分页技术与简单分页技术之间的根本区别是:请求分页提供虚拟存储器,而简单分页系统并未提供虚拟存储器。
(2)某虚拟存储器的用户编程空间共32个页面,每页为1KB,内存为16KB。
假定某时刻一用户页表中已调入内存的页面的页号和物理块号的对照表如下:
计算逻辑地址0A5C(H)所对应的物理地址。
解:
页式存储管理的逻辑地址分为两部分:页号和页内地址。
由已知条件“用户编程空间共32个页面”,可知页号部分占5位;由“每页为1KB”,1K=210,可知内页地址占10位。
由“内存为16KB”,可知有16块,块号为4位。
逻辑地址0A5C(H)所对应的二进制表示形式是:000 1010 0101 1100 ,根据上面的分析,下划线部分为页内地址,编码“000 10”为页号,表示该逻辑地址对应的页号为2。
查页表,得到物理块号是4(十进制),即物理块地址为:01 00 ,拼接块内地址10 0101 1100,得01 0010 0101 1100,即125C(H)。
(12)考虑下述页面走向:
1,2,3,4,2,1,5,6,2,1,2,3,7,6,3,2,1,2,3,6
当内存块数量分别为3,5时,试问LRU、FIFO、OPT这三种置换算法的缺页次数各是多少?(注意,所有内存块最初都是空的,所以,凡第一次用到的页面都产生一次缺页。
)
(13)考虑下面存储访问序列,该程序大小为460字:
10,11,104,170,73,309,185,245,246,434,458,364
设页面大小是100字,请给出该访问序列的页面走向。
又设该程序基本可用内存是200字,采用FIFO置换算法,求出其缺页率。
如果采用LRU置换算法,缺页率是多少?如果采用最优淘汰算法,其缺页率又是多少?(注:缺页率=缺页次数/访问页面总数)
解:
根据已知条件页面大小是100字,将页面访问序列简化为:
0,0,1,1,0,3,1,2,2,4,4,3
又因为该程序基本可用内存是200字,可知内存块数为2。
采用先进先出置换算法(FIFO),总共有6次缺页,缺页率为6/12=50%,具体算法如下:
页面走向0 0 1 1 0 3 1 2 2 4 4 3
块1
块2
缺页
采用最近最少使用置换算法(LRU),总共有6次缺页,缺页率为6/12=50%,具体算法如下:页面走向0 0 1 1 0 3 1 2 2 4 4 3
块1
块2
缺页
采用最佳置换算法(OPT),总共有5次缺页,缺页率为5/12=41.6%,具体算法如下:页面走向0 0 1 1 0 3 1 2 2 4 4 3
块1
块2
缺页。