文档库 最新最全的文档下载
当前位置:文档库 › 5、存储管理

5、存储管理

5、存储管理
5、存储管理

一、选择题

1.存储器管理的主要功能是内存分配、地址映射、内存保护和( )。

A.内存扩充 B.外存扩充 C内存和外存扩充 D.地址保护

2.把逻辑地址转变为内存的物理地址的过程称作( )

A.编译 B.连接 C.运行 D.重定位

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.是为了协调CPU与内存之间的速度 D.是为了提高外设的处理速度

9.可变式分区管理的分配策略中,首次适应算法是按照 ( ) 顺序排列空闲区。

A.起始地址递减 B.起始地址任意

C.起始地址递增 D.分区大小递增

10.可变式分区又称为动态分区,它是在系统运行过程中,( )时动态建立的。

A.在作业装入 B.在作业创建 C.在作业完成 D.在作业未装入

11.在可变分区存储管理中,将空闲区按照长度递增的顺序排列的分配算法是( )

A.首次适应算法 B.最佳适应算法 C.最坏适应算法 D.循环首次适应算法 12.可重定位分区分配中的碎片是( )

A.磁盘的一小部分 B.外存的一小部分

C.内存中容量小、无法利用的小分区 D.内存中的小分区

13.在分页存储管理系统中,从页号到物理块号的地址映射是通过( )实现的。

A.段表 B.页表 C.PCB D.JCB

14.请求分页存储管理中,若把页面尺寸增加一倍,在程序顺序执行时,则一般缺页中断次数会( )。

A.增加 B.减少 C.不变 D.可能增加也可能减少

15.页表的作用是实现从页号到物理块号的( )。

A.逻辑映射 B.物理映射 C.地址映射 D.逻辑地址映射

16.虚拟存储器的基本特征是:虚拟扩充、部分装入、离散分配和( )

A.虚拟保护 B.虚拟装入 C.一次对换 D.多次对换

17.虚拟存储管理策略可以( )。

A.扩大物理内存容量 B.扩大物理外存容量

C.扩大逻辑内存容量 D.扩大逻辑外存容量

18.虚拟存储器受到的限制有外存的容量和( )。

A.指令中表示地址的字长 B.内存的容量 C.硬件的好坏 D.以上的观点都对 19.在页式存储管理中,每当CPU形成一个有效地址时,要查页表,这—工作是由( )实现

的。

A.硬件自动 B.操作系统 C.查表程序 D.存取控制程序

20.具有虚拟存储功能的管理方法是( )

A.可变分区存储管理 B.请求分页存储管理

C.段式存储管理 D.段页式存储管理

21.采用( )不会产生内部碎片

A.分页存储管理 B.分段存储管理 C.固定分区存储管理 D.段页式存储管理 22.最佳适应算法的空闲区是( )。

A.按大小递增顺序排列的 B.按大小顺序递减排列的

C.按地址由小到大排列的 D.按地址由大到小排列的

二、填空题

1.在采用请求分页式存储管理的系统中,地址变换过程可能会因为 、 和 等原因而产生中断。

2.存储管理应实现的功能是:主存空间的分配与保护、 、主存的共享和 。 3.某虚拟存储器的用户空间共有32个页面,每页1KB,主存16KB。假定某时刻系统为用户的第0、1、2、3页分别分配的物理块号分别为5、10、4、7,那么虚地址0A5CH对应的物理地址是 。

4.在分区分配算法中,首次适应算法倾向于优先利用内存中 部分的空闲分区,从而保留了 部分的大空闲区。

5.动态重定位是在目标程序执行过程中,在CPU访问内存之前,由 来完成将指令或

数据的相对地址转换为物理地址的过程。

6. 把主存储器分成大小相等的许多存储块,每个存储块称为一块,与此对应,程序的逻辑地址也分成大小相同的页,页的大小与块的大小相等。

7. 必须为每个作业建立一张段表,且对每一段都对应有一张页表。

8.整体对换技术通常以 为单位。

9.置换算法是在主存中没有 时被调用的,它的目的是选出一个被 的页面,如果内存中有足够的 存放所调入的页,则不必使用 。

11.系统中刚刚被淘汰的页面在不久之后又要访问,以致整个页面调度非常频繁,辅存一直保持忙的状态,而处理机的有效执行速度很慢,多数进程处于阻塞状态,这种情况叫做 。

三、判断题

1.即使在多道程序环境下,用户也能设计用内存物理地址直接访问内存的程序。( ) 2.在可变分区存储管理方法中,最佳适应法的效果必定优于首次适应法。 ( )

3.用可变分区法不能完全消除内部碎片。 ( )

4.对于静态重定位方式,作业无法在主存中浮动。 ( )

5.页式存储管理系统不利于共享和保护。 ( )

6.段式存储管理系统有利于共享和保护。 ( )

7.在现代计算机中,计算机程序、通道程序使用的都是逻辑的地址,因此,必须先进行地址转换才能找到正确的内存地址。 ( )

8.为了减少内部的碎片,页应越小越好。 ( )

9.采用页式存储管理时,要求逻辑地址与物理地址都是连续的。 ( )

10.内存越大,进程运行就越快。 ( )

11.在页式虚存系统中,为了提高内存利用率,允许用户使用不同大小的页面。( ) 12.在虚拟存储系统中,操作系统为用户提供了巨大的存储空间。因此,用户地址空间的大小可以不受任何限制。 ( )

13.在支持虚拟地址空间的操作系统环境下,CPU能运行比该计算机主存容量还大的程序。( )

14.在页式虚存系统中,驻留集增大,则页故障数肯定会减少。 ( )

15.在虚拟页式存储系统中,LRU置换策略总优于FIFO策略。 ( )

16.虚拟存储器不是物理上扩大内存空间,而是逻辑上扩充了内存容量。 ( )

17.虚拟存储空间实际上就是全部的辅存空间。( )

18.在请求分页系统中,为了实现请求一页的功能,在页表中必须增加2个数据项,它们是中断位和访问位。

四、解析题

1.存储管理的主要研究内容是什么?

2.什么是地址重定位?有哪几种地址重定位方法。

3.某系统采用页式(Paging)存储管理策略,拥有逻辑空间32页,每页2KB物理空间1MB。

(1)写出逻辑地址格式;

(2)进程的页表有多少项?

4.在一个分区存储管理系统中,按地址从低到高排列的空闲分区的长度分别是:10KB、4KB、20KB、18KB、7KB、9KB、12KB、15KB。对于下列顺序的段请求:12KB、10KB、15KB、18KB 分别使用首次适应法和最佳适应法,试说明空间的使用情况。

5.某操作系统采用可变分区分配存储管理方法,系统占用低地址部分的126KB。用户区大小为386KB,且用户区起始地址为126KB,用空闲分区表管理空闲分区。若分配时采用分配空闲区高地址部分的方案,且初始时用户区的386KB空间空闲,对下述申请序列;

作业1申请80KB,作业2申请56KB,作业3申请120KB,作业1完成并释放80KB,作业3完成并释放120KB,作业4申请156KB,作业5申请80KB。

试用首次适应算法处理上述作业序列,并回答下列问题:

(1)画出作业1、2、3进入主存后,主存的分布情况:

(2)画出作业1、3完成后,主存的分布情况;

(3)画出作业4、5进入系统后的内存分布情况。

6.什么是碎片?为解决碎片问题可以采用哪些存储管理技术?每种存储管理技术所需要的硬件和软件支持是什么?

7.请求分页存储管理的主要特点是什么?实现该方案的关键技术是什么?

8.考虑一个由8个页面、每页1024字节组成的存储空间,把它映射到容量为32个物理块的存储器中,试问逻辑地址和物理地址分别是多少位?为什么?

9.假定某页式存储管理系统中,主存为128KB,分成32块,块号为0、1、2、3、 (31)

某作业有5块,其页号为0、1、2、3、4,被分别装入主存的3、8、4、6、9块中。有一逻辑地址为[3,70]。试求出相应的物理地址(其中方括号中的第一个元素为页号,第二个元素为页内地址,按十进制计算),并画图说明地址变换过程。

10.在某段式存储管理系统中,有一作业共4段,段号分别为0、1、2、3,段表如下表所示。 试计算逻辑地址[0,45],[1,50],[2,60],[3,90]相应的主存地址。当无法进行地址转换时,应说明产生何种中断(其中方括号中的第一个元素为页号,第二个元素为页内地址,按十进制计算)。

段号 段长 主存起始地址 状态

0 500 1500 0

1 400 2600 0

2 120 1

3 85 380 0

11.试叙述页式系统的地址变换步骤(带快表)。

12.某请求页式存储管理,允许用户编程空间为32个页面(每页1KB),主存为16KB。如有一个用户程序有10页长,且某时刻该用户页面映射表如下表所示。如果程序执行时遇到以下两个虚地址:0AC5H、1AC5H,试计算它们对应的物理地址。

虚页号 物理块号

0 1 2 3

8 7 4 10

13.某系统采用请求分页存储管理,内存块大小为1024字节,程序字长16位,地址寄存器长18位。有一程序空间的大小是5页,页表如下表所示,试计算程序字0455H、1386H 的物理地址。

页号 块号 状态

0 1AH l

1 16H 1

2 0

3 0

4 0

14.为实现分页式虚拟存储,页表中至少应含有哪些内容?

15.试给出段页式系统的地址变换过程(带有联想存储器)。

16.一台计算机有4个页框,装入时间、上次引用时间和它们的R(读)与M(修改)位见下表(时间单位:滴答),请问NRU、FIFO、LRU和第二次机会算法将替换哪一页?

页 装入时间 上次引用时间R M

0 1 2 3 126

230

120

160

279

260

272

280

1

1

1

1

17.在一个采用页式虚拟存储管理的系统中,有一用户作业,它依次要访问的字地址序列是:115,228,120,88,446,102,321,432,260,167,若该作业的第0页已经装入主存,现分配给该作业的主存共300字,页的大小为100字,请回答下列问题:

(1)按FIFO调度算法将产生几次缺页中断,写出依次淘汰的页号序列及缺页中断率。

(2)按LRU调度算法将产生几次缺页中断,写出依次淘汰的页号序列及缺页中断率。 18.考虑如下访问序列:0,1,0,3,1,2,4,3。驻留集大小为两个页面,分别求出采用LRU和OPT替换算法控制上述访问串的故障数和页故障率。

19.对下述页面走向:7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1当内存块数量为3时,试问LRU、FIFO、OPT三种置换算法的缺页次数各是多少?

(注意,内存块最初都是空的,凡第一次用到的页面都产生一次缺页。)

20.考虑一个460字的程序的下述内存访问序列:10,11,104,170,73,309,185,245,246,434,458,364。

(1)假定页面大小为100字,试给出页面走向访问串。例如,此题前5个页面走向访问

串为0,0,1,1,0,……。

(2)假定内存中有200个字可供程序使用,试问采用FIFO置换的缺页次数是多少?

(3)若采用LRU置换算法,缺页次数是多少?

(4)若采用OPT置换算法,缺页次数是多少?

21.(1)假设某计算机系统NONAME共有4页物理地址空间(4Frames),其操作系统的虚拟地址管理采用“最近最少使用”页面置换算法(LRU)。当一进程依次访问下列虚拟地址空间的页面时(又称引用串,ReferenceString),请计算其缺页(PageDefault)次数:

1,2,3,4,5,3,4,1,6,7,8,7,8,9,7,8,9,5,4,5,4,2

(2)LRU需要一定的硬件支持(如计数器、堆栈等)。假设NONAME为每页内存配备了一个

标志位(DirtyBit),请设计一种变形的LRU算法,并且说明:

1)标志位的初始值; 2)何时修改标志位;

3)如何选择应换出的页面;

4)利用此变形的LRU算法,计算对上述引用串的缺页次数。

22.设某作业占有7个页面,如果在主存中只允许装入4个工作页面(即工作集为4),作业运行时,实际访问页面的顺序是1,2,3,6,4,7,3,2,1,4,7,5,6,5,2,1。

试用FIFO与LRU页面调度算法,列出各自的页面淘汰顺序和缺页中断次数,以及最后留驻主存4页的顺序(假设开始的4个页面已装入主存)。

23.在某请求分页管理系统中,一个作业共5页,作业执行时依次访问如下页面: 1,4,3,1,2,5,1,4,2,1,4,5,若分配给该作业的主存块数为3,分别采用FIFO、LRU页面置换算法,试求出缺页中断的次数及缺页率。

24.考虑下面的访问串:1,2,3,4,2,1,5,6,2,1,2,3,7,6,3,2,1,2,3,6。假定有4、5、6个页块,应用下面的页面替换算法,计算会出现多少次缺页中断?(注意:所给定的页块初始均为空,因此,首次访问一页时就会发生缺页中断)。

(1)LRU(最近最久未使用算法);(2)FIFO(先进先出算法);(3)OPT(最优算法)。 25.某请求分页存储管理系统使用一级页表,假设页表总在主存中。

(1)如果一次存储访问需要200ns,那么访问一个数据需要多长时间?

(2)现在增加一个快表,在命中或失误时均有20ns的开销,假设快表的命中率为85%,

那么访问一个数据的时间为多少?

26.对于一个利用快表且页表存于内存的分页系统,假定CPU一次访存时间为lus,访问快表的时间可以忽略不计。

(1)如果85%的地址映射可以直接通过快表完成(即命中率为85%),那么进程完成一次

内存读/写的平均有效时间是多少?

(2)若快表的命中率只有50%,那么进程完成一次内存读/写的平均有效时间是多少?

(3)快表命中率对平均有效访问时间有何影响?

27.虚拟存储器的特征是什么?虚拟存储器的容量主要受到哪两方面的限制?

练习题参考答案

一、选择题

1.A 2.D 3.B 4.C 5.A 6.D 7.A 8.A

9.C 10.A 11.B 12. C 13.B 14. B 15. C 16.D 17.C 18.A 19.A 20. B 21.B 22. A

二、填空题

1.越界,缺页,访问权限错误 2.主存空间地址重定位,主存的扩充

3. 125CH 4.中、低地址:高地址。

5.硬件地址映射机构或重定位寄存器

6.分页存储管理 7.段页式存储管理

8.进程 9.空闲块,淘汰,空闲块, 置换算法

10.抖动

三、判断题

1. X

2.X

3.√

4.√

5.√

6.√

7.√

8.X

9.X 10.X 11.X 12.X 13.√ 14.X 15.X 16.√17.X 18.X

实验五 存储管理(二)

实验五存储管理(二) 学号:姓名:班级: 实验目的: 1. 了解虚拟存储器。 2. 掌握分页存储管理的原理,熟悉段式存储和段页式存储管理。 3. 掌握常用的页面置换算法。 实验内容: 一、选择: 1.可变分区方式常用的主存分配算法中,()总是找到能满足作业要求的最大空闲区分配 A、最佳适应算法 B、首次适应算法 C、最坏适应算法 D、循环首次适应算法 2.下列()存储方式不能实现虚拟存储器 A、分区 B、页式 C、段式 D、段页式 3.操作系统处理缺页中断时,选择一种好的调度算法对主存和辅存中的信息进行高效调度尽可能地避免() A、碎片 B、CPU空闲 C、多重中断 D、抖动 4.分页式存储管理的主要特点是() A、要求处理缺页中断 B、要求扩充主存容量 C、不要求作业装入到主存的连续区域 D、不要求作业全部同时装人主存 5.LRU页面调度算法淘汰()的页 A、最近最少使用 B、最近最久未使用 C、最先进入主存 D、将来最久使用 6.分区管理要求对每一个作业都分配()的主存单元 A、地址连续 B、若干地址不连续的 C、若干连续的页 D、若干不连续的帧 7.在存储管理中,采用覆盖与交换技术的目的是()

A、节省主存空间 B、物理上扩充主存容量 C、提高CPU的效率 D、实现主存共享 8.分页虚拟存储管理中,缺页中断时,欲调度一页进入主存中,内存己无空闲块,如何决定淘汰已在主存的块时,()的选择是很重要的 A、地址变换 B、页面调度算法 C、对换方式 D、覆盖技术 9.()存储管理兼顾了段式在逻辑上清晰和页式在存储管理上方便的优点 A、分段 B、分页 C、可变分区方式 D、段页式 10.在固定分区分配中,每个分区的大小是() A、随作业长度变化 B、相同 C、可以不同但预先固定 D、可以不同但根据作业长度固定 11.下述()页面置换算法会产生Belady现象 A、最佳置换算法 B、先进先出算法 C、LRU算法 D、Clock算法 12.在一个分页式存储管理系统中,页表的内容为: 若页的大小为4KB,则地址转换机构将相对地址0转换成的物理地址是()。 A.8192 B.4096 C.2048 D.1024 13.采用先进先出页面淘汰算法的系统中,一进程在内存占3块(开始为空),页面访问序列为1、2、3、4、1、2、5、1、2、3、4、5、6。运行时会产生()次缺页中断。 A.7 B.8 C.9 D.10 二、填空: 1.在分页式存储管理的页表里,主要应该包含和两个信息。 2.在请求分页式存储管理中,页面淘汰是由于引起的。

实验五 动态分区存储管理

实验五动态分区存储管理 一、实验目的 深入了解采用动态分区存储管理方式的内存分配回收的实现。通过编写和调试存储管理的模拟程序以加深对存储管理方案的理解,熟悉动态分区存储管理的内存分配和回收。 二、实验内容 编写程序完成动态分区存储管理方式的内存分配回收。 具体包括:确定内存空间分配表; 采用最优适应算法完成内存空间的分配和回收; 编写主函数对所做工作进行测试。 三、设计思路 整体思路: 动态分区管理方式将内存除操作系统占用区域外的空间看成一个大的空闲区。当作业要求装入内存时,根据作业需要内存空间的大小查询内存中的各个空闲区,当从内存空间中找到一个大于或等于该作业大小的内存空闲区时,选择其中一个空闲区,按作业需求量划出一个分区装人该作业,作业执行完后,其所占的内存分区被收回,成为一个空闲区。如果该空闲区的相邻分区也是空闲区,则需要将相邻空闲区合并成一个空闲区。 设计所采用的算法: 采用最优适应算法,每次为作业分配内存时,总是把既能满足要求、又是最小的空闲分区分配给作业。但最优适应算法容易出现找到的一个分区可能只比作业所需求的长度略大一点的情行,这时,空闲区分割后剩下的空闲区就很小以致很难再使用,降低了内存的使用率。为解决此问题,设定一个限值minsize,如果空闲区的大小减去作业需求长度得到的值小于等于minsize,不再将空闲区分成己分分区和空闲区两部分,而是将整个空闲区都分配给作业。 内存分配与回收所使用的结构体: 为便于对内存的分配和回收,建立两张表记录内存的使用情况。一张为记录作业占用分 区的“内存分配表”,内容包括分区起始地址、长度、作业名/标志(为0时作为标志位表示空栏目);一张为记录空闲区的“空闲分区表”,内容包括分区起始地址、长度、标志(0表空栏目,1表未分配)。两张表都采用顺序表形式。

操作系统第五章存储管理测试题

存储管理测试题 一、单项选择题,在四个备选答案中选一个合适的答案 1.属于内存连续分配方式的是(A )。 A.固定分区分配方式B.分段存储管理方式 C.分页存储管理方式D.段页式存储管理方式 2.为进程分配连续内存的是(C )。 A.分页存储管理B.分段存储管理 C.可变分区管理D.段页式存储管理 3.可变分区管理中的(B )算法,空闲区按其大小递增次序组成链。 A.首次适应B.最佳适应C.下次首次适应D.最坏适应 4.关于分段存储管理说法错误的是(C )。 A.便于编程B.便于分段共享C.便于内存分配D.能动态链接 5.在下面的页面置换算法中,(D)是实际上难以实现的 A.先进先出置换算法B.最近最久未使用置换算法 C.clock 置换算法D.最佳置换算法 6.以下不是存储管理处理的功能有(D)。 A.为每个程序安排内存空间B.保护运行程序不受干扰 C.将运行中程序的地址转换成物理地址D.决定哪个进程的程序和数据切换到内存中 二、填空题 1.在分区存储管理中,存储保护有两种方法:界限寄存器法和__存储保护键法_________。2.在分页存储管理方式中,地址结构有页号P和位移量W组成,地址转换时页号P与页表长度L进行比较,如果___ P≥L ________,则产生越界中断。 3.分区存储管理中存在内零头的是___固定分区________分配方式。 4.请求分页存储管理方式中,调入页面的时机可采用两种策略,预先调页和___请求式调页________。 5.动态地址重定位是在___程序的执行________过程中完成地址变换的。 6.一个用户程序中含有代码段A、代码段B和数据段,当该程序在段页式管理机构中运行时,系统至少为该用户程序建立________1___个段表。 三、判断改错题 判断下列各题正误,正者打“√”,误者打“×”,并将具体修改内容写在该题的下面,但有下划线部分不能改。 1.页面最佳置换算法是一种性能最好,且容易实现的算法。 [答案]:×,将“且容易实现”改成“但实际上不能实现”。 2.采用静态重定位方式装入内存的程序可以在内存中被移动。 [答案]:×,将“可以”改成“不可以”。 3.可变式分区分配方式为某作业分配内存时,分配给的区域大小往往大于该作业的大小。[答案]:×,将“往往大于”改成“等于”。 4.请求分页系统中的页表表项中修改位,表示该页调入内存后是否允许修改。 [答案]:×,将“允许修改”改成“已经修改”。 四、简答题 1.什么是动态重定位?它有什么好处? [答案]:动态重定位是指在程序执行过程中进行的地址重定位,即可使装配模块不加任何修

实验操作系统存储管理实验报告

实验四操作系统存储管理实验报告 一、实验目的 存储管理的主要功能之一是合理地分配空间。请求页式管理是一种常用的虚拟存储管理技术。 本实验的目的是通过请求页式管理中页面置换算法模拟设计,了解虚拟存储技术的特点,掌握请求页式存储管理的页面置换算法。 二、实验内容 (1)通过计算不同算法的命中率比较算法的优劣。同时也考虑了用户内存容量对命中率的影响。 页面失效次数为每次访问相应指令时,该指令所对应的页不在内存中的次数。 在本实验中,假定页面大小为1k,用户虚存容量为32k,用户内存容量为4页到32页。 (2)produce_addstream通过随机数产生一个指令序列,共320条指令。 A、指令的地址按下述原则生成: 1)50%的指令是顺序执行的 2)25%的指令是均匀分布在前地址部分 3)25%的指令是均匀分布在后地址部分 B、具体的实施方法是: 1)在[0,319]的指令地址之间随机选取一起点m; 2)顺序执行一条指令,即执行地址为m+1的指令; 3)在前地址[0,m+1]中随机选取一条指令并执行,该指令的地址为m’; 4)顺序执行一条指令,地址为m’+1的指令 5)在后地址[m’+2,319]中随机选取一条指令并执行; 6)重复上述步骤1)~5),直到执行320次指令 C、将指令序列变换称为页地址流

在用户虚存中,按每k存放10条指令排列虚存地址,即320条指令在虚存中 的存放方式为: 第0条~第9条指令为第0页<对应虚存地址为[0,9]); 第10条~第19条指令为第1页<对应虚存地址为[10,19]); 。。。。。。 第310条~第319条指令为第31页<对应虚存地址为[310,319]); 按以上方式,用户指令可组成32页。 (3)计算并输出下属算法在不同内存容量下的命中率。 1)先进先出的算法

实验五动态分区存储管理模拟

实验五动态分区存储管理模拟 一、实验目的 深入了解可变分区存储管理式主存分配回收的实现。 二、实验预备知识 可变分区存储管理式不预先将主存划分成几个区域,而把主存除操作系统占用区域外的空间看作一个大的空闲区。当进程要求装入主存时,根据进程需要主存空间的大小查询主存各个空闲区,当从主存空间找到一个大于或等于该进程大小要求的主存空闲区时,选择其中一个空闲区,按进程需求量划出一个分区装入该进程。进程执行完后,它所占的主存分区被回收,成为一个空闲区。如果该空闲区的相邻分区也是空闲区,则需要将相邻空闲区合并成一个空闲区。 这个实验主要需要考虑三个问题: (1)设计记录主存使用情况的数据表格,用来记录空闲区和进程占用的区域; (2)在设计的数据表格基础上设计主存分配算法; (3)在设计的数据表格基础上设计主存回收算法。 首先,考虑第一个问题:设计记录主存使用情况的数据表格,用来记录空闲区和进程占用的区域。 由于可变分区的大小是由进程需求量决定的,故分区的长度是预先不固定的,且分区的个数也随主存分配和回收而变动。总之,所有分区情况随时可能发生变化,数据表格的设计必须和这个特点相适应。由于分区长度不同,因此设计的表格应该包括分区在主存中的起始地址和长度。由于分配时空闲区有时会变成两个分区:空闲区和已分分区,回收主存分区时,可能会合并空闲分区,这样如果整个主存采用一表格记录已分分区和空闲区,就会使表格操作繁琐。主存分配

时查找空闲区进行分配,然后填写已分分区表,主要操作在空闲区;某个进程执行完成后,将该分区变成空闲区,并将其与相邻空闲区合并,主要操作也在空闲区。由此可见,主存分配和回收主要是对空闲区的操作。 这样,为了便于对主存空间的分配和回收,就建立两分区表记录主存使用情况,一表格记录进程占用分区的“已分分区表”;一是记录空闲区的“空闲区表”。这两表的实现法一般有两种,一种是链表形式,一种是顺序表形式。在实验中,采用顺序表形式,用数组模拟。由于顺序表的长度必须提前固定,所以无论是“已分分区表”还是“空闲区表”都必须事先确定长度。它们的长度必须是系统可能的最大项数,系统运行过程中才不会出错,因而在多数情况下,无论是“已分分区表”还是“空闲区表”都有空闲栏目。已分分区表中除了分区起始地址、长度外,也至少还要有一项“标志”,如果是空闲栏目,容为“空”,如果为某个进程占用分区的登记项,容为该进程的进程名;空闲区表中除了分区起始地址、长度外,也要有一项“标志”,如果是空闲栏目,容为“空”,如果为某个空闲区的登记项,容为“未分配”。在实际系统中,这两个表格的容可能还要更多,实验中仅仅使用上述必须的数据。为此,“已分分区表”和“空闲区表”在实验中有如下的结构定义: 已分分区表的定义: #define n 10 //假定系统允的进程数量最多为n struct { float address; //已分分区起始地址 float length; //已分分区长度,单位为字节

第五章虚拟存储器附答案

第五章虚拟存储器 一、单项选择, 1.虚拟存储器的最大容量______ 。 *A.为内外存容疑之和 B.由计算机的地址结构决定(((实际容量 C.是任意的 D.由作业的地址空间决定 虚拟存储器是利用程序的局部性原理,一个作业在运行之前,没有必要全部装入内存,而只将 当前要运行那部分页面或段装入便可以运行,英他部分放在外部存储器内,需要时再从外存调 入内存中运行,首先它的容虽必然受到外存容量的限制,其次寻址空间要受到计算机地址总线 宽度限制。最大容量(逻借容量)收内外存容捲之和决左,实际容虽受地址结构决泄。 2.在虚拟存储系统中,若进程在内存中占3块(开始时为空),采用先进先岀页而淘汰算法, 当执行访问页号序列为1、2、3、4. 1. 2. 5. 1, 2, 3、4. 5. 6时,将产生__________________ 次缺 页中断。(开始为空,内存中无页而,3块物理块一开始会发生三次缺页。) A. 7 B. 8 C. 9 D. 10 3.实现虚拟存储器的目的是______ . A.实现存储保护 B.实现程序浮动 C.扩充辅存容量 D.扩充主存容量 4.______________________________________________________ 作业在执行中发生了缺页中断,经操作系统处理后,应让其执行_________________________ 指令.(书本158页, (2)最后一句话) A.被中断的前一条 B.被中断的 C.被中断的后一条 D.启动时的第一条 5.在请求分页存储管理中,若采用FIFO页而淘汰算法,则当分配的页面数增加时,缺页中 断的次数 _______ c(在最后一题做完后再作答)?F黎祸汉选抒:D A.减少 B.增加 C.无影响 D.可能增加也可能减少 6.虚拟存储管理系统的基础是程序的_________ 理论. A.局部性 B.全局性 C.动态性 D.虚拟性 7.下述______ 页而淘汰算法会产生Belady现象. A.先进先出* B.最近最少使用 C.最近不经常使用 D.最佳 所谓Belady现彖是指:在分页式虚拟存储器管理中,发生缺页时的置换算法采用FIFO (先 进先岀)算法时,如果对一个进程未分配它所要求的全部页而,有时就会出现分配的页而数增 多但缺页率反而提高的异常现象。 二.填空题 1.假设某程序的页面访问序列为1. 2. 3. 4. 5. 2. 3. 1. 2. 3.4. 5. 1. 2. 3.4且开始执行时主存中 没有页而,则在分配给该程序的物理块数是3且采用FIFO方式时缺页次数是—13—;在

实验五动态页式存储管理实现过程的模拟

实验五动态页式存储管理实现过程的模拟 一、实验目的与要求 在计算机系统中,为了提高主存利用率,往往把辅助存储器(如磁盘)作为主存储器的扩充,使多道运行的作业的全部逻辑地址空间总和可以超出主存的绝对地址空间。用这种办法扩充的主存储器称为虚拟存储器。通过本实验帮助学生理解在分页式存储管理中怎样实现虚拟存储器;掌握物理内存和虚拟内存的基本概念;掌握重定位的基本概念及其要点,理解逻辑地址与绝对地址;掌握动态页式存储管理的基本原理、地址变换和缺页中断、主存空间的分配及分配算法;掌握常用淘汰算法。 二、实验环境 VC++6.0集成开发环境或java程序开发环境。 三、实验内容 模拟分页式虚拟存储管理中硬件的地址转换和缺页中断,以及选择页面调度算法处理缺页中断。 四、实验原理 1、地址转换 (1)分页式虚拟存储系统是把作业信息的副本存放在磁盘上,当作业被选中时,可把作业的开始几页先装入主存且启动执行。为此,在为作业建立页表时,应说明哪些页已在主存,哪些页尚未装入主存,页表的格式如图10所示: 图10 页表格式 其中,标志----用来表示对应页是否已经装入主存,标志位=1,则表示该页已经在主存,标志位=0,则表示该页尚未装入主存。 主存块号----用来表示已经装入主存的页所占的块号。

在磁盘上的位置----用来指出作业副本的每一页被存放在磁盘上的位置。 (2)作业执行时,指令中的逻辑地址指出了参加运算的操作存放的页号和单元号,硬件的地址转换机构按页号查页表,若该页对应标志为“1”,则表示该页已在主存,这时根据关系式: 绝对地址=块号×块长+单元号 计算出欲访问的主存单元地址。如果块长为2的幂次,则可把块号作为高地址部分,把单元号作为低地址部分,两者拼接而成绝对地址。若访问的页对应标志为“0”,则表示该页不在主存,这时硬件发“缺页中断”信号,有操作系统按该页在磁盘上的位置,把该页信息从磁盘读出装入主存后再重新执行这条指令。 (3)设计一个“地址转换”程序来模拟硬件的地址转换工作。当访问的页在主存时,则形成绝对地址,但不去模拟指令的执行,而用输出转换后的地址来代替一条指令的执行。当访问的页不在主存时,则输出“* 该页页号”,表示产生了一次缺页中断。该模拟程序的算法如图11。 图11 地址转换模拟算法 2、用先进先出(FIFO)页面调度算法处理缺页中断。

操作系统实验五虚拟存储器管理

. 操作系统实验 实验五虚拟存储器管理 学号 1115102015 姓名方茹 班级 11电子A 华侨大学电子工程系

实验五虚拟存储器管理 实验目的 1、理解虚拟存储器概念。 2、掌握分页式存储管理地址转换盒缺页中断。 实验内容与基本要求 1、模拟分页式存储管理中硬件的地址转换和产生缺页中断。 分页式虚拟存储系统是把作业信息的副本存放在磁盘上,当作业被选中时,可把作业的开始几页先装入主存且启动执行。为此,在为作业 建立页表时,应说明哪些页已在主存,哪些页尚未装入主存。作业执行 时,指令中的逻辑地址指出了参加运算的操作存放的页号和单元号,硬 件的地址转换机构按页号查页表,若该页对应标志为“1”,则表示该页 已在主存,这时根据关系式“绝对地址=块号×块长+单元号”计算出欲 访问的主存单元地址。如果块长为2 的幂次,则可把块号作为高地址部 分,把单元号作为低地址部分,两者拼接而成绝对地址。若访问的页对 应标志为“0”,则表示该页不在主存,这时硬件发“缺页中断”信号, 有操作系统按该页在磁盘上的位置,把该页信息从磁盘读出装入主存后 再重新执行这条指令。设计一个“地址转换”程序来模拟硬件的地址转 换工作。当访问的页在主存时,则形成绝对地址,但不去模拟指令的执 行,而用输出转换后的地址来代替一条指令的执行。当访问的页不在主 存时,则输出“* 该页页号”,表示产生了一次缺页中断。 2、用先进先出页面调度算法处理缺页中断。 FIFO 页面调度算法总是淘汰该作业中最先进入主存的那一页,因此可以用一个数组来表示该作业已在主存的页面。假定作业被选中时, 把开始的m 个页面装入主存,则数组的元素可定为m 个。 实验报告内容 1、分页式存储管理和先进先出页面调度算法原理。 分页式存储管理的基本思想是把内存空间分成大小相等、位置固定

第五章虚拟存储器附答案

第五章虚拟存储器 一、单项选择题 1. 虚拟存储器的最大容量___。 *A. 为内外存容量之和 B. 由计算机的地址结构决定(((实际容量 C. 是任意的 D. 由作业的地址空间决定 虚拟存储器是利用程序的局部性原理,一个作业在运行之前,没有必要全部装入内存,而只将当前要运行那部分页面或段装入便可以运行,其他部分放在外部存储器内,需要时再从外存调入内存中运行,首先它的容量必然受到外存容量的限制,其次寻址空间要受到计算机地址总线宽度限制。最大容量(逻辑容量)收内外存容量之和决定,实际容量受地址结构决定。2.在虚拟存储系统中,若进程在内存中占3块(开始时为空),采用先进先出页面淘汰算法,当执行访问页号序列为1﹑2﹑3﹑4﹑1﹑2﹑5﹑1﹑2﹑3﹑4﹑5﹑6时,将产生___次缺页中断。(开始为空,内存中无页面,3块物理块一开始会发生三次缺页。) A. 7 B. 8 C. 9 D. 10 3. 实现虚拟存储器的目的是___. A.实现存储保护 B.实现程序浮动 C.扩充辅存容量 D.扩充主存容量 4. 作业在执行中发生了缺页中断,经操作系统处理后,应让其执行___指令.(书本158页,(2)最后一句话) A.被中断的前一条 B.被中断的 C.被中断的后一条 D.启动时的第一条 5.在请求分页存储管理中,若采用FIFO页面淘汰算法,则当分配的页面数增加时,缺页中断的次数________。(在最后一题做完后再作答)答案错误选择:D A.减少 B. 增加 C. 无影响 D. 可能增加也可能减少 6. 虚拟存储管理系统的基础是程序的________理论. A. 局部性 B. 全局性 C. 动态性 D.虚拟性

操作系统原理-第五章 存储管理习题

5.3 习题 5.3.1 选择最合适的答案 1.分页存储管理的存储保护是通过( )完成的. A.页表(页表寄存器) B.快表 C.存储键 D.索引动态重定 2.把作业地址空间中使用的逻辑地址变成内存中物理地址称为()。 A、加载 B、重定位 C、物理化 D、逻辑化 3.在可变分区存储管理中的紧凑技术可以()。 A.集中空闲区 B.增加主存容量 C.缩短访问时间 D.加速地址转换 4.在存储管理中,采用覆盖与交换技术的目的是( )。 A.减少程序占用的主存空间 B.物理上扩充主存容量 C.提高CPU效率 D.代码在主存中共享 5.存储管理方法中,( )中用户可采用覆盖技术。 A.单一连续区 B. 可变分区存储管理 C.段式存储管理 D. 段页式存储管理 6.把逻辑地址转换成物理地址称为()。 A.地址分配 B.地址映射 C.地址保护 D.地址越界 7.在内存分配的“最佳适应法”中,空闲块是按()。 A.始地址从小到大排序 B.始地址从大到小排序 C.块的大小从小到大排序 D.块的大小从大到小排序 8.下面最有可能使得高地址空间成为大的空闲区的分配算法是()。 A.首次适应法 B.最佳适应法 C.最坏适应法 D.循环首次适应法 9.那么虚拟存储器最大实际容量可能是( ) 。 A.1024K B.1024M C.10G D.10G+1M 10.用空白链记录内存空白块的主要缺点是()。 A.链指针占用了大量的空间 B.分配空间时可能需要一定的拉链时间 C.不好实现“首次适应法” D.不好实现“最佳适应法” 11.一般而言计算机中()容量(个数)最多. A.ROM B.RAM C.CPU D.虚拟存储器 12.分区管理和分页管理的主要区别是()。 A.分区管理中的块比分页管理中的页要小 B.分页管理有地址映射而分区管理没有

存储管理实验报告.doc

存储管理实验报告

北方工业大学 《计算机操作系统》实验报告 实验名称存储管理实验序号 2 实验日期2013.11.27实验人 一、实验目的和要求 1.请求页式存储管理是一种常用的虚拟存储管理技术。本实验目的 是通过请求页式存储管理中页面置换算法的模拟设计,了解虚拟存储 技术的特点,掌握请求页式存储管理的页面置换算法。 二、相关背景知识 1.随机数产生办法 关于随机数产生办法, Linux 或 UNIX 系统提供函数 srand() 和 rand() ,分 别进行初始化和产生随机数。 三、实验内容 (1).通过随机数产生一个指令序列,共320条指令。指令的地址按下述原则生成: 1.50% 的指令是顺序执行的; 2.25% 的指令是均匀分布在前地址部分; 3.25% 的指令是均匀分布在后地址部 分;具体的实施方法是: 1.在[0, 319]的指令地址之间随机选取一起点 m; 2.顺序执行一条指令,即执行地址为 m+1 的指令; 3.在前地址[0,m+1]中随机选取一条指令并执行,该指令的地址为m’; 4.顺序执行一条指令,其地址为 m’+1; 5.在后地址 [m ’+2, 319]中随机选取一条指令并执行; 6.重复上述步骤 1~5,直到执行 320 次指令。 (2)将指令序列变换成页地址流,设 1.页面大小为 1K ; 2.用户内存容量为 4 页到 32 页; 3.用户虚存容量为 32K 。 在用户虚存中,按每 K 存放 10 条指令排列虚存地址,即 320 条指令在虚存 中存放的方式为: 第 0 条至第 9 条指令为第 0 页(对应虚存地址为 [0, 9]); 第 10 条至第 19 条指令为第 1 页(对应虚存地址为 [10, 19]); 第 310 条至第 319 条指令为第 31 页(对应虚存地址为 [310,319]); 按以上方式,用户指令可以组成 32 页。 (3)计算并输出下述各种算法在不同内存容量下的命中率。

操作系统考研资料:第五章 存储器管理学习辅导资料

1 第五章 存储器管理 5.1 知识点汇总 1、存储器的层次 操作系统的内存管理功能,使之操作系统中负责管理内存使用的那部分功能子集,又称主存管理。 在现代计算机系统中,存储器是信息外理的来源与归宿,占据重要位置。但是,在现有 技术条件下,任何一种存储装置,都无法同时从速度与容量两方面,满足用户的需求。实际上它们组成了一个速度由快到慢,容量由小到大的存储装置层次。 图5-1 三级存储器结构 2、内存管理的目的 ? 主存的分配和管理:当用户需要内存时,系统为之分配相应的存储空间;不需要时,及 时回收,以供其它用户使用。 ? 提高主存储器的利用率:不仅能使多道程序动态地共享主存,提高主存利用率, 最好还

能共享主存中某个区域的信息。 ?“扩充”主存容量:为用户提供比主存物理空间大得多的地址空间,以至使用户感觉他 的作业是在这样一个大的存储器中运行。(虚拟内存技术) ?存储保护:确保多道程序都在各自分配到存储区域内操作,互不干扰,防止一道程序破 坏其它作业或系统文件的信息。 程序的各个阶段:编辑―――编译―――链接―――装入―――运行 1). 编辑阶段:创建源文件 2). 编译阶段:生成目标文件 3). 连接阶段:生成可执行文件 4). 装入阶段:重定位,装入内存 5). 运行阶段:得到结果 图5-2 程序的各个阶段 3、存储器管理的功能 2

存储器管理的功能:内存分配、地址映射、内存保护、内存扩充。 4、存储器有关概念 地址空间:程序用来访问信息所用地址单元的集合。逻辑(相对)地址的集合。由编译程序生成 存储空间:主存中物理单元的集合物理(绝对)地址的集合由装配程序等生成 (1)逻辑地址(相对地址,虚地址)用户的程序经过汇编或编译后形成目标代码,目标代码通常采用相对地址的形式,其首地址为0,其余指令中的地址都相对于首地址而编址。不能用逻辑地址在内存中读取信息 (2)物理地址(绝对地址,实地址):内存中各物理单元的地址是从统一的基地址顺序编址。 (3)重定位:把作业地址空间中使用的逻辑地址变换成内存空间中的物理地址的过程。又称地址映射。 1)绝对装入:编译后,装入前已产生了绝对地址(内存地址),装入时不再作地址重定位。 绝对地址的产生:(1)由编译器完成,编程时使用符号地址(2)由程序员编程完成。 程序中所使用的绝对地址,可在编译或汇编时给出,也可由程序员直接赋予。但在由程序员直接给出绝对地址时,不仅要求程序员熟悉内存的使用情况,而且一旦程序或数据被修改后,可能要改变程序中的所有地址。因此,通常是宁可在程序中采用符号地址,然后在编译或汇编时,再将这些符号地址转换为绝对地址。 3

存储管理实验报告

综合性实验报告 一、实验目的 通过请求页式存储管理中页面置换算法模拟设计,了解虚拟存储技术的特点,掌握请求页式管理的页面置换算法。 页面置换算法是虚拟存储管理实现的关键,通过本次实验理解内存页面调度的机制,在模拟实现FIFO、LRU、OPT、LFU、NUR几种经典页面置换算法的基础上,比较各种置换算法的效率及优缺点,从而了解虚拟存储实现的过程。 二、总体设计 1、编写函数计算并输出下述各种算法的命中率 ①OPT页面置换算法 OPT所选择被淘汰的页面是已调入内存,且在以后永不使用的,或是在最长时间内不再被访问的页面。因此如何找出这样的页面是该算法 的关键。可为每个页面设置一个步长变量,其初值为一足够大的数,对 于不在内存的页面,将其值重置为零,对于位于内存的页面,其值重置 为当前访问页面与之后首次出现该页面时两者之间的距离,因此该值越 大表示该页是在最长时间内不再被访问的页面,可以选择其作为换出页 面。 ②FIFO页面置换算法 FIFO总是选择最先进入内存的页面予以淘汰,因此可设置一个先进先出的忙页帧队列,新调入内存的页面挂在该队列的尾部,而当无空闲 页帧时,可从该队列首部取下一个页帧作为空闲页帧,进而调入所需页 面。 ③LRU页面置换算法 LRU是根据页面调入内存后的使用情况进行决策的,它利用“最近的过去”作为“最近的将来”的近似,选择最近最久未使用的页面予以 淘汰。该算法主要借助于页面结构中的访问时间time来实现,time记

录了一个页面上次的访问时间,因此,当须淘汰一个页面时,选择处于 内存的页面中其time值最小的页面,即最近最久未使用的页面予以淘 汰。 ④LFU页面置换算法 LFU要求为每个页面配置一个计数器(即页面结构中的counter),一旦某页被访问,则将其计数器的值加1,在需要选择一页置换时,则 将选择其计数器值最小的页面,即内存中访问次数最少的页面进行淘 汰。 ⑤NUR页面置换算法 NUR要求为每个页面设置一位访问位(该访问位仍可使用页面结构中的counter表示),当某页被访问时,其访问位counter置为1。需要 进行页面置换时,置换算法从替换指针开始(初始时指向第一个页面) 顺序检查处于内存中的各个页面,如果其访问位为0,就选择该页换出, 否则替换指针下移继续向下查找。如果内存中的所有页面扫描完毕未找 到访问位为0的页面,则将替换指针重新指向第一个页面,同时将内存 中所有页面的访问位置0,当开始下一轮扫描时,便一定能找到counter 为0的页面。 2、在主函数中生成要求的指令序列,并将其转换成页地址流;在不同的内存容量下调用上述函数使其计算并输出相应的命中率。 三、实验步骤(包括主要步骤、代码分析等) 主要步骤: 、通过随机数产生一个指令序列,共320条指令。其地址按下述原则生成: ①50%的指令是顺序执行的; ②25%的指令是均匀分布在前地址部分; ③25%的指令是均匀分布在后地址部分; 具体的实施方法是: A.在[0,319]的指令地址之间随机选区一起点M; B.顺序执行一条指令,即执行地址为M+1的指令; C.在前地址[0,M+1]中随机选取一条指令并执行,该指令的地址为M’; D.顺序执行一条指令,其地址为M’+1; E.在后地址[M’+2,319]中随机选取一条指令并执行;

5实验五存储管理参考代码(实际物理内存、虚拟内存操作)

实验五存储管理 一、实验目的 1.理解内存分配原理,特别是页式虚拟内存分配(4.4 请求分页存储管理)方法。 2.了解Windows 2000/XP的内存管理机制,掌握页式虚拟存储技术。 3.掌握Windows 2000/XP中内存管理基本API的使用方法。 二、实验环境 Windows 2000/XP+VC6.0 三、实验内容 1、在程序中,用一个线程模拟各种虚存活动,如虚存的保留、提交等。 2、用一个监控线程实时监控系统当前的虚存操作,并在控制台输出虚存操作信息。要求监控线程与模拟虚存活动的线程保持同步,即模拟线程出现模拟活动,监控线程应立即监控到该活动的信息。 3、在用监控线程监控内存活动的同时,汇报整个存储系统的使用情况。 四、设计思路和流程框图 1.程序结构 (1) main函数 用_beginthreadex函数启动两个线程。 (2) simulator线程(模拟内存分配) 随机地进行各种虚存操作,包括虚存的保留与提交、虚存的注销、虚存的注销并释放虚存空间、改变虚拟内存页的保护、锁定虚拟内存页和虚存的保留。每个活动完成后,程序的全局变量Actnum被设置为一个特定的整数值。线程随即被阻塞直至Actnum被置回零。 (3) inspector线程(跟踪内存分配活动) 该线程通过Actnum的值获得上一个虚存动作的类型,并通过BASE_PTR的值获得该动作发生的虚存地址,并输出相关信息。最后,设置Actnum为零,通知模拟线程继续下一次动作,实现两线程的同步。 程序的主线程派生上述两个主要线程后,就处于等待状态。用户此时可以观察模

拟和监控线程的活动,也可以键入任意键结束程序的运行。 2. 数据结构 (1)指示器Actnum Actnun初值为0。Actnun为0时,模拟线程处于活动状态,在一个随机数的控制下,模拟线程进行各种虚存活动。当一个模拟活动成功完成,模拟线程会设置指示器Actnum为一个非0的值并自动阻塞直到Actnun被置回为0。 Actnun为非0时,监控线程处于活动状态,并通过Actnum的值确定动作的类型,并通过全局变量BASE_PTR获得该动作发生的虚存地址。监控线程完成对该动作的监控后,再设置Actnun为0,然后模拟线程再开始活动。 (2) 地址指针BASE_PTR 这个指针在进行虚存分配时用于记录返回的虚存的起始地址。它是由虚存分配函数VirtualAlloc来赋予虚存的起始地址的。

习题解答——第5章存储管理

第5章思考与练习题 7.在一个分区存储管理系统中,按地址排列的内存空闲分区的大小是:10KB、4KB、20KB、18KB、7KB、9KB、12KB和15KB。对于以下的请求 a) 12KB b) 10KB c) 9KB (1)如果采用首次适应法将分配到哪些空闲分区 (2)采用最佳适应法又如何 解答: (1)首次适应法空闲链情况 10KB→4KB→20KB→18KB→7KB→9KB→12KB→15KB (a)满足12K请求,分配20KB的空闲块,分配后的链表情况 10KB→4KB→8KB→18KB→7KB→9KB→12KB→15KB (b)满足10K请求,分配10KB的空闲块,分配后的链表情况 4KB→8KB→18KB→7KB→9KB→12KB→15KB (c)满足9K请求,分配18KB的空闲块,分配后的链表情况 4KB→8KB→9KB→7KB→9KB→12KB→15KB (2)最佳适应法空闲链情况 4KB→7KB→9KB→10KB→12KB→15KB→18KB→20KB (a)满足12K请求,分配12KB的空闲块,分配后的链表情况 4KB→7KB→9KB→10KB→15KB→18KB→20KB (b)满足10K请求,分配10KB的空闲块,分配后的链表情况 4KB→7KB→9KB→15KB→18KB→20KB (c)满足9K请求,分配9KB的空闲块,分配后的链表情况 4KB→7KB→15KB→18KB→20KB

首次适应法最佳适应法(a)12K20K12K (b)10K10K10K (c)9K18K9K 8.某虚拟存储器的用户地址空间有32个页面,每页大小为1KB。内存的大小为16KB。 假设某用户的页表如下: 页号存储块号 05 110 24 37 试将虚拟地址0x0A5C和0x093C变换为物理地址。 解答: 页大小为1K,页内位移占10位。 虚拟地址0X0A5C: 0X0A5C0000 页号为2,查页表得到存储块号为4。 0000X125C 虚拟地址0X093C: 0X093C0000 页号为2,查页表得到存储块号为4。 0000X113C

第五章存储管理

单多项选择题 判断题 填空题 名词解释 1物理地址 内存中各存储单元的地址由统一的基地址顺序编址,这种地址称为物理地址。 2逻辑地址 用户程序经编译之后的每个目标模块都以0为基地址顺序编址,这种地址称为逻辑地址。 3逻辑地址空间 由程序中逻辑地址组成的地址范围叫做逻辑地址空间。 4物理地址空间 由内存中的一系列存储单元所限定的地址范围称作内存空间。 5重定位 把逻辑地址转变为内存物理地址的过程叫做重定位。 6静态重定位 在目标程序装入内存时所进行的重定位。 7动态重定位 在程序执行期间,每次访问内存之前进行的重定位。 8内部碎片 在一个分区内部出现的碎片(即被浪费的空间)称作内部碎片。如固定分区法会产生内部碎片。 9外部碎片 在所有分区之外新产生的碎片称作外部碎片,如在动态分区法实施过程中出现的越来越多的小空闲块,由于它们太小,无法装入一个小进程,因而被浪费掉。 10碎片

在分区法中,内存出现许多容量太小、无法被利用的小分区称作“碎片”。 11紧缩 移动某些已分区的内容,使所有作业的分区紧挨在一起,而把空闲区留在另一端,这种技术称为紧缩。 12可重定位地址 当含有它的程序被重定位时,将随之被调整的一种地址。 13固定分区法 内存中分区的个数固定不变,各个分区的大小也固定不变,但不同分区的大小可以不同,每个分区只可装入一道作业。 14动态分区法 各个分区是在相应作业要求进入内存时才建立的,使其大小恰好适应作业的大小。 15可再入代码 也称纯代码,是指那些在其执行过程本身不做任何修改的代码,通常由指令和常数组成。 16虚拟存储器 虚拟存储器是用户能作为可编程内存对待的虚拟存储空间,在这种计算机系统中实现了用户逻辑存储器与物理存储器的分离,它是操作系统给用户提供的一个比真实内存空间大得多的地址空间。 17抖动 页面抖动是系统中频繁进行页面置换的现象。即如果一个进程没有一定数量的内存块,它很快就发生缺页。此时,它必须淘汰某页。由于所有这些页面都正在使用,所以刚被淘汰出去的页很快又被访问,因而要把它重新调入。可是调入不久又再被淘汰出去,这样再访问,再调入,如此反复,使得整个系统的页面替换非常频繁,以致大部分机器时间都用在来回进行的页面调度上,只有一小部分时间用于进程的实际运算方面。 18工作集 工作集是一个进程在某一小段时间内访问页面的集合。利用工作集模型可防止抖动,也可以进行页面置换。 19程序局部性原理 在相对短的一段时间内,进程集中在一组子程序或循环中之行,导致所有的存储器访问局限于进程地址空间的一个固定子集。这种现象就叫做程序局部性原理。 20快表 又叫“联想存储器”。在分页系统中,由于页表是存放在主存中的,因此cpu存取一个数据时要访问两次主存。这样使计算机的处理速度降低约一倍。为了提高地址变换速度,在地址变换机构中增设一个具有并行查找能力的高速缓冲存储器,用以存放当前访问的页表项。这样的高速缓冲存储器就是快表。

实验项目五 存储管理

实验项目五存储管理 一、实验目的 1.熟悉内存空闲分区的分配方式; 2.理解动态分区存储管理方式; 3.掌握动态分区的分配与回收的过程。 二、实验内容 使用一个链表来模拟内存存储空间,建立内存块来记录内存分配使用情况,通过随机产生进程及其所需要的内存来模拟真实的进程。通过给进程分配内存及回收来实现对动态分区存储管理方法。 编制程序完成上述内容,内存空间大小为100,进程数为5,每个进程所需空间为随机产生,大小为1~20,首先对5个进程进行内存分配,然后回收指定的进程空间,并进行适当的空闲分区合并操作,要求每次操作结束后都能显示当前的内存分配情况。 三、源程序及运行结果 源程序: #include typedef struct MEMORY_BLOCK { int name; //进程名 int address; //起始地址 int length; //长度 int flag; //标志,表示该块是否被分配。 struct MEMORY_BLOCK *next;//指向下一个进程 }MEMORY_BLOCK; #define NUM 5 #define LEN sizeof(MEMORY_BLOCK) void allocation(MEMORY_BLOCK *Header,int name,int length_p) { MEMORY_BLOCK *temp,*t,*tt;

int minsize=2; //不可切割的分区阈值 t=Header; while(t!=0) { if(t->length>length_p&&t->flag==0) break; t=t->next; } if(t->length-length_p>minsize) //分割 { temp=(MEMORY_BLOCK*)malloc(LEN); temp->name=-1; temp->flag=0; temp->length=t->length-length_p; temp->address=t->address+length_p; t->name=name; t->flag=1; t->length=length_p; temp->next=t->next; t->next=temp; } else //直接分配 { t->name=name; t->flag=1; } } void reclaim(int processname, MEMORY_BLOCK *Header) { MEMORY_BLOCK *temp,*t,*tt; t=Header; temp=t; while(t->name!=processname) { temp=t; t=t->next; } if(t->next!=NULL)//t非尾结点 if(temp->flag==0&&t->next->flag==0)//左右为空 { temp->name=-1; temp->length=temp->length+t->length+t->next->length; tt=t->next; temp->next=tt->next; }

操作系统-实验3,存储管理

操作系统实验报告实验题目:存储管理 专业 学生姓名 班级学号 指导教师胡惠娟 指导单位计算机学院 日期

一、实验目的 1、理解操作系统存储管理原理 操作系统的发展使得系统完成了大部分的内存管理工作。对于程序员而言,这些内存管理的过程完全透明不可见。因此,程序员开发时从不关心系统如何为自己分配内存,而且永远认为系统可以分配给程序所需要的内存。在程序开发时,程序员真正需要做的就是:申请内存、使用内存、释放内存,其他一概无需过问。 2、研读Linux 内存管理所用到的文件include/linux/mm.h,主要包括两个数据结构:mem_map、free_area 3、在Linux 下,用malloc()函数实现cat或copy命令。 二、实验指导 1、相关函数 1)内存动态分配函数 #include void *malloc(size_t size) 该函数分配指定大小size个字节的内存空间,成功时返回分配内存的指针(即所分配内存的地址)。该内存区域没有清空。 2) void free(void * addr); 该函数释放由malloc()分配的内存,addr是要释放内存空间的起始地址,并且addr必须是被以前malloc( )调用返回的。 2、参考程序 例程1:申请内存、使用内存以及释放一块内存 #include #include #include int main(void) { char * str; if ((str=(char*)malloc(10))==NULL) { printf("not enough memory to allocate buffer\\n"); exit(1); } strcpy(str,"hello"); printf("string is %s\\n",str); free(str); return 0; } (要求:1、以自己的学号命名C程序;2、能够输出内存空间无法分配的信息)

相关文档