存储器管理之请求分页存储管理方式
分页存储管理

非连续分配方式1.基本内容:页式存储管理基本思想、数据结构、地址转换过程。
段式存储管理以及段页式存储管理。
2.学习要求:;掌握页式存储管理、段式存储管理以及段页式存储管理的实现原理、数据结构、地址转换机构等内容。
3.教学要求:本单元共安排4学时。
采用教员课堂讲授方法实施教学。
该部分内容抽象,是本章学习重点与难点。
课后可通过课程设计使学员加深对于抽象理论的理解和掌握。
4.重点:各种管理实现原理、数据结构、地址转换机构。
5.难点:段式存储管理。
分页存储管理可重定位分区分配虽然可以解决碎片和共享问题,但由于信息的大量移动而损失了许多宝贵的CPU时间,且存储用户的作业受到实际存储容量的限制。
多重分区分配虽在一定程度上解决了这些问题,但由于要求各分区设置分段的重定位寄存器,存储分配策略较复杂,且需较多的硬件支持。
分页式管理技术通过地址转换机制,能明显消除内、外存之间的差别,将外存看作内存的扩充和延伸。
并能很好解决“外零头”的问题。
一、分页在储管理实现的基本思想:在分页存储管理中,将每个作业的逻辑地址空间分为大小相同的块,称为虚页面或页(page),通常页面大小为2的整数次幂(512K~4K)。
同样地,将物理空间也划分为与页面大小相等的块,称之为存储块或页框(page frame),为作业分配存储空间时,总是以页框为单位。
例如:一个作业的地址空间有M页,那么只要分配给它M个页框,每一页分别装入一个页框即可。
纯分页系统的定义:指在调度一个作业时,必须把它的所有页一次装入到主存的矾框。
若当时页框数不足,则该作业必须等待,系统再调度其他作业。
这里,并不要求这些页框是相邻的。
即连续逻辑地址空间的页面,通过页面地址转换机构可以映射到不连续的内存块中。
对地址空间的分页是由系统自动进行的,其逻辑地址由相对页号和页内位移量(页内地址)两部分组成(下面a)。
图中设逻辑地址长度为16位,可表示64K的逻辑地址空间。
物理地址也由块号及块内移量(块内地址)两部分组成(下图b)。
16存储管理5请求页式管理请求段式管理2

7
0
采用最佳置换算法,只发生了6次页面 置换,发生了9次缺页中断。缺页率=9/21
17
2、先进先出页面置换算法(FIFO) 这是最早出现的置换算法,这种算 法总是淘汰最先进入内存的页面,选 择在内存中驻留时间最久的页面予以淘 汰。
18
采用FIFO算法进行页面置换时的情况。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 1 7 0 1 7 7 0 7 2× 2 2 4× 4 4 0× 0 0 7× 7 7 0 0 3× 3 3 2× 2 2 1× 1 1 0× 0 1 1 1 0× 0 0 3× 3 3 2× 2 2 1× 3 4 5 6 7 8 9 10 11-13 14 15-18 19 20 21
次数减少;不同的计算机系统,有不同页面大小;
11
(3)程序的编制方法
例:程序要把128×128的数组初值置“0”,数组 中每一个元素为一个字,假定页面大小为128个字, 数组中的每一行元素存放一页,能供该程序使用 的主存块只有1块。初始时第一页在内存; 程序编制方法1: 程序编制方法2: For j:=1 to 128 For i:=1 to 128 For i:=1 to 128 For j:=1 to 128 A[i][j]:=0; A[i][j]:=0; 按列:缺页中断次数: 按行:缺页中断次数 128-1 128×128-1
21
D A D A C D B C + +
B B A D +
E E B A +
A B C D E E E C D D B B E C C A A B E E + +
计算机操作系统第四章-存储器管理

第四章存储器管理第0节存储管理概述一、存储器的层次结构1、在现代计算机系统中,存储器是信息处理的来源与归宿,占据重要位置。
但是,在现有技术条件下,任何一种存储装置,都无法从速度、容量、是否需要电源维持等多方面,同时满足用户的需求。
实际上它们组成了一个速度由快到慢,容量由小到大的存储装置层次。
2、各种存储器•寄存器、高速缓存Cache:少量的、非常快速、昂贵、需要电源维持、CPU可直接访问;•内存RAM:若干(千)兆字节、中等速度、中等价格、需要电源维持、CPU可直接访问;•磁盘高速缓存:存在于主存中;•磁盘:数千兆或数万兆字节、低速、价廉、不需要电源维持、CPU 不可直接访问;由操作系统协调这些存储器的使用。
二、存储管理的目的1、尽可能地方便用户;提高主存储器的使用效率,使主存储器在成本、速度和规模之间获得较好的权衡。
(注意cpu和主存储器,这两类资源管理的区别)2、存储管理的主要功能:•地址重定位•主存空间的分配与回收•主存空间的保护和共享•主存空间的扩充三、逻辑地址与物理地址1、逻辑地址(相对地址,虚地址):用户源程序经过编译/汇编、链接后,程序内每条指令、每个数据等信息,都会生成自己的地址。
●一个用户程序的所有逻辑地址组成这个程序的逻辑地址空间(也称地址空间)。
这个空间是以0为基址、线性或多维编址的。
2、物理地址(绝对地址,实地址):是一个实际内存单元(字节)的地址。
●计算机内所有内存单元的物理地址组成系统的物理地址空间,它是从0开始的、是一维的;●将用户程序被装进内存,一个程序所占有的所有内存单元的物理地址组成该程序的物理地址空间(也称存储空间)。
四、地址映射(变换、重定位)当程序被装进内存时,通常每个信息的逻辑地址和它的物理地址是不一致的,需要把逻辑地址转换为对应的物理地址----地址映射;地址映射分静态和动态两种方式。
1、静态地址重定位是程序装入时集中一次进行的地址变换计算。
物理地址= 重定位的首地址+ 逻辑地址•优点:简单,不需要硬件支持;•缺点:一个作业必须占据连续的存储空间;装入内存的作业一般不再移动;不能实现虚拟存储。
操作系统——页式存储管理

操作系统——页式存储管理分区式存储管理最⼤的缺点是碎⽚问题严重,内存利⽤率低。
究其原因,主要在于连续分配的限制,即它要求每个作⽤在内存中必须占⼀个连续的分区。
如果允许将⼀个进程分散地装⼊到许多不相邻的分区中,便可充分地利⽤内存,⽽⽆需再进⾏“紧凑”。
基于这⼀思想,产⽣了“⾮连续分配⽅式”,或者称为“离散分配⽅式”。
连续分配:为⽤户进程分配的必须是⼀个连续的内存空间。
⾮连续分配:为⽤户进程分配的可以是⼀些分散的内存空间。
分页存储管理的思想:把内存分为⼀个个相等的⼩分区,再按照分区⼤⼩把进程拆分成⼀个个⼩部分。
分页存储管理分为:实分页存储管理和虚分页存储管理⼀、实分页式存储管理实分页式存储最⼤的优点是内存利⽤率⾼,与⽬前流⾏的虚分页存储管理相⽐,具有实现简单,程序运⾏快的优点。
⽬前,飞速发展的硬件制造技术使得物理内存越来越⼤,因此我们认为,实分页式存储管理将是⼀种最有发展前途的存储管理⽅式。
1.1、基本原理假设⼀个⼤型饭店,所有的客房都是标准的双⼈间,部分客房已经住进客⼈,现在⼜有⼀个旅游团要求⼊住。
接待员统计了⼀下,对旅游团领队说:“贵团全体成员都能住下,两⼈⼀个房间,但是不能住在同⼀楼层了,因为每层空着的客房不够,更没有⼏个挨着的。
请原谅!”。
对于这样的安排,⼀般⼈不会感到奇怪。
因为旅游团本来就是由⼀位位个⼈或夫妻等组成的,⽽饭店的客房本来也是两⼈⼀间的,两⼈⼀组正好可住在⼀个客房⾥;另外,饭店⼏乎每天都有⼊住的和退房的客⼈,想在同⼀楼层找⼏间挨着的客房实在不容易。
①将整个系统的内存空间划分成⼀系列⼤⼩相等的块,每⼀块称为⼀个物理块、物理页或实页,页架或页帧(frame),可简称为块(block)。
所有的块按物理地址递增顺序连续编号为0、1、2、……。
这⾥的块相当于饭店的客房,系统对内存分块相当于饭店把⼤楼所有的客房都设计成标准的双⼈间。
②每个作业的地址空间也划分成⼀系列与内存块⼀样⼤⼩的块,每⼀块称为⼀个逻辑页或虚页,也有⼈叫页⾯,可简称为页(page)。
第16讲 存储器管理之请求分页存储管理方式

第十六讲存储器管理之请求分页存储管理方式1 基本概述请求分页管理是建立在基本分页基础上的,为了能支持虚拟存储器而增加了请求调页功能和页面置换功能。
基本原理:地址空间的划分同页式;装入页时,可装入作业的一部分(运行所需)页即可运行。
2 请求分页的硬件支持为实现请求分页,需要一定的硬件支持,包括:页表机制、缺页中断机构、地址变换机构。
2.1 页表机制作用:将用户地址空间的逻辑地址转换为内存空间的物理地址。
因为请求分页的特殊性,即程序的一部分调入内存,一部分仍在外存,因此页表结构有所不同。
如图:说明:(1)状态位P:指示该页是否已调入内存。
(2)访问字段A:记录本页在一段时间内被访问的次数或最近未被访问的时间。
(3)修改位M:表示该页在调入内存后是否被修改过。
若修改过,则换出时需重写至外存。
(4)外存地址:指出该页在外存上的地址。
2.2 缺页中断机构在请求分页系统中,每当所要访问的页面不在内存时,便产生缺页中断,请求OS将所缺的页调入内存。
缺页中断与一般中断的区别:(1)在指令执行期间产生和处理中断信号(2)一条指令在执行期间,可能产生多次缺页中断2.3 地址变换机构请求分页系统的地址变换机构。
是在分页系统地址变换机构的基础上,又增加了一些功能。
例:某虚拟存储器的用户空间共有32个页面,每页1KB,主存16KB。
假定某时刻系统为用户的第0、1、2、3页分别分配的物理块号为5、10、4、7,试将虚拟地址0A5C和093C 变换为物理地址。
解:虚拟地址为:页号(2^5=32)5位页内位移(1K =2^10=1024)10位物理地址为物理块号(2^4=16)4位因为页内是10 位,块内位移(1K =2^10=1024)10位虚拟地址OA5C对应的二进制为:00010 1001011100即虚拟地址OA5C的页号为2,页内位移为1001011100,由题意知对应的物理地址为:0100 1001011100即125C同理求093C。
请求分页存储管理设计

实验八请求分页存储管理设计一、虚拟存储器的相关知识:1.概述:虚拟存储器(Virtual Memory):在具有层次结构存储器的计算机系统中,自动实现部分装入和部分替换功能,能从逻辑上为用户提供一个比物理贮存容量大得多,可寻址的“主存储器”。
虚拟存储区的容量与物理主存大小无关,而受限于计算机的地址结构和可用磁盘容量。
作用:虚拟内存的作用内存在计算机中的作用很大,电脑中所有运行的程序都需要经过内存来执行,如果执行的程序很大或很多,就会导致内存消耗殆尽。
为了解决这个问题,Windows中运用了虚拟内存技术,即拿出一部分硬盘空间来充当内存使用,当内存占用完时,电脑就会自动调用硬盘来充当内存,以缓解内存的紧张。
举一个例子来说,如果电脑只有128MB物理内存的话,当读取一个容量为200MB的文件时,就必须要用到比较大的虚拟内存,文件被内存读取之后就会先储存到虚拟内存,等待内存把文件全部储存到虚拟内存之后,跟着就会把虚拟内存里储存的文件释放到原来的安装目录里了。
下面,就让我们一起来看看如何对虚拟内存进行设置吧。
2.请求分页虚拟存储系统是将作业信息的副本存放在磁盘这一类辅助存储器中,当作业被调度投入运行时,并不把作业的程序和数据全部装入主存,而仅仅装入立即使用的那些页面,至少要将作业的第一页信息装入主存,在执行过程中访问到不在主存的页面时,再把它们动态地装入。
用得较多的分页式虚拟存储管理是请求分页(demand paging),当需要执行某条指令或使用某个数据,而发现它们并不在主存时,产生一个缺页中断,系统从辅存中把该指令或数据所在的页面调入内存。
3.替换算法:替换规则用来确定替换主存中哪一部分,以便腾空部分主存,存放来自辅存要调入的那部分内容。
常见的替换算法有4种。
随机算法用软件或硬件随机数产生器确定替换的页面。
先进先出先调入主存的页面先替换。
近期最少使用算法替换最长时间不用的页面。
最优算法替换最长时间以后才使用的页面。
操作系统课后答案——第四章

第四章存储器管理1. 为什么要配置层次式存储器?这是因为:a.设置多个存储器可以使存储器两端的硬件能并行工作。
b.采用多级存储系统,特别是Cache技术,这是一种减轻存储器带宽对系统性能影响的最佳结构方案。
c.在微处理机内部设置各种缓冲存储器,以减轻对存储器存取的压力。
增加CPU中寄存器的数量,也可大大缓解对存储器的压力。
2. 可采用哪几种方式将程序装入内存?它们分别适用于何种场合?将程序装入内存可采用的方式有:绝对装入方式、重定位装入方式、动态运行时装入方式;绝对装入方式适用于单道程序环境中,重定位装入方式和动态运行时装入方式适用于多道程序环境中。
3. 何为静态链接?何谓装入时动态链接和运行时动态链接?a.静态链接是指在程序运行之前,先将各自目标模块及它们所需的库函数,链接成一个完整的装配模块,以后不再拆开的链接方式。
b.装入时动态链接是指将用户源程序编译后所得到的一组目标模块,在装入内存时,采用边装入边链接的一种链接方式,即在装入一个目标模块时,若发生一个外部模块调用事件,将引起装入程序去找相应的外部目标模块,把它装入内存中,并修改目标模块中的相对地址。
c.运行时动态链接是将对某些模块的链接推迟到程序执行时才进行链接,也就是,在执行过程中,当发现一个被调用模块尚未装入内存时,立即由OS去找到该模块并将之装入内存,把它链接到调用者模块上。
4. 在进行程序链接时,应完成哪些工作?a.对相对地址进行修改b.变换外部调用符号6. 为什么要引入动态重定位?如何实现?a.程序在运行过程中经常要在内存中移动位置,为了保证这些被移动了的程序还能正常执行,必须对程序和数据的地址加以修改,即重定位。
引入重定位的目的就是为了满足程序的这种需要。
b.要在不影响指令执行速度的同时实现地址变换,必须有硬件地址变换机构的支持,即须在系统中增设一个重定位寄存器,用它来存放程序在内存中的起始地址。
程序在执行时,真正访问的内存地址是相对地址与重定位寄存器中的地址相加而形成的。
14存储管理3分段段页式管理

段号 状态 页表大小 页表始址 0 1 1 1 2 1 3 0 4 1 段表
页表 主存
图4-22 利用段表和页表实现地址映射
2.地址变换过程
在段页式系统中,为了便于实现地址变换,须配 置一个段表寄存器,其中存放段表始址和段表长TL。 进行地址变换时,首先利用段号S,将它与段表长TL进 行比较。若S<TL,表示未越界,于是利用段表始址和 段号来求出该段所对应的段表项在段表中的位置,从 中得到该段的页表始址,并利用逻辑地址中的段内页 号P来获得对应页的页表项位置,从中读出该页所在的 物理块号b,再利用块号b和页内地址来构成物理地址。 图4-23示出了段页式系统中的地址变换机构。
2.页表
列出了作业的逻辑地址与其在主存中的 物理地址间的对应关系。 一个页表中包含若干个表目,表目的自 然序号对应于用户程序中的页号,表目 中的块号是该页对应的物理块号。 页表的每一个表目除了包含指向页框的 指针外,还包括一个存取控制字段。 表目也称为页描述子。
分页管理中页与页框的对应 关系示意图
段表寄存器 段表始址 + 段表 0 1 2 3 页表长度 + 0 1 2 3 b 块号 b 块内地址 页表 段表长度 > 段超长 段号S 页号P 页内地址
页表始址
图4-23
段页式系统中的地址变换机构
在段页式系统中,为了获得一条指令或数据,须 三次访问内存。第一次访问是访问内存中的段表,从 中取得页表始址;第二次访问是访问内存中的页表, 从中取出该页所在的物理块号,并将该块号与页内地 址一起形成指令或数据的物理地址;第三次访问才是 真正从第二次访问所得的地址中,取出指令或数据。 显然,这使访问内存的次数增加了近两倍。为了 提高执行速度,在地址变换机构中增设一个高速缓冲 寄存器。每次访问它时,都须同时利用段号和页号去 检索高速缓存,若找到匹配的表项,便可从中得到相 应页的物理块号,用来与页内地址一起形成物理地址; 若未找到匹配表项,则仍须再三次访问内存。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第十六讲存储器管理之请求分页存储管理方式
1 基本概述
请求分页管理是建立在基本分页基础上的,为了能支持虚拟存储器而增加了请求调页功能和页面置换功能。
基本原理:地址空间的划分同页式;装入页时,可装入作业的一部分(运行所需)页即可运行。
2 请求分页的硬件支持
为实现请求分页,需要一定的硬件支持,包括:页表机制、缺页中断机构、地址变换机构。
2.1 页表机制
作用:将用户地址空间的逻辑地址转换为内存空间的物理地址。
因为请求分页的特殊性,即程序的一部分调入内存,一部分仍在外存,因此页表结构有所不同。
如图:
说明:
(1)状态位P:指示该页是否已调入内存。
(2)访问字段A:记录本页在一段时间内被访问的次数或最近未被访问的时间。
(3)修改位M:表示该页在调入内存后是否被修改过。
若修改过,则换出时需重写至外存。
(4)外存地址:指出该页在外存上的地址。
2.2 缺页中断机构
在请求分页系统中,每当所要访问的页面不在内存时,便产生缺页中断,请求OS将所缺的页调入内存。
缺页中断与一般中断的区别:
(1)在指令执行期间产生和处理中断信号
(2)一条指令在执行期间,可能产生多次缺页中断
2.3 地址变换机构
请求分页系统的地址变换机构。
是在分页系统地址变换机构的基础上,又增加了一些功能。
例:某虚拟存储器的用户空间共有32个页面,每页1KB,主存16KB。
假定某时刻系统为用户的第0、1、2、3页分别分配的物理块号为5、10、4、7,试将虚拟地址0A5C和093C 变换为物理地址。
解:虚拟地址为:页号(2^5=32)5位页内位移(1K =2^10=1024)10位物理地址为物理块号(2^4=16)4位因为页内是10 位,块内位移(1K =2^10=1024)10位
虚拟地址OA5C对应的二进制为:
00010 1001011100
即虚拟地址OA5C的页号为2,页内位移为1001011100,由题意知对应的物理地址为:0100 1001011100即125C
同理求093C。
略
3 内存分配策略和分配算法
在请求分页系统中,为进程分配内存时,将涉及以下三个问题:
最小物理块数的确定;物理块的分配策略;物理块的分配算法。
3.1最小物理块数的确定
概念:最小物理块数:是指能保证进程正常运行所需的最小物理块数。
确定方法:与计算机的硬件结构有关,取决于指令的格式、功能和寻址方式。
3.2物理块的分配策略
内存分配策略:固定和可变分配策略
置换策略:全局置换和局部置换
三种合适的策略如下:
(1)固定分配局部置换(Fixecd Allocation,Local replacement):为每个进程分配固定数目n的物理块,在整个运行中都不改变。
如出现缺页,则从中置换一页。
(2)可变分配全局置换(VariableAllocatio,Global Repalcement):分配固定数目的物理块,
但OS 自留一空闲块队列,若发现缺页,则从空闲块队列中分配一空闲块与该进程,并调入缺面于其中。
当空闲块队列用完时,OS 才从内存中任选择一页置换。
(3)可变分配局部置换(VariableAllocatio,Local Repalcement):分配一定数目的物理块,若发现缺页,则从该进程的页面中置换一页,根据该进程缺页率高低,则可增加或减少物理块。
也就是若某进程频繁的发生缺页中断,则系统再为该进程分配物理块,知道缺页率减少到一定程度。
3.3 物理块的分配算法
在采用固定分配策略时,将系统中可供分配的所有物理块分配给各个进程,可采用以下几种算法:看课本p131,
(1)平均分配算法:将系统中所有可供分配的物理块,平均分配给每个进程。
缺点:未考虑各进程本身的大小。
(2)按比例分配算法:这是根据进程的大小按比例分配物理块的算法。
如果系统中共有n 个进程,每个进程的页面数为Si ,则系统中各进程页面数的总和为:
又假定系统中可用的物理块总数为m ,则每个进程所能分到的物理块数为bi ,将有:
b 应该取整,它必须大于最小物理块数。
(3)考虑优先权的分配算法:将系统提供的物理块一部分根据进程大小先按比例分配给各个进程,另一部分再根据各进程的优先权适当增加物理块数。
4 调页策略
什么时候将一个页面由外存调入内存?从何处将页面调入内存?这就是调页策略所要解决的问题。
4.1 何时调入页面?
预调页策略:将那些预计在不久便被访问的页预先调入内存。
这种调入策略提高了调页的效率,减少了I/O 次数。
但由于这是一种基于局部性原理的预测,若预调入的页面在以后很少被访问,则造成浪费,故这种方式常用于程序的首次调入。
请求调页策略:当进程运行中访问的页出现缺页时,则发出缺页中断,提出请求调页,由OS 将所需页调入内存。
这种策略实现简单,应用于目前的虚拟存储器中,但易产生较多的缺页中断,且每次调一页,系统开销较大,容易产生抖动现象。
注意:首次:预调页;运行时:请求调页。
4.2 从何处调入页面?
在请求分页系统中,通常将外存分成了文件区和对换区,文件区按离散分配方式存放文件,对换区按连续分配方式存放对换页。
系统有足够的对换区空间情况:运行前可将与进程相关的文件从文件区复制至对换区,以后缺页时,全部从对换区调页。
只从对换区调页。
系统没有足够的对换区空间情况:
页面不会被修改:凡是不会被修改的文件,每次都直接从文件区调页,换出时不必换出。
正因为没有被修改,因此不用换出,因为文件区存放的页面没改变。
只从文件区调页。
∑
==n i i S S 1
m S
S b i i ⨯=
页面可能被修改:若对可能会修改的文件第一次调页直接从文件区,换出时换至对换区,以后从对换区调页。
第一次从文件区调入以后从对换区。
从文件区/对换区调页
UNIX方式:凡未运行过的页面均从文件区调页,运行过的页面和换出的页面均从对换区调页。
5页面调入过程了解
过程如下:每当程序所要访问的页面未在内存时,便向CPU发出一缺页中断,中断处理程序首先保留CPU环境,分析中断原因后,转入缺页中断处理程序。
该程序通过查找页表,得到该页在外存上的物理块后,如果此时内存能容纳新页,则启动磁盘I/O将所缺之页调入内存,然后修改页表。
如果内存已满,则需按照某种置换算法从内存中选出一页准备换出;如果该页未被修改过,可不必写回磁盘;但如果此页已被修改,则必须将它写回磁盘,然后把所缺的页调入内存,并修改页表中的相应表项,置其存在位为“1”,并将此页表项写入快表。
在缺页调入内存后,利用修改后的页表,形成所要访问的物理地址,再去访问内存数据。
其实就是下面四步:缺页中断;保留CPU环境;缺页中断处理;访问内存数据
流程如下:。