第五章 存储管理
思考与练习题
1. 存储管理的基本任务是为多道程序的并发执行提供良好的存储环境,这包括哪些方
面?.
2. 页式存储管理系统是否产生碎片?如何应对此现象?
3. 在页式存储管理系统中页表的功能是什么?当系统的地址空间很大时会给页表的设计
带来哪些新的问题?
4. 什么是动态链接?用哪种存储管理方案可以实现动态链接?
5. 某进程的大小为25F3H字节,被分配到内存的3A6BH字节开始的地址。但进程运行时,
若使用上、下界寄存器,寄存器的值是多少?如何进行存储保护?若使用地址、限长寄存器,寄存器的值是多少?如何进行存储保护?
6. 在系统中采用可变分区存储管理,操作系统占用低地址部分的126KB,用户区的大小是
386KB,采用空闲分区表管理空闲分区。若分配时从高地址开始,对于下述的作业申请序列:作业1申请80KB;作业2申请56KB;作业3申请120KB;作业1完成;作业3完成;作业4申请156KB;作业5申请80KB。使用首次适应法处理上述作业,并回答以下问题。
(1) 画出作业1、2、3进入内存后,内存的分布情况。 (2) 画出作业1、3完成后,内存的分布情况。
(3) 画出作业4、5进入内存后,内存的分布情况。
7. 某系统采用页式存储管理策略,某进程的逻辑地址空间为32页,页的大小为2KB,物
理地址空间的大小是4MB。
8. 某页式存储管理系统,内存的大小为64KB,被分为16块,块号为0、1、2、??、15。
设某进程有4页,其页号为0、1、2、3,被分别装入内存的2、4、7、5,问: (1) 该进程的大小是多少字节?
(2) 写出该进程每一页在内存的起始地址。 (3) 逻辑地址4146对应的物理地址是多少? 9. 某段式存储管理系统的段表如图所示。
段号 段长 段始址 0 15KB 40KB 1 2 8KB 10KB 80KB 100KB 请将逻辑地址[0,137]、[1,9000]、[2,3600]、[3,230]转换成物理地址。
答案
1.答:存储管理的基本任务是为多道程序的并发执行提供良好的存储器环境,它包括以下几个方面。
(1)能让没到程序“各得其所”,并在不受干扰的环境中运行时,还可以使用户从存储空间的分配、保护等事物中解脱出来。
(2)向用户提供更大的存储空间,使更多的程序同时投入运行或是更大的程序能在小的内存中运行。
(3)为用户对信息的访问、保护、共享以及程序的动态链接、动态增长提供方便。 (4)能使存储器有较高的利用率。
2. 答:页式存储管理系统产生的碎片,称为内碎片,它是指一个进程的最后一页没有沾满一个存储块而被浪费的存储空间。减少内碎片的办法是减少页的大小。
3. 答:页式存储管理系统中,允许将进程的每一页离散地存储在内出的任何一个物理页面上,为保证进程的正常运行,系统建立了页表,记录了进城每一页被分配在内存的物理号。也表的功能是实现从页号到物理块的地址映射。
当系统地址很大时,页表也会变得非常大,它将占有相当大的内存空间。
4. 答:动态链接是指进程在运行时,只将进程对应的主程序段装入内存,并与主程序段链接上。通常一个大的程序是由一个主程序和若干个子陈旭以及一些数据段组成。而段式存储管理方案中的段就是按用户的逻辑段自然形成的,因此可实现动态链接。
5. 答:
(1)若使用上下界寄存器,上界寄存器的值是3A6BH,下界寄存器的值是3A6BH+25F3H=605EH,当访问内存的地址大于605EH、小于3A6BH时产生越界中断。 (2) 若使用地址、限长寄存器,地址寄存器的值是3A6BH,限长寄存器的值是25F3H,当访问内存的地址小于3A6BH,超过3A6BH+25F3H=605EH时产生越界中断。
7. (1)写出逻辑地址的格式。
答:进程的逻辑地址空间为32页,故逻辑地址中的页号需要5位(二进制),由于每
页的大小为2KB,因此页内位移需用11位(二进制)表示,这样,逻辑地址格式如图所示。 15 11 10 0 页号 页内位移 (2)该进程的页表有多少项?每项至少占多少位?
答:因为进程的逻辑地址空间为32页,因此该进程的页表项有32项。页表中应存储
每页的块号。因为物理地址空间大小是4MB,4MB的物理地址空间内分成4MB/2KB=2K个块,因此块号部分需要11位(二进制),所以页表中每项占11位。
8. (1)该进程的大小是多少字节?
答:内存的大小为64位,被分为16块,所以块的大小是64KB/16=4KB。因为块的大小与页面的大小相等,所以页的大小是4KB。该进程的大小是4X4KB=16KB.
(2)写出该进程每一页在内存的起始地址。
答:因为进程页号为0、1、2、3,被分别装入内存的2、4、7、5。 第0页在内存的起始地址是:2X4KB=8KB
第1页在内存的起始地址是:4X4KB=16KB 第2页在内存的起始地址是:7X4KB=28KB 第3页在内存的起始地址是:5X4KB=20KB (3)逻辑地址4146对应的物理地址是多少?
答:逻辑地址4146对应的物理地址:4146/4096=1,??,50。逻辑地址4146对应的页号为1,页内位移为50。查找页表,得知页号为1的存储块号为4,所以逻辑地址4146对应的物理跨地址是:4X4096+50=16434。 9.
答:(1)对于逻辑地址[0,137],段号为0,段内位移为137。查段表的0项得到该段的段
始址为40KB段长为15KB。由于段号0小于进程的总段数,故段号合法;段内位移137小于段长15KB,故段内地址合法。因此可得到物理地址为:40KB+137B=40960B+137B=41097B。
(2)对于逻辑地址[1,9000],段号为1,段内位移为9000。查段表的1项得到该段的
段始址为80KB,段长为8KB。由于段号1小于进程的总数
(3)对于逻辑地址[2,3600],段号为2,段内位移为3600。差段表的2项得到该段的
段始址为100KB,段长为10KB,故段内地址合法。因此可得到物理地址为:100KB+3600B=102400B+3600B=106000B。
第六章 虚拟存储管理
思考与练习题
1. 试说明缺页与一般中段的主要区别。
2. 局布置换和全局置换有何区别?在多道程序系统中建议使用哪一种? 3. 虚拟存储的特征是什么?虚拟存储器的容量受到哪两个方面的限制?
4. 已知页面走向是1、2、1、3、1、2、4、2、1、3、4,且进程开始执行时,内存中没有
页面,若给该进程分配2个物理块,当采用以下算法时的缺页率是多少? (1) 先进先出置换算法。
(2) 假如有一种页面置换算法,它总是淘汰刚使用过的页面。
5. 在请求页式存储管理系统中,使用先进先出(FIFO)页面置换算法,会产生一种奇怪的
现象:分配给进程的页数越多,进程执行时的却也次数反而越高。试举例说明这一现象。 6. 某请求页式系统中,页的大小为100字,一个程序的大小为1200字,可能的访问序列
如下:10、205、110、40、314、432、320、225、80、130、272、420、128,若系统采用LRU置换算法,当分配给该进程的物理块数为3时,给出进程驻留的各个页面的变化情况、页面淘汰情况及缺页次数。
7. 在一个采用局部置换策略的请求页式系统中,分配中给进程的物理块数为4,其中存放
的4个页面的情况如表。
当发生缺页时,分别采用下列页面置换算法时,讲置换哪一页?并解释原因。 进程4个页面的情况 页号 存储块号 加载时间 访问时间 访问位 修改位 0 2 30 160 0 1 1 1 160 157 0 0 2 0 10 162 1 0 3 3 220 165 1 1 OPT(最佳)置换算法;
FIFO(先进先出)置换算法; LRU(最近最少使用)置换算法; Clock置换算法。
某虚拟存储器的用户空间有32个页面,每页1KB,内存大小为16KB,假设某时刻系统为用户的第0、1、2、3页分配得物理块号是5、10、4、7,而该用户进程的长度是6页。试将以下16进制的虚拟地址转换成物理地址。
(1)0X0A5C (2)0X103C (3)0X257B (4)0X8A4C
8. 在请求页式存储管理系统中,页面大小是100字节,有一个50X50的数组按行连续存放,
每个整数占2字节。将数组初始化的程序如下 程序A: int i,j;
int a[50][50];