操作系统实存储器管理技术

上传人:j****9 文档编号:54878901 上传时间:2018-09-21 格式:PPT 页数:31 大小:888.50KB
返回 下载 相关 举报
操作系统实存储器管理技术_第1页
第1页 / 共31页
操作系统实存储器管理技术_第2页
第2页 / 共31页
操作系统实存储器管理技术_第3页
第3页 / 共31页
操作系统实存储器管理技术_第4页
第4页 / 共31页
操作系统实存储器管理技术_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《操作系统实存储器管理技术》由会员分享,可在线阅读,更多相关《操作系统实存储器管理技术(31页珍藏版)》请在金锄头文库上搜索。

1、第8章 实存储器管理技术,8.1 引言 一、主存储器管理的重要性:操作系统最主要功能之一; (早期)容量有限,价格昂贵; (现今)主存容量仍为计算机资源中最关键、最紧张的“瓶颈”资源。 二、主存储器管理技术的分类: 实存储器管理; 虚拟存储器管理。,8.1.1 主存储器的物理组织、多级存储器 一、主存储器的结构 1功能:存放内核和用户程序的指令和数据,每一项信息都存放在主存的特定位置上。 2信息按“位”存放。地址-对存放信息的位置的编号。字节-计算机存储器的编址单位,每个字节由8位组成。字-若干字节组成。,二、多级存储组织,8.1.2 主存储器管理功能 一、主存分配 1要求:使多个程序同时驻留

2、在主存中,以提高CPU利用率。保证系统的高性能-提高存储利用率;提高主存的分配与释放速度。 2内容:主存空间的分配与释放。 3方法:主存空间分配表-记录主存空间分配情况;空闲区(自由区)-记录尚未占用的空间;有请求-查表-足够,分配,标志“已分配”;不够,等待分配.。,二、地址转换和重定位 1要求:程序不需事先约定存放位置,并且可以在执行过程中移动(浮动);可以运行只装入了一部分的程序,缩短程序的启动时间;研究和使用各种有效的地址转换技术以及相应的地址转换机构。 2内容:逻辑地址 转换 绝对地址用户程序 存贮管理 CPU执行 装入用户程序的一部分,其余暂留磁盘,以覆盖技术,再装入。,三、存储保

3、护和主存共享 1要求:保护各存储区中信息不被破坏和偷窃。 2内容:主存空间的共享和保护。 3措施:程序执行只能访问自己的区域,可读、可写;对共享区域的信息只可读,不可修改;不允许访问非自己、非共享区,不可读,不可写。 四、存储扩充 1要求:运行的程序应不受主存大小的限制,理想情况下应能运行任意大小的程序。 2内容:虚拟存储器-逻辑上扩充主存空间。当 用户程序逻辑地址空间主存绝对地址空间,8.2 固定分区 一、固定分区 1定义:把主存分成若干个固定大小的存储区(又称存储块);每个存储区分给某一个作业使用,直到该作业完成后把该存储区归还系统。 2分类:单道作业; 多道作业。 二、单道作业固定分区技

4、术 1方法:用户区作为一个连续的分区,分配给一个作业使用。,2存储保护界限RegCPU内当前可供用户使用的主存区域的起始地址内容一般不变,只有修改操作系统功能时,才可改变。 3作业装入 作业地址用户区:直接装入。 作业地址空间用户区:覆盖技术。 三、多道作业的固定分区技术,1特点:把分配的用户区预先划分成若干个连续区,每个区大小可相同或不相同。一旦分区完毕,分区的个数固定,各分区的大小固定。 2分配:一个作业分给一个足够大的主存分区,主存分区的大小作业大小;不允许两个作业同时放于同一个分区中。 3问题:剩下的空闲部分(存储碎片)无法使用,降低了主存的利用率。 4存储分块表:存储器管理的数据基。

5、,5存储保护 (1)方法:使用一对“界地址寄存器”。 (2)过程: 作业 操作系统:分配主存空间调入 主存, 登记作业的信息入作业表作业调度程序 该作业(或进程) 操作系统:读主存中的作业表(PCB)被分配给CPU, 作业的大小 进程调度程序 作业在主存起始地址, 访问主存时,核对地址,合法,允许访问; 否则:产生一个“地址”越界中断,由系统处理。 四、固定分区中的重定位方法-静态重定位。,8.3.1 可变分区存储管理的概念 一、可变分区 1特点:在作业进入主存时,按该作业的大小建立分区。分区个数可变,每个分区大小不固定。 2方法:,二、可变分区存储管理中数据基的组织方法 1存储分块表 (1)

6、方法:同固定分区。 (2)缺点: 由于分区个数是变化的,所以表长不好确定,造表格管理困难。 分配主存时,查找速度慢。 2分开设置两个存储管理表 (1)方法:已使用分区表(记为UBT)-登记和管理系统中的已分配的分区。空闲分区表(记为FBT)-登记、管理系统中的空闲分区。,(2)好处:减少查表长度,提高查找速度。 3空闲存储块链 (1)方法:用“链指针”将空闲分区链结在一起,构成一条空闲存储块链。 (2)例:每个空闲存储块的起始的若干个字节分为两部分:前一部分作为链指针,指向下一空闲存储块的起始地址;后一部分指出本空闲存储块的大小。系统用一固定单元-空闲存储链的头指针;指出该链中的第一块空闲存储

7、块的起始地址。,最后一块空闲存储块的链指针中放着链尾标志(如0)。,(3)好处:管理和维护比较简单。,8.3.2 存储分配算法 一、最先适应法 1方法:顺序查找到第一个满足作业长度的空闲区,分割。 2优点:简单、查找时间短 3缺点:把大空间分为许多小区一碎片(主存空间利用率降低) 4改进:空闲区表按地址顺序从小大登记;利用低地址部分,高地址部分保持较大空闲;收回时需调整空闲区表,按地址顺序插入 二、最佳适应法 1方法:按作业要求挑选一个最小空闲区(空闲区表按长度登记) 2优点:不分割更大的区域,便于装入;使分区内未用部分浪费的最少。 3缺点:分割区的极小空闲区无法利用;收回分区,需调整空闲区表

8、。 三、最坏适应法 1方法:挑选最大空闲区,使分割后的剩余空间不太小;空闲区表按长度顺序排列,第一空闲区最大;收回分区,需调整空闲表 2好处:可用于可变分区分配技术。 四、问题 1合并相邻分区-各空闲分区按起始地址顺序排列。 2空闲分区表目的多少-多:浪费主存空间;少:使进程因等待表目而阻塞,降低系统性能。 3使用空闲存储块链法:按块的大小或地址次序来对链上分区排序。优点:对空闲分区管理不占用主存。,8.3.3 存储器的紧缩和程序的浮动 一、碎片问题和存储器的紧缩 1碎片问题 (1)碎片:难以利用的小的空闲分区。 (2)原因:可变分区存储管理方式。 (3)例:(图8.8)作业6:60K;主存空

9、闲分区总和:82K; 每一空闲区大小均小于60K; 作业6无法进入主存运行。-降低了多道程度; 主存空间的大量浪费。 2碎片问题解决 (1)将程序分成几个部分装入不同的分区中- 改变碎片问题; 程序管理、执行复杂。 (2)将小的碎片集中起来-小的碎片集中为大的分区; 移动用户程序到主存的一端(存储器的“紧缩”/“澄清”)。 二、程序浮动 1程序浮动:移动主存中的用户程序,进行主存的压缩。 2问题:移动后的程序能否执行。 3需要解决的问题: (1)重定位工作由谁来做? (2)怎样保证移动后,可从程序的断点开始继续运行。,8.3.4 动态重定位的可变分区多管理 一、动态重定位 1定义:在程序执行的

10、过程中,进行相对地址到主存绝对地址的转换(地址映象)。-在每次访问主存单元前,进行地址转换。 2例:(图8.9),二、动态重定位的硬件支持、软件算法 1硬件:定位寄存器;加法器。一对界地址寄存器。 2软件算法 (1)在某个分区被释放后立即进行紧缩-系统中总是只有一个连续的空闲分区。空闲分区表管理、分配空闲块非常容易;占用机时。 (2)当“请求分配模块”找不到足够大的空闲分区分给用户时再进行紧缩。 紧缩次数少;空闲分区表管理复杂。. 存储分配算法框图(图8.10)。. 优点:消除碎片,有效利用主存空间;提高多道程序系统的多道程度,提高了CPU和外设的利用率。. 缺点:需要动态重定位硬件机构支持,

11、提高了成本,降低了速度; 紧缩工作要占用机时。,8.4 多重分区(多对界地址)管理 一、单对界地址管理技术 1定义:每个用户占据主存的一个分区;存储保护只需使用一对界地址寄存器。 2弊病: (1)解决碎片问题,要移动程序进行存储器“紧缩”,需要硬件支持。 (2)进程间共享数据不方便。 二、多重分区技术 1定义:系统中设置了多对(34对)界地址寄存器;为作业分配主存时,可按界地址Reg对的个数为其分配多个不相邻接的空闲分区。 2好处:改善碎片情况,又便于共享。 3注意:多重分区的多重程度不宜过多,否则会增加管理的复杂性。,8.5 简单分页 . 分区存储管理技术的主要缺点:主存使用的低效率和存储分

12、配与释放的低速度。 一、分页存储管理技术中的基本作法 1等分主存 (1)页架:主存划分成相同大小的存储块。 (2)页架号:各页架从0开始依次连续编号-0,1,2。 2用户逻辑地址空间的分页 (1)页:用户的逻辑地址空间划分成与页架大小相同的若干部分。 (2)页号:各页从零开始依次连续编号-0,1,2。,3逻辑地址的表示 (1)相对地址:用户的逻辑地址,一般从基地址“0”开始编址。 (2)分页系统中,相对地址表示:(p,d)。(虚地址) 页内地址页号 若给定一个虚地址A,页面大小为L。则:例: L=1000B; 则,第0页: 0999;第1页:10001999。 设:A=3456;则:p=3,d

13、=456; 故:A=3456 表示为(3,456)。 二、主存分配原则 . 原则:系统以页架为单位把主存分给进程;分给一个进程的各页架可以是不相邻/连续的。 . 页面与页架对应。 . 一个作业的相邻的连续的几个页面,被装入主存中任一不相邻的页架中。 1页表 (1)作用:指出每个进程的各页放在主存的哪些页架中。每个进程有一个页表。,(2)例:(图8.11)2分页系统中的地址结构该地址场有两部分:该地址所在页面的页号;页内地址,3页面尺寸应是2的幂编址:mbit(0一m-1)页内地址n 块(页)长2n字节页号m-n页数2m-n个 例:逻辑地址为16位,页的大小为1KB(1024byte); 则,逻

14、辑地址4101的页内地址:1K=1024=210,n=10(90位);m-n=6; 而:逻辑地址4101=212+22+20表示为0001000000000101B。 所以:4101(4,5)。,三、地址转换过程 1从逻辑地址左边抽取页号。 2以页号为索引查页表,找出该页存放的主存页架号。 3由页架号取代逻辑地址的左边(页号)部分,与页内地址合并为物理地址, 访问主存。即:物理地址结构- 四、简单分页的优点 1基本没有页内碎片; 没有不可再用的页外碎片,所以主存利用率高。 2分配、释放存储块速度快。 3管理简单(同固定分区)。,86 简单分段 一、问题 分区页式存储管理,逻辑地址连续,用户编制

15、大型程序、程序共享不方便。 希望:用户程序可分为若干段,每一段独立编程(编址)。 二、进程的逻辑地址空间 1要求:每个进程的地址空间按照程序自身的自然逻辑关系若干段;每个段有自己的段名(段名通常由程序员给出)。 2段号:系统为方便管理,给每段规定的编号(内部段名)。 3段内地址:每个段的地址空间都从“”地址开始编址成连续的线性地址。 4虚拟地址结构:段名s、段内地址w。5特点:每段逻辑地址从“0”开始,一段内地址是连续的; 段与段间的地址是不连续的。,三、程序的地址结构 1指令的地址场的结构:2例:指令的地址24位; 段号长8位,段内地址长16位;则:最多的段数为28256个段,最大段长为21

16、664KB。 四、主存分配 1主存分配以段为单位。 2每段分配一块连续的主存分区。 3一个进程的各段所分到的主存分区可以是不相邻/连续的分区。 五、段表 1段表由操作系统建立内容:分段长度 在主存的起始位置 限长 始址,2例:,六、段的地址转换 1从逻辑地址中提取段号。 2以段号为索引,查段表。 3将段内地址与段的长度比较:若段内地址段的长度,则引起非法访问中断(越界访问)。若段内地址段的长度,合法访问。 4物理地址段的起始地址段内地址 七、简单分段的优点:没有段内碎片,只有外部碎片。 八、简单分页与简单分段的区别 1简单分页:对用户是不可见的。 2简单分段:用户是可见的;分段需要用户提供支持;用户需要知道系统的最大段长度的限制。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号