《操作系统》第4章教材习题解答
- 格式:doc
- 大小:74.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) 按教科书的写法。
当生产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):这段代码可以完成哲学家进餐问题。
P152第四章作业5. 运行时动态链接方式,是装入时链接方式的一种改进,将对某些模块的链接推迟到程序执行时才进行。
亦即,在执行过程中,当发现一个被调用模块尚未装入内存时,立即由 OS 去找到该模块,并将之装入内存,将其链接到调用者模块上。
优点:凡是在执行过程中未被用到的目标模块,都不会被调入内存和被链接到装入模块上,这样不仅能加快程序的装入过程,而且可节省大量的内存空间。
7.程序在运行过程中经常要在内存中移动位置,为了保证这些被移动了的程序还能正常执行,必须对程序和数据的地址加以修改,即重定位。
引入重定位的目的就是为了满足程序的这种需要。
要在不影响指令执行速度的同时实现地址变换,必须有硬件地址变换机构的支持,即须在系统中增设一个重定位寄存器,用它来存放程序在内存中的起始地址。
程序在执行时,真正访问的内存地址是相对地址与重定位寄存器中的地址相加而形成的。
13.在多道环境下,一方面,在内存中的某些进程由于某事件尚未发生而被阻塞,但它却占用了大量的内存空间,甚至有时可能出现在内存中所有进程都被阻塞而迫使 CPU 停止下来等待的情况;另一方面,却又有着许多作业在外存上等待,因无内存而不能进入内存运行的情况。
显然这对系统资源是一种严重的浪费,且使系统吞吐量下降。
为了解决这一问题,在操作系统中引入了对换(也称交换)技术。
可以将整个进程换入、换出,也可以将进程的一部分(页、段)换入、换出。
前者主要用于缓解目前系统中内存的不足,后者主要用于实现虚拟存储。
15.系统应具备三方面功能:对换空间管理,进程换出,进程换入。
24.在段页式系统中,为了便于实现地址变换,须配置一个段表寄存器,其中存放段表始址和段长TL。
进行地址变换时,首先利用段号 S,将它与段长TL 进行比较。
若 STL,表示未越界,利用段表始址和段号来求出该段所对应的段表项在段表中的位置,从中得到该段的页表始址,并利用逻辑地址中的段内页号 P 来获得对应页的页表项位置,从中读出该页所在的物理块号 b,再利用块号 b 和页内地址来构成物理地址。
第四章存储器管理一、单项选择题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个。
第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
缺页。