第5章 存储管理
操作系统原理第5章 存储管理
• ⑶最佳适应算法
• 最佳适应算法的空闲链是按空闲区从小到大顺序排 列。为进程选择分区时总是寻找其大小最接近进程 所要求的存储区域。所谓“最佳”是指每次为进程 分配内存时,总是把能满足要求、又是最小的空闲 分区分配给进程,避免“大材小用”。
• 因为每次分配后所切割下来的剩余部分总是最小的, 这样将加速碎片的形成。
• ①如果被回收空闲分区没有空闲伙伴分区,那么保留该分区为一 个独立的空闲分区,否则执行②;
• ②合并回收分区及其伙伴分区,从而得到一个尺寸(2I+1)更大的 回收空闲分区,转移到①;
一个伙伴系统内存分配与回收的例子
• 伙伴系统克服了固定分区和动态分区存储管理技术的缺陷。但是伙伴 系统存在一个问题,即内存空间需要不断地进行分裂和合并,频繁的 伙伴分区合并操作会浪费很多时间。
• ③内存分配原则,以页帧为单位来分配内存,将进程若干个逻辑上连续的 页面装入若干个离散的页帧中,由页表提供进程的页号到存储空间帧号的 映射。
5.2.4伙伴系统
• 其实现原理如下: • 一个伙伴系统内存的用户可用空间为2U。进程申请存储空间时,
系统总是为其分配大小为2I的一个空闲分区。其中S≤I≤U,2S是系 统允许的最小分区尺寸。在实际操作系统中,最小分区尺寸一般 为212。 • 如果进程申请的存储空间大小为K,且2I-1<K≤2I,则将整个2I大小的 分区分配给该进程;否则,该分区被分割成两个大小相等的伙伴 分区,大小为2I-1;再判断K是否满足条件:2I-2<K≤2I-1,若满足条件, 则将两个伙伴中的任何一个分配给该进程。否则,将其中一个伙 伴又分成两个大小相等的伙伴分区;此过程一直继续进行,直到 产生的分区满足条件I-J≥S并2I-J-1<K≤2I-J,将2I-J大小的分区分配给该 进程;当I-J-1<S时,系统不再分割成两个大小相等的伙伴分区,将 2S大小的分区分配给该进程。 • 当进程执行完毕,释放一个尺寸为2I的分区时,系统用下面的算法 回收该分区。
Java ME 程序设计第5章记录存储管理系统RMS
关闭和删除记录存储
记录存储操作完成后必须要关闭,关闭存储记录的方
法非常简单,定义如下: void closeRecordStore()
记录存储创建后,也可以被删除,但是必须由创建此
记录存储的MIDlet才能够删除,而且必须是对此记录 存储所有打开的引用都已经关闭的情况下才能删除, 如果还有对该记录存储的打开引用,将会抛出异常。 删除记录存储的方法定义如下: static void deleteRecordStore(String recordStoreName)
记录存储系统类库
在MIDlet中要使用记录存储功能,需要首先引入
javax.microedition.rms包。这个包中的核心类是RecordStore类,该类 用来表示记录存储,并提供相应的方法对记录存储进行生成和管理, 能过对记录管理中的记录进行添加、删除和修改操作。
方法 addRecord() addRecordListener() closeRecordStore() deleteRecord() enumerateRecords() getLastModified() getName() getNumRecords() getNextRecordID() getRecord() getRecordSize() getSizeAvailable() getVesion() listRecordStores() openRecord() removeRecordListener() setMode() setRecord() 说明 添加新记录 添加记录监听器 关闭记录存储系统 根据ID或者名称删除指定的记录 以可选的过滤器和比较器返回遍历记录的枚举器 返回上次更改记录的时间 返回记录存储的名字 返回当前记录存储中的记录条数 返回下一条记录的记录ID 根据指定的ID获得对应的记录数据内容 返回当前记录存储的大小 返回记录存储系统可用空间大小 返回记录存储的版本号 返回当前MIDlet组件所拥有的所有记录存储的名称 根据跟定的名称打开或创建记录存储 删除指定的监听器 改变当前记录存储的权限 根据指定的ID重新设定记录的数据
计算机操作系统教程(张尧学(第三版)第五章
精品课程系列-计算机学院版权所有
关于动态地址重定位可以如下图所示的过程说明:
制 作 者 : 郭 平 、 王 在 模 、 何 静 媛
用户程序的虚地址空间 0 100 1KB 0 内存 基地址寄存器 操作系统 22628 22KB 22528
XXXXX
20KB 22KB 22KB+100 XXXXXX
制 作 者 : 郭 平 、 王 在 模 、 何 静 媛
精品课程系列-计算机学院版权所有
动态地址重定位
制 作 者 : 郭 平 、 王 在 模 、 何 静 媛
动态地址重定位是在程序执行过程中,在CPU访问 内存之前,将要访问的程序或数据地址转换成内存地 址。动态地址重定位依靠硬件地址变换机构完成。
硬件地址转换机构一般由一个“基地址寄存器” 和一个“虚地址寄存器”组成,用户程序不做任何修 改地装入分配给它的存储区域。当调度到用户程序运 行时,则转换成实际的物理地址。
精品课程系列-计算机学院版权所有
分区的分配与释放
制 作 者 : 郭 平 、 王 在 模 、 何 静 媛
分区的分配: 若采用的是一个队列的管理方案,则当一个分区被释放时, 需要在队列中选出一个作业运行,可以有以下几种方案: (1)选出第一个可容纳的作业。该方案虽然实现简单,选择 率高,但是可能会因为一个小作业进入而浪费掉该分区的大部分 存储空间,存储利用率不高。 (2)在队列中找出该分区能容纳的最大的作业。由于每个分 配出的分区产生出的内部碎片小,因此,此方案存储空间的利用 率高;缺点是对小作业不公平。
22kb10022kb300023kbd图51地址变换示意图郭平王在模何静媛其中程序a中的一条入口地址为3000的一条指令为call100其中程序a中的一条入口地址为3000的一条指令为call100在装入内存之后由于程序的起始地址不再为0故程序中的指令需要做相应的转换
新第五章存储-段式及段页式
段表
S段的页表 … p’ P’+d 物理地址
… …
页面 … 段页式地址变换
29
存储 管理
(注:在段页式系统中,为了获取一条指令或 数据,需三次访问内存。第一次访问,是访问 内存中的段表,从中取得页表始址,第二次访 问,是访问内存中的页表,从中取得物理块号, 并将该块号与页内地址一起形成指令或数据的 物理地址;第三次访问,才是真正从第二次访 问的地址中,取得指令和数据。)
13
存储 管理 信息共享
分页系统中共享editor的示意图
14
存储 管理
15
分段系统中共享editor的示意图
存储 管理
五.请求分段存储管理
(一).请求分段使用的表
扩充段表(每个作业一个) 现行分段表(整个系统一个) 现行调用表(整个系统一个)
16
存储 管理
1.扩充段表
段号 段长 段始址 存取控制 中断位 访问 位 改变位 扩充位 辅存地址
中断位:表示该页在不主存 访问位:表示该页最近是否被访问过 改变位:表示该页内容是否被修改 扩充位(固定长/可扩充 )
17
存储 管理
2.现行分段表
记录共享段的状态,包括:当前段 是否在主存,该段在主存的始址,共享的 作业数,每个作业名,作业号以及在该作 业中的段号、允许的存取方式等。每个允 许被共享的段,当其调入主存时,均在此 表上登记。当一共享作业退出系统后,则 应将共享本段作业数减1并将相应的表目 改为“可用”。若共享作业数为0,则请求 系统回收相应的存储空间。
(1) 页是信息的物理单位,段则是信息的逻辑单位
(2) 页的大小固定且由系统决定,而段的长度却不
固定 (3) 分页的作业地址空间是一维的,即单一的线性 地址空间,分段的作业地址空间则是二维的
计算机四级网络工程师-操作系统原理-第5章内存管理
计算机四级网络工程师-操作系统原理-第5章内存管理计算机四级网络工程师-操作系统原理-第5章内存管理单选题可变分区管理方案,看内存分配表各类适应算法下次适应算法最优适应算法最坏适应算法首次适应算法,系统中剩余的最大空闲分区静态重定位中,从哪个单元获取操作数各类置换算法各类置换算法看内存分配情况表——实战最近最少使用页面置换算法(LRU)先进先出页面置换算法(FIFO)最近最不常用页面置换算法(LFU)最近未使用页面置换算法(NRU)涉及计算【真题讲解】页式管理存储第66题快表命中率花费us计算简单页式存储管理问最大有多少个页面问最大有多少字节问页表长度(页表项个数)写保护中断各个置换算法的缺页率(建议放弃这一题分,比较容易搞混,需要理解各个置换算法并画图表)LRU页面置换算法OPT最佳页面置换算法八进制的计算(先八进制转换成二进制再计算)虚拟页式存储管理(求偏移量题目)题目直接给二进制,直接进行数位数偏移题目直接给16进制,转换为二进制后进行数位数偏移虚拟页式的有效位、修改位、访问位、保护位、禁止位单页存放整数变量个数和循环代码计算缺页次数一般情况通解:两个循环次数相乘,除单页个数答案有整数×整数形式使用快表和不使用快表相比较,求平均访问时间降低x%需要直接记忆单选多选题需要直接记忆多选单选题可变分区管理方案,看内存分配表下次适应算法最优适应算法最坏适应算法首次适应算法,系统中剩余的最大空闲分区这种题目一定要学习画图,画出变化趋势和具体数值静态重定位中,从哪个单元获取操作数第28题:在操作系统的存储系统中,程序装入时采用静态重定位方法。
已知:第18号单元外有一条加法指令,该指令要求处第066号单外取得操作数1234。
假设存储管理为程学分配的内存区域是众第800号开始,则加法指令将从哪一个单元获取操作数:答案——866置换算法策略先进先出页面置换算法(FIFO)将驻留在内存中时间最长的一页调出最先装入内存的一页调出最近最少使用页面置换算法(LRU)最长时间未被使用过的页面距离现在最长时间没有被访问的页面最近最不常用页面置换算法(LFU)一段时间单页面被使用的次数多少选择一段确定的周期T内,使用次数最少最近未使用页面置换算法(NRU)在最近的一个【时钟滴答】中尽量置换一个没有被访问的和没有被修改过的页面理想页面置换算法(OPT)以后不再需要的、或者在最长时间以后才会用到的页面第二次机会页面置换算法检查进入内存时间最久页面的R位,如果是0,则置换该页;如果是1,就将R位清0,并把该页面放到链表的尾端,修改其进入时间【重点就是会放到链表尾端,画图表时注意】各类置换算法各类置换算法看内存分配情况表——实战最近最少使用页面置换算法(LRU)先进先出页面置换算法(FIFO)最近最不常用页面置换算法(LFU)最近未使用页面置换算法(NRU)涉及计算【真题讲解】页式管理存储第60题:在分区管理方法中,假设程序A自60K处开始存放,到124K为止。
操作系统第5章存储管理3虚拟存储
举例:某进程依次访问如下地址:
0100,0432,0101,0612,0102,0103, 0104,0101,0611,0102,0103,0104, 0101,0610,0102,0103,0104,0101, 0609,0102,0105。若页面大小为100, 上述访问串可简化为: 1,4,1,6,1,6,1,6,1,6,1
4 0 3
2 3 4 2 0 4
是 是 是 是 否 是 是 是 是 是 是 否 否
7 0 1 2 3 0 4
结果:缺页次数共10次。
次序
页 面 分 配 情 况 是否 缺页 换出 的页
7
0
1 1
2 2
0
3 3
0 0
4 4
2 2
3 3
0 0
3
2
0
7 7
0
7
1
0
2
1
3
2
0
3
4
0
2
4
3
2
是 是 是 是 否 是 是 是 是 是 是 否 否 7 0 1 2 3 0 4
4 0 3
是 是 是 是 否 是 是 是 是
7 0 1 2
次序
7
0
1
2
0
3
0
4
2
3
0
3
2
页 面 分 配 情 况
是否 缺页 换出 的页
1 2 0 7 7 0 1 7 0
3 0 2 3 1 2
4 0 3
2 4 0
是 是 是 是 否 是 是 是 是 是
7 0 1 2 3
次序
7
0
1
2
0
3
0
操作系统学习资料-第五章 存储管理习题
第五章存储管理一. 选择最合适的答案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.硬盘容量1G,内存容量为1024k,那么虚拟存储器最大实际容量可能是( ) 。
A.1024KB.1024MC.10GD.10G+1M10.用空白链记录内存空白块的主要缺点是()。
A.链指针占用了大量的空间B.分配空间时可能需要一定的拉链时间C.不好实现“首次适应法”D.不好实现“最佳适应法”11.一般而言计算机中()容量(个数)最多.A.ROMB.RAMC.CPUD.虚拟存储器12.分区管理和分页管理的主要区别是()。
A.分区管理中的块比分页管理中的页要小B.分页管理有地址映射而分区管理没有C.分页管理有存储保护而分区管理没有D.分区管理要求一道程序存放在连续的空间内而分页管理没有这种要求。
13.静态重定位的时机是()。
A.程序编译时B.程序链接时C.程序装入时D.程序运行时14.通常所说的“存储保护”的基本含义是()A.防止存储器硬件受损B.防止程序在内存丢失C.防止程序间相互越界访问D.防止程序被人偷看15.能够装入内存任何位置的代码程序必须是( )。
操作系统 110440113-王力.第五章
4.什么是动态链接?用哪种存储管理方案可以实现动态链接?
答:动态链接是指进程在运行时,只将进程对应的主程序段装入内存,在主程序段运行过程中,当需要用到哪个子程序段或数据段时,再将这些段调入内存,并与主程序段连接。通常段式管理方式可以以程序段为单位进行调度。
5.某进程的大小为25F3H字节,被分配到内存的3A6BH字节开始的地址。但进程运行时,若使用上、下界寄存器,寄存器的值是多少?如何进行存储保护?若使用地址、限长寄存器,寄存器的值是多少?如何进行存储保护?
答:上、下限寄存器:
上限寄存器的值是3A6BH,下限寄存器的值是3A6BH+25F3H=605EH。访问地址只能大于3A6BH而小于605EH,否则产生越界中断。
(2)写出该进程每一页在内存的起始地址。
答:第0页的起始地址是2*4KB=8KB。
第1页的起始地址是4*4KB=16KB。
第2页的起始地址是7*4KB=28KB。
第3页的起始地址是5*4KB=20KB。
(3)逻辑地址4146对应的物理地址是多少?
答:4146%4*1024=1……50,对应的块号是4,则对应的物理地址是4*4*1024+50=16434
答:如果物理空间变为2MB,块的大小不变,故块号的数目为1024个即10个二进制位。
8.某页式存储管理系统,内存的大小为64KB,被分为16块,块号为0、1、2、……、15。设某进程有4页,其页号为0、1、2、3,被分别装入内存的2、4、7、5,问:
第五章2分页存储管理
器”或“快表”。
快表中存放最近访问的页表项。
三、具有快表的地址变换机构 2.地址变换过程
页表 寄存 器 页表 始址 页表 长度 > 越界 中断 逻辑 地址 L 页号 页内 地 址
+ 页号 块号 输 b 入 寄 存 器 页表 快表 b 页号 块号
b
d
物理 地址
5.3 分页存储管理方式
5.3 分页存储管理方式
答案:页面大小为1KB,页内位移为10位,逻辑地址为十六 进制,转换为二进制,右边10位即为页内位移d,其余左边 高位为页号P。 OAC5H=0000101011000101B p=2, d=02C5H,查快表,得物理地址(4)2C5H 0EC3H=0000111011000011B p=3, d=02C3H,查快表,得物理地址(A)2C3H 12C5H=0001001011000101B p=4, d=02C5H,该页号不在快表,需到主存页表项中 寻找对应物理块号,得内存物理块号P=9,d=02C5H,得 物理地址(9)2C5H 62C3H=0110001011000011B p=24, d=02C3H,页号超出页表范围,不可转换,作 为越界处理。
5.3.1 分页存储管理的基本方法
二、地址结构
5.3 分 页 存 储 管 理 方 式
31
页号P
12 11
位移量W
0
若给定一个逻辑地址空间中的地址为A,页面 的大小为L,则页号P和页内地址d可按下式求得:
A P INT L d [ A ] MODL
5.3.1 分页存储管理的基本方法
块号 页内地址 物理地址
5.3.2 地址变换机构
二、基本地址变换机构 示意图
第五、六章存储器管理练习题
第五、六章存储器管理练习题(一)单项选择题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.在可变分区方式管理下收回主存空间时,若已判定“空闲区表第j栏始址=归还的分区始址+长度”,则表示( )。
A.归还区有下邻空闲区 B.归还区有上邻空闲区C.归还区有上、下邻空闲区 D.归还区无相邻空闲区9.当可变分区方式管理内存空间去配时,要检查有无相邻的空闲区,若归还区始地址为S,长度为L,符合( )表示归还区有上邻空闲区。
A.第j栏始址=S+L B.第j栏始址+长度=SC.第j栏始址+长度=S且第k栏始址=S+L D.不满足A、B、C任一条件10.碎片现象的存在使( )。
A.主存空间利用率降低 B.主存空间利用率提高C.主存空间利用率得以改善 D.主存空间利用率不受影响11.最佳适应分配算法把空闲区( )。
A.按地址顺序从小到大登记在空闲区表中 B.按地址顺序从大到小登记在空闲区表个C.按长度以递增顺序登记在空闲区表中 D.按长度以递减顺序登记在空闲区表中12.分页存储管理时,每读写一个数据,要访问( )主存。
操作系统第5章(存储器管理习题与解答)
第5章存储器管理习题与解答5.2 例题解析例5.2.1 为什么要引入逻辑地址?解引入逻辑地址有如下原因:(1) 物理地址的程序只有装入程序所规定的内存空间上才能正确执行,如果程序所规定内存空间不空闲或不存在,程序都无法执行;(2) 使用物理地址编程意味着由程序员分配内存空间,这在多道程序系统中,势必造成程序所占内存空间的相互冲突;(3) 在多道程序系统中,程序员门无法事先协商每个程序所应占的内存空间的位置,系统也无法保证程序执行时,它所需的内存空间都空闲。
(4) 基于上述原因,必须引入一个统一的、在编程时使用的地址,它能够在程序执行时根据所分配的内存空间将其转换为对应的物理地址,这个地址就是逻辑地址。
(5) 逻辑地址的引入为内存的共享、保护和扩充提供方便。
例5.2.2 静态重定位的特点有哪些?(1) 实现容易,无需增加硬件地址变换机构;(2) 一般要求为每个程序分配一个连续的存储区;(3) 在重定位过程中,装入内存的代码发生了改变;(4) 在程序执行期间不在发生地址的变换;(5) 在程序执行期间不能移动,且难以做到程序和数据的共享,其内存利用率低。
例5.2.3 动态重定位的特点有哪些?(1) 动态重定位的实现要依靠硬件地址变换机构,且存储管理的软件算法比较复杂;(2) 程序代码是按原样装入内存的,在重定位的过程中也不发生变化,重定位产生的物理地址存放在内存地址寄存器中,因此不会改变代码;(3) 同一代码中的同一逻辑地址,每执行一次都需要重位一次;(4) 只要改变基地址,就可以很容易地实现代码在内存中的移动;(5) 动态重定位可以将程序分配到不连续的存储区中;(6) 实现虚拟存储器需要动态重定位技术的支持;尽管动态重定位需要硬件支持,但他支持程序浮动,便于利用零散的内存空间,利于实现信息共享和虚拟存储,所以现代计算机大都采用动态重定位。
例5.2.4 装入时动态链接的优点有哪些?(1)便于软件版本的修改和更新在采用装入时动态链接方式时,要修改或更新各个目标模块,是件非常容易的事,但对于经静态链接以装配在一起的装入模块,如果要修改或更新其中的某个目标模块时,则要求重新打开装入模块,这不仅是低效的,而且对于普通用户是不可能的。
第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.修改过程D.执行过程9.在下面关于虚拟存储器的叙述中,正确的是()。
A.要求程序运行前必须全部装入内存且在运行过程中一直驻留在内存B.要求程序运行前不必全部装入内存且在运行过程中不必一直驻留在内存C.要求程序运行前不必全部装入内存且在运行过程中必须一直驻留在内存D.要求程序运行前必须全部装入内存且在运行过程中不必一直驻留在内存10.虚存的可行性的基础是()A.程序执行的离散性B.程序执行的顺序性C.程序执行的局部性D.程序执行的并发性11.在存储管理中,采用覆盖与交换技术的目的是()。
A.减少程序占用的主存空间B.物理上扩充主存容量C.提高CPU效率D.代码在主存中共享12在内存分配的“最佳适应法”中,空闲块是按()。
第5章 存储管理3-分段+段页+局部原理
假定一个多用户系统可容纳40个用户,某应用 程序包括160KB的TextEditor代码区和40KB 的数据区(共200K),则需8M内存支持;若代 码是可重入的(Reentrant),则代码 区 可 共 享 , 因 而 其 所 需 内 存 空 间 为 1760KB (=160+40x40)。
程序链接方式: 链接程序的功能是将经过编译或汇编后所得到的一组 目标模块以及它们所需要的库函数,装配成一个完整 的装入模块。实现连接的方法有三种: 1.静态链接方式(Static Linking) 2.装入时动态链接(Load time Dynamic Linking) 3.运行时动态链接(Run-time Dynamic Linking)
在进行地址转换时,系统将逻辑地址中的段号与段表长度进行 比较,若段号超过段表长度,表示超界,产生越界中断;若未 越界,根据段表起始地址和段号计算出该段对应段表项的位置 ,读出该段在内存的起始地址,然后再检查段内地址是否超过 该段的段长,若超过则同样发出越界中断信号;若未越界,则 将该段在内存的起始地址与段内位移相加,从而得到要访问的 物理地址。
段号 0 1 2 3 4
段的长度 660 14 100 580 96
内存起始地址 219 3330 90 1237 1952
5.5.2 段式管理的实现原理
4.段的共享与保护 段式存在管理可以方便地实现内存信息共享和进行有 效的内存保护,因为段是按逻辑意义划分,且可按段 名访问。
存储管理
5.1.2 程序的运行过程
在多道程序环境下,要使 程序运行,必须先为之创 建进程。而创建进程的第 一件事,便是将程序和数 据装入内存。 如何将一个用户源程序变 为一个可在内存中执行的 程序,简单的说,要经过 编辑、编译、链接、装入 和运行等几个阶段。
用户 编辑程序 如:vi 编辑阶段 源文件 如:file1.c
5.1.2 程序的运行过程
5. 运行阶段
在运行阶段,进程调度程序按照某种策略选中用户 程序,给其分配CPU使之运行,完成用户提交的任 务。运行完毕后,系统释放其占有的内存空间。
5.1.3 存储管理的任务和功能
存储管理的主要任务是:
(1) 支持多道程序的并发执行,使多道程序能共享 存储资源,在互不干扰的环境中并发执行。 (2) 方便用户,使用户减少甚至摆脱对存储器的管 理,使用户从存储器的分配、保护和共享等繁琐事 物中解脱出来。 (3) 提高存储器的利用率和系统吞吐量。 (4) 从逻辑上扩充内存空间,支持大程序能在小的 内存空间运行或允许更多的进程并发执行。
(2) 动态地址重定位
动态地址重定位是指在程序执行过程中,CPU在访 问内存之前,将要访问的程序或数据地址转换为内 存地址。 地址重定位机构需要一个(或多个)基地址寄存器BR 和一个(或多个)程序逻辑地址寄存器VR。指令或数 据的内存地址MA与逻辑地址的关系为: MA=(BR)+ (VR)
5.1.3 存储管理的任务和功能
(2) 动态地址重定位
动态地址重定位具体过程如下:
1) 初始化基地址寄存器BR,逻辑地址寄存器VR。 2) 将程序段装入内存,且将其占用的内存区首地址送到BR中。例如, 在图5-4中,(BR)=4000。 3) 在程序执行过程中,将所要访问的逻辑地址送入VR中,例如,在图 5-4中执行LOAD 1,400语句时,将所要访问的逻辑地址400放入VR中。 4) 地址变换机构把VR和BR的内容相加,得到实际访问的物理地址。
操作系统原理第五章 存储管理习题
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.硬盘容量1G,内存容量为1024k,那么虚拟存储器最大实际容量可能是( ) 。
A.1024KB.1024MC.10GD.10G+1M10.用空白链记录内存空白块的主要缺点是()。
A.链指针占用了大量的空间B.分配空间时可能需要一定的拉链时间C.不好实现“首次适应法”D.不好实现“最佳适应法”11.一般而言计算机中()容量(个数)最多.A.ROMB.RAMC.CPUD.虚拟存储器12.分区管理和分页管理的主要区别是()。
A.分区管理中的块比分页管理中的页要小B.分页管理有地址映射而分区管理没有C.分页管理有存储保护而分区管理没有D.分区管理要求一道程序存放在连续的空间内而分页管理没有这种要求。
13.静态重定位的时机是()。
A.程序编译时B.程序链接时C.程序装入时D.程序运行时14.通常所说的“存储保护”的基本含义是()A.防止存储器硬件受损B.防止程序在内存丢失C.防止程序间相互越界访问D.防止程序被人偷看15.能够装入内存任何位置的代码程序必须是( )。
第5章 存 储 管 理习题答案
第5章存储管理(1) 存储管理的任务和功能是什么?解:存储管理的主要任务是:1.支持多道程序的并发执行,使多道程序能共享存储资源,在互不干扰的环境中并发执行。
2.方便用户,使用户减少甚至摆脱对存储器的管理,使用户从存储器的分配、保护和共享等繁琐事物中解脱出来。
3.提高存储器的利用率和系统吞吐量。
4.从逻辑上扩充内存空间,支持大程序能在小的内存空间运行或允许更多的进程并发执行。
为了完成上述任务,现代操作系统的存储管理应具有以下功能:1. 存储空间的分配和回收。
2. 地址转换,实现逻辑地址到物理地址的映射。
3. 主存空间的共享。
4. 主存空间的保护。
5. 主存储空间的扩充。
6. 对换,对换的主要任务是实现在内存和外存之间的全部或部分进程的对换,即将内存中处于阻塞状态的进程调换到外存上,而将外存上处于就绪状态的进程换入内存。
对换的目的主要是为了提高内存利用率,提高系统的吞吐量。
(2) 为什么要配置层次式存储器?解:为了解决CPU和存储器之间速度上的不匹配,在现代计算机系统中,存储系统通常采用层次结构,存储层次可粗略分为三级:最高层为CPU寄存器,中间为主存,最底层是辅存。
根据具体功能还可以细分为寄存器、高速缓存、主存储器、磁盘缓存、辅存储设备(固定磁盘、可移动存储介质)5层。
一个文件的数据可能出现在存储系统的不同层次中,例如,一个文件数据通常被存储在辅存中(如硬盘),当其需要运行或被访问时,就必须调入主存,也可以暂时存放在主存的磁盘高速缓存中。
大容量的辅存常常使用磁盘,磁盘数据经常备份在可移动磁盘或者光盘上,以防止硬盘故障时丢失数据。
(3) 什么是逻辑地址?什么是物理地址?为什么要进行二者的转换工作?解:逻辑地址是应用程序中使用的访存地址,有时也称为相对地址,由逻辑地址构成的地址空间称为逻辑空间。
每个应用程序的逻辑地址空间都是从零号地址码开始的。
物理地址是内存储器的实际存储单元地址,有时也称为绝对地址,由物理地址构成的地址空间称为物理空间。
操作系统原理第5章
第5章 存储管理
• 第二机会算法——Second-Chance Algorithm
分区的分配与回收
1. 固定分区的分配与回收 2. 动态分区的分配与回收 存储分配算法
首次适应算法——first fit algorithm 最佳适应算法——best fit algorithm 最差适应算法——worst fit algorithm 循环首次适应算法——Circular first fit algorithm 3. 动态分区的回收与拼接 4. 几种分配算法的比较
111100033333222
****
******
缺页率=12/17=70.6%
**
• Four Page Frames
70120304230321201
77777333333333222
0000004444444444
111111110000000
22222222221111
****
*
*
*
**
缺页率=9/17=52.9%
(NUR——Not Used Recently或者NRU——Not Recently Used)
引用位(1bit)
附加位(8bit)
若某页的移位寄存器的值为00000000,则该页在8个时间间 隔内没有被使用过。若某页的移位寄存器的值为11111111,则 该页在每个时间间隔内至少使用过1次。
若页A的移位寄存器的值为11000100,页B的移位寄存器的 值为01110111,则淘汰页B。
22
第5章 存储管理
First–In–First–Out (FIFO) Algorithm
• Three Page Frames
123412512345
计算机操作系统教程_第四版_(张尧学著)_清华大学出版社_第5章new存储管理
(4)重定位及存储保护
重定位过程,其步骤概括如下: 1)页号p和页内地址w 2)存储保护 3)利用页表得到块号 4)形成物理地址
分页重定位
例子 在某静态分页存储管理中,已知内存共的32块, 块长度为4K,当前位示图如图5-22所示,进程 P的虚拟地址空间大小为50000。 (1)进程P共有几页?
3.主要特点
能够支持多道程序设计 并发执行的进程数受分区个数的限制 程序大小受分区长度的限制 存在“碎片”
减少碎片
四、可变分区存储管理 1.基本思想
用户区作为空闲区,根据程序实际需求量,分 配空间,并可回收使用后的空间。
2.实现关键
(1)数据结构设计
可用表 空闲区链表
请求表 struct FreeNode { long start; long length; struct FreeNode *next; 针 //分区的起始地址 //分区的长度 //向下指针
4.虚拟存储器思想 (1)虚拟存储器要解决的主要技术有:理论基 础、调入策略和置换算法 (2)理论基础--程序的局部性原理
在程序运行过程的一个较小时间范围内,只需要 一小部分的程序信息,其他部分暂时不需要;而 且在程序的一次执行过程,程序的所有指令和数 据并没有相同的访问概率,有一部分指令和数据 经常被访问,有一部分指令和数据很少被访问, 甚至存在部分指令和数据根本没有被访问。 程序的局部性原理又分为时间局部性和空间局部 性
假定,在位示图中的一个位用bitmap[i,j]表示,其中i 称为字 号,表示第i行即第i个字;j称为位号,表示在第i个字中的第j 位,这里规定从低位开始计算。如果位示图中的第i个字记为 bitmap[i],那么 bitmap[i,j]=(bitmap[i] >>j )&1
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
windows
5.20
Steps in Handling a Page Fault
windows
5.21
Page Replacement 页面置换
在进程运行过程中,如果发生缺页,此时内存中又无空闲
块时,为了保证进程能正常运行,就必须从内存中调出一 页程序或数据送磁盘的对换区。但将哪个页面调出,则须 根据一定的页面置换算法来确定。 .
存储管理
本章内容
内存管理概述
Windows 2000/XP内存管理 Windows 2000/XP外存管理 Windows 2000/XP高速缓存管理
windows
5.2
内存管理概述技术
Swapping 交换技术
Contiguous Allocation 连续分配
windows
5.16
Two-Level Page-Table Scheme
windows
5.17
Address-Translation Scheme
Address-translation scheme for a two-level 32-bit paging
architecture (一个两级32位分页结构的地址转换机制)
Paging 分页
Segmentation 分段
Segmentation with Paging 段页式
Demand Paging 请求页式
windows 5.4
Background
存储器是计算机系统的
重要组成部分,虽然内 存容量在不断扩大,但 内存仍是宝贵资源,如 何提高主存储器利用率 ,并扩充大主存,对主 存信息实现有效保护是 存储器管理主要任务, 也是各种不同存储管理 方法的目标
虚拟存储的基本原理
windows
5.19
Demand Paging
在请求分页系统中的每个页表项如图所示:
状态位P(存在位):用于指示该页是否已调入内存,供程序访问时 参考。 访问字段A:用于记录本页在一段时间内被访问的次数,或最近已有 多长时间未被访问,提供给置换算法选择换出页面时参考。 修改位M:表示该页在调入内存后是否被修改过。由于内存中的每一 页都在外存上保留一份副本,因此,若未被修改,在置换该页时就 不需将该页写回到外存上,以减少系统的开销和启动磁盘的次数; 若已被修改,则必须将该页重写到外存上,以保证外存中所保留的 始终是最新副本。 外存地址:用于指出该页在外存上的地址,通常是物理块号,供调 入该页时使用。
a page number consisting of 20 bits. a page offset consisting of 12 bits. Since the page table is paged, the page number is further divided into : a 10-bit page number. (一个10位的页号) a 10-bit page offset. (一个10位的偏移) Thus, a logical address is as follows :
功能:需要调入页面时,选择内存中哪个物理页面被置换
。称为replacement policy。
出发点:把未来不再使用的或短期内较少使用的页面调出
,通常只能在局部性原理指导下依据过去的统计数据进行 预测。
从理论上讲,应将那些以后不再被访问的页面换出,或把
那些在较长时间内不会再被访问的页面换出。
Internal fragmentation program, no external
fragmentation. associative memory or translation look-aside buffers (TLBs) 联想寄存器(快表)
windows 5.9
Address Translation Scheme(地址变换机制)
Hierarchical Paging
分级页表
Hashed Page Tables 哈希页表 Inverted Page Tables 反向(反置)页
表
windows
5.13
Hierarchical Page Tables
x86的逻辑地址空间有232Byte,如页面大小为4KB(
212Byte),则页表项达1M(220)个,每个页表项占 用4Byte,故每个进程的页表占用4MB内存空间,还 要求是连续的,显然这是不现实的。
行时可以在内存中移动,则地址绑定要延迟到运行时。需要硬件对地 址映射的支持MMU (例如基址和限长寄存器)
windows 5.7
Multistep Processing of a User Program
windows
5.8
Paging(分页)
Divide physical memory into fixed-sized blocks called
。)
31 Page number 12 11 page offset 0
p 地址结构
d
windows
5.10
Address Translation Architecture(地址变换机构)
windows
5.11
Paging Example
windows
5.12
Page Table Structure
page number p1 10
page offset
p2
10
d 12
where p1 is an index into the outer page table, and p2 is the displacement
within the page of the outer page table.
Address generated by CPU is divided into ( CPU产生的地址被分为) :
Page number (p) (页码) – used as an index into a page table which contains base address of each page in physical memory.(它包含每个页在物理内存中的基址,用来作为页表的索引) Page offset (d) (偏移)– combined with base address to define the physical memory address that is sent to the memory unit. (同基址相结合,用来确定送入内存单元的物理内存地址
分解逻辑地址空间到多个页表 一个简单的技术是两级页表
在x86中,为了减少页表所占用的连续的内存空间, 采用了两级页表机制。 Windows , Linux 。
windows
5.14
Two-Level Paging Example
A logical address (on 32-bit machine with 4K page size) is divided into :
frames (size is power of 2, between 512 bytes and 8192 bytes). (把物理内存分成大小固定的块,称为帧或 页框。) Divide logical memory into blocks of same size called pages. (把逻辑内存也分位固定大小的块,称为页。) Set up a page table to translate logical to physical addresses. (设置一个页表以便把逻辑地址转换为物理地 址。) 页表page table列出了进程的逻辑页与其在主存中的物理 帧间的对应关系
生成绝对代码;如果开始位置改变,需要重新编译代码
Load time (装入时期) : Must generate relocatable code if
memory location is not known at compile time.如果内存位置
在编译时不知道,则必须生成可重定位代码
Execution time (执行时期) : Binding delayed until run
windows
5.5
Background
Logical address逻辑地址(相对地址,虚地址):用户的
程序经过汇编或编译后形成目标代码,目标代码通常采用 相对地址的形式。
其首地址为0,其余指令中的地址都相对于首地址来编址。 不能用逻辑地址在内存中读取信息。
Physical address物理地址(绝对地址,实地址):内存
windows
5.22
Page Replacement Algorithms
First-In-First-Out Page Replacement (FIFO,先进先出页面置换算法
)
Optimal Page Replacement (OPT,最佳页面置换算法):选择“未来
不再使用的”或“在离当前最远位置上出现的”页面被置换。 Least Recently Used Page Replacement (LRU,最近最久违用算法): 选择内存中最久未使用的页面被置换。由于需要记录页面使用时间的 先后关系,硬件开销太大。 LRU Approximation Algorithms 近似LRU算法(NRU) Additional-Reference-Bits Algorithm附加引用位算法 Second-Chance Algorithm二次机会算法(clock算法) Enhanced Second-Chance Algorithm增强二次机会算法(改进 型的clock算法)