第四章存储器管理操作系统经典课件和讲义值得看存储器管理

上传人:M****1 文档编号:591930181 上传时间:2024-09-18 格式:PPT 页数:125 大小:1.90MB
返回 下载 相关 举报
第四章存储器管理操作系统经典课件和讲义值得看存储器管理_第1页
第1页 / 共125页
第四章存储器管理操作系统经典课件和讲义值得看存储器管理_第2页
第2页 / 共125页
第四章存储器管理操作系统经典课件和讲义值得看存储器管理_第3页
第3页 / 共125页
第四章存储器管理操作系统经典课件和讲义值得看存储器管理_第4页
第4页 / 共125页
第四章存储器管理操作系统经典课件和讲义值得看存储器管理_第5页
第5页 / 共125页
点击查看更多>>
资源描述

《第四章存储器管理操作系统经典课件和讲义值得看存储器管理》由会员分享,可在线阅读,更多相关《第四章存储器管理操作系统经典课件和讲义值得看存储器管理(125页珍藏版)》请在金锄头文库上搜索。

1、主讲:刘 拥 民L2021/8/141主存管理的基础主存管理的基础实存管理实存管理虚拟存贮管理虚拟存贮管理 ( (Virtual storage)Virtual storage)2021/8/142今今天天虽虽然然主主存存价价格格已已相相当当便便宜宜,但但主主存存容容量量仍仍然然是是计计算算机机四四大大硬硬件件资资源源中中最最关关键键而而又又最最紧紧张张的的“ 瓶瓶颈颈”资资源源。因因此此对对主主存存的的管管理理和和有有效效使使用用仍仍然然是是今今天天操操作作系系统统十十分分重重要要的的内内容容。许许多多操操作作系系统统之之间间最最明明显显的的区区别别特特征征之之一一往往往往是是所所使使用用的

2、存储管理方法不同。的存储管理方法不同。实实例例:OS/360-MFT采采用用固固定定分分区区存存储储管管理理技技术术,OS/360-MTV是是采采用用可可变变分分区区存存储储管管理理技技术术,OS/2,WindowsNT, DOS/VSE是是采采用用虚虚拟拟存存储管理技术。储管理技术。主主存存储储器器管管理理技技术术可可分分为为两两大大类类:实实存存储储器器管理和虚拟存储器管理。管理和虚拟存储器管理。2021/8/143(广义) 存储器的层次寄存器高速缓存主存储器磁盘缓存固定磁盘可移动存储介质2021/8/144存储层次结构快速缓存:DataCacheTLB(TranslationLookas

3、ideBuffer)内存:DRAM,SDRAM等;外存:软盘、硬盘、光盘、磁带等;2021/8/145存储器的分类存储器分为主存储器(主存)和辅助存储器(辅存)。主存:处理器可直接存取指令和数据的存储器;主存空间一般可以分成两部分A、系统区用以存放OS常驻主存部分,B、用户区主存的管理就是对用户区进行管理。2021/8/146主存管理的基础主存管理的基础(1) 主存的物理组织和逻辑组织主存的物理组织和逻辑组织(a) 主存分三级:主存分三级:为能更多的存放并更快地处理用户信息目前许多计算机把存储器分为三级。2021/8/147高速缓存主存外存cpu可访n+k几百knM几百Mn+MnG(G=1kn

4、)2021/8/148用用户户的的程程序序在在运运行行时时应应存存放放在在主主存存中中,以以便便处处理理机机访访问问。但但是是由由于于主主存存容容量量有有限限。所所以以把把那那些些不不马马上上使使用用的的程程序序、数数据据放放在在外外部部存存储储器器(又又称称次次级级存存储储)中中。当当用用到到时时再再把把它它们们读读入入主主存存。图图中中的的三三级级存存储储器器,从从高高速速缓缓冲冲存存储储器器(简简称称缓缓存存)到到外外部部存存储储器器(以以后后简简称称外外存存),其其容容量量愈愈来来愈愈大大,而而访访问问数数据据的的速速度度则则愈愈来来愈愈慢慢,价价格格也也愈愈来来愈愈便便宜宜,如如IB

5、M的的缓缓存存的的最最大大传传输输速速度度为为每每双双字字120225毫毫微微秒秒,主存的传输速度每字主存的传输速度每字1微秒。微秒。)2021/8/149(b) 程序只能在主存中运行程序只能在主存中运行字节字双字块段体(c) 物理地址:物理地址:(绝对地址,实地址)存储控制部件能够识别的主存单元编号(或字节地址),也就是主存单元的实际地址(需需要区分存贮体中不同的存贮单元,统一编号要区分存贮体中不同的存贮单元,统一编号, 这些编号称为地址这些编号称为地址)2021/8/1410存储空间(2)存储空间:存储空间:主存中一系列存储信息的物理单元的集合。这些单元的编号,称为物理地址物理地址或绝对地

6、址、内存地址。或绝对地址、内存地址。存储空间的大小是由主存的实际容量决定的。存储空间按字节编址,从0开始,扩展到系统配置可用的最大数量,比如,1M、32M、128M、256M等。一个编译好的程序存在于它自己的地址空间中,当要它在计算机上运行时,才把它装入存储空间。2021/8/1411(d)逻辑地址:逻辑地址:(相对地址,虚地址)用户的程序经过汇编或编译后形成目标代码,目标代码通常采用相对地址的形式。 A、 其首地址为其首地址为0,其余指令中的地址都相对,其余指令中的地址都相对于首地址来编址。于首地址来编址。 B、 不能用逻辑地址在内存中读取信息。不能用逻辑地址在内存中读取信息。地址空间一个目

7、标程序所限定的地址集合。实例说明:实例说明:逻辑地址控制逻辑地址控制指程序中相对地址的全体。指程序中相对地址的全体。物理地址空间物理地址空间 相对于实际的主存地址空间。相对于实际的主存地址空间。2021/8/14121、地址空间用高级语言编程时,要定义变量、函数,程序中有函数调用,有转向等,都是以它们的名字进行的,程序员在一个“名字空间”驾御自己的程序。通常把程序员用的地址空间为名空间。源程序必须经过编译才能执行。程序将被安排成一个从地址0开始的地址空间。这就成为可以执行的目标程序,并存入一个以.exe结尾的文件中。(编译程序不知道以后操作系统将把程序装入何处,只好从0地址开始编址。)目标程序

8、中指令地址都是相对0编址的,使用的是相对地址、逻辑地址。可以执行并不就能执行,还必须由操作系统调入内存才能执行。通常把编译程序形成的从0开始编址的地址空间称为作业的地址空间。(每个可执行程序都有一个自己的地址空间。)2021/8/1413程序执行过程与地址空间的转换过程2021/8/1414例:例:例:例:Address:movAx,1Obj目标地址名空间编译地址空间EXE文件装入存贮空间2021/8/1415 因为多道程序系统中,主存将存放多道作业,而因为多道程序系统中,主存将存放多道作业,而程序员在编写程序时,不可能了解自己的程序将放在主程序员在编写程序时,不可能了解自己的程序将放在主存中

9、何处运行,不可能用存中何处运行,不可能用绝对地址绝对地址来编写程序。来编写程序。2021/8/14161. 地址映射地址映射:将用户程序中的逻辑地址转换为运行时由机器直接寻址的物理地址。(逻辑地址物理地址)当程序装入内存时,操作系统要为该程序分配一个合适的内存空间,由于程序的逻辑地址与分配到内存物理地址不一致,而CPU执行指令时,是按物理地址进行的,所以要进行地址转换。实质上:实质上:这个地址变换过程,是把作业地址空间中使用的逻辑地址变换成主存空间中的物理地址的过程,这种变换就是地址映射(重定位重定位)。2021/8/1417从用户工作环境来看从用户工作环境来看 运行一个用户程序的过程运行一个

10、用户程序的过程在操作系统中,把编好源程序后上机调试的工作分成四个步骤,称为四个作业步:编辑编译连接运行2021/8/14182. 重定位:重定位:把程序中相对地址变换为绝对地址把程序中相对地址变换为绝对地址举例:0LOAD1,62ADD1,84STORE1,106A8B10相对LOAD1,6ADD1,8STORE1,10AB100102104106108程序装入程序装入主存部分矛盾地址单元不变换会出错1002021/8/1419上图的程序中指令“load1,500”欲将相对地址500处的数据y装入至寄存器1中,但是该程序装入内存时,y已经被装入到500+1K即1524单元,因此作为操作数的50

11、0必须改为内存地址1524。相对地址500到1524的转化称为地址重定位。2021/8/1420逻辑地址、物理地址和地址映射2021/8/14214.2地址重定位1、静态重定位2、动态重定位3、分页重定位(虚存)(虚存)分类方式的依据根据地址变化进行的时间及采用的技术手段不同。2021/8/14221、静态重定位如果在装入作业的同时就将其中的逻辑地址修改成对应的内存地址,称为静态重定位。优点:这将加快作业的运行速度。缺点:作业一旦被装入内存(主存),就不允许再移动。但是我们知道事实上,在多道程序设计环境下,也不可能事先决定把一个程序固定在内存的指定地方。也就是程序开始运行前,程序中各与地址相有

12、关的项均已重定位完(即已将程序中的相对地址转换成绝对地址了)。2021/8/1423(c) 地址映射的方式:地址映射的方式:编程或编译对确定地址映射关系,不灵活。静态地址映射在装入时实现调整地址要有标识每装入时都可要定位装入后不再变(静态)2021/8/14242、动态重定位在装入作业时不修改其中的逻辑地址,在运行到程序指令时,根据指令格式判断出是逻辑地址,才将它映射为对应的内存地址,随后做指令所指明的操作逻辑地址的动态重定位。评价:会减缓指令的执行速度,但允许将程序分配在内存的任何地方,且允许程序在内存移动。因此在CPU速度很快,又必须实行多道程序设计的情况下,通常都采用动态重定位。 也就是

13、在处理机每次访问主存时,由动态地址变换机构(硬件)自动进行把相对地址转换为绝对地址。 2021/8/1425动态重定位在执行寻址时重定位访问地址时通过地址变换机构改变为内存地址mouAx(500)12.3mouAx(500)12.31005001100150010001000cpu运行主存B2021/8/1426特点:特点:(1)任意装入内存区域(不要求占用一个连续的内存)(2)只装入部分代码即可运行(3)改变系统时不需改程序(程序占用的内存空间、动态可变,主程序从某一个存贮区域移动时,只需修改得定位存器B即可)(4)程序可共享2021/8/1427IBM.PC的情况源程序.obj.EXE.c

14、om编译绝对地址:装入即可运行.com文件64k(可以)2021/8/1428静态、动态重定位静态重定位:作业在执行前集中一次由重定位装配程序完成,由软件完成由软件完成。动态重定位:地址的转换是在作业的执行中,随着每条指令和数据的访问进行的,由硬件地址转换机构硬件地址转换机构实现。2021/8/1429第4章 存储管理6.1引言6.2单一连续区存储管理6.3分区存储管理6.4覆盖和交换技术6.5页式和段式存储管理6.6虚拟存储6.7高速缓冲存储器6.8存储管理举例存储管理是指存储器资源(主要指内存并涉及外存)的管理。存储器资源的组织(如内存的组织方式)地址变换(逻辑地址与物理地址的对应关系维护

15、)虚拟存储的调度算法2021/8/1430存储管理主要涉及到的有四点:存储管理主要涉及到的有四点:(a)主存(内存)的分配和回收按用户要求把适当的存储空间分配给相应的作业(进程)。(b)地址映射在一般情况下,一个作业装入时分配到的存储空间和它的地址空间是不一致的。因此,作业在装入的时候,或在其执行时,必须把程序地址空间中的逻辑地址转换为内存空间对应的物理地址。(c)“扩充”主存(内存)容量借助虚拟存储技术或其它交换技术,达到在逻辑上扩充主存容量。即为用户提供比主存物理空间大得多的地址空间,以至使得用户感觉他的作业是在这样一个大的存储器中运行。(d)存储保护确保各道用户作业都在所分配的存储区内操

16、作,互不干扰,防止一道程序破坏其它作业的信息,特别是防止破坏其它系统程序。(zy)提高主存利用率使多道程序共享主存,最好能共享主存中的信息。使多道程序共享主存,最好能共享主存中的信息。2021/8/1431存贮管理功能:存贮管理功能:(a) 映射逻辑地址为存贮地址地址映射映射逻辑地址为存贮地址地址映射(b) 在多个用户间分配主存主存分配在多个用户间分配主存主存分配算法数据结构程序研究主存分配算法,以及算法的性能(c) 对主存中信息提供保护存贮保护对主存中信息提供保护存贮保护(d) 扩扩充充逻逻辑辑存存区区主主存存扩扩充充(这这里里指指的的扩扩充充并并非非指指硬硬件件设设备备上上的的扩扩充充,而

17、而是是用用存存储储管管理理软软件件来来实实现现逻逻辑辑上上的的扩扩充充即即所所谓谓的的虚虚拟拟存贮技术存贮技术)2021/8/1432二、主存储器二、主存储器 (支持支持OS运行的硬件环境中一运行的硬件环境中一个重要方面个重要方面)1.任何程序要在CPU上运行,都必须先放入必须先放入主存。主存。多道程序放入,互不影响保护机构操作系统空间和用户程序空间OSOS空间用户空间主存2021/8/14332. 存贮器类型存贮器类型RAMrandomaccessmemory可读写,随机存贮器ROMreadonlymemory只读存贮器(不可改程序存贮)BIOSEPROMPROM可改写ROM用特殊和紫外线照

18、射芯片用有特殊PROM写入器可编程写入2021/8/1434设备驱动器用户OSRAMIBMPC在MS/DOS下内存分区ROM48K8K基本输入/出系统程序BIOS40KROM32KBCBASIC8KB空闲2021/8/14353. 存储分块存储分块存储的最小单位称为“二进位”,它包含的信息为0或1。存储器最小单位编址单位是字节,有8位、16位等。“双字”是由两个字组成,以“四字”IBM大型机为“字”。两个字节组成“字”。把存储器分为“块”便于管理分配,在为用户分配主存空间时,以块为最小单位:16字节(一块)PC机64字节(一块)PDP-11机2k字节(一块)IBM370机、IBM大型机2021

19、/8/14364. 存储保护存储保护存放在主存的用户程序和操作系统,以及它们的数据,很可能受到正在CPU上运行的某用户程序的有意或无意的破坏,这可能会造成十分严惩的后果。所以对主存中的住处加以严格的保护,使操作系统及其它程序不被错误的操作所破坏,是其正确运行的基本条件之一。2021/8/1437(1) 界界地地址址寄寄存存器器产生越界中断(存贮器保护中断),在CPU中设置一对界限寄存器来存放该用户作业在主存中的下限和上限地址。10005000OSUser1Jump6000User2作业在主存中的上限地址将6000与下限地址5000比较,则越界中断100060002021/8/1438(2) 存

20、存储储保保护护键键:(五位二进位/每块组成)其中最左四位是保护键,最右一位是取保护标志位。A块B块C块001010100101000存储键取保护位0不保护1保护如图:2021/8/1439(3) 主存分配:主存分配:算法数据结构程序进程程序数据进程程序数据PCB(a) 分配策略分配策略(计算计算)放置策略决定放的位置调入策略装入时机(什么时刻调入)淘汰策略建立空闲区(b) 数据结构:队、表数据结构:队、表(c) 地址映射地址映射2021/8/1440(4) 存贮保护:存贮保护:越界保护范围存贮键保护存贮权限(5) 主存扩充:逻辑存贮区扩充主存扩充:逻辑存贮区扩充(利用辅存)2021/8/144

21、14.3 连续存储空间管理4.2.1单用户连续存储管理4.2.2固定分区存储管理 4.2.3可变分区存储管理 2021/8/14424.2单一连续分配在单道环境下,不管是单用户系统,还是单道批处理系统,进程执行时除了系统占用一部分主存外,剩下的主存区域全部归它使用。主存可以划分为三个部分:系统区,用户占用区和空闲区。用户占用区是一个连续的存储区域,所以称为单一连续区存储管理。它适用于单道批处理系统和目前的个人机系统。1、存储区域分配2、存储区域回收2021/8/1443(1)单一连续区分配单一连续区分配(a)概要:存区分为概要:存区分为o.s连续区和用户连续区连续区和用户连续区o.s区用户区越

22、界R受保护o.s存取区特权管态目态2021/8/1444(b) 简单、低放、单一用户简单、低放、单一用户单用户o.s的内存管理十分简单,因为存贮器在任何时候都只保存一个用户进程,除o.s本身占据的内存外都可分配给用户使用。2021/8/1445方案:方案: o.s可可以以占占据据RAM的的底底部部(a)或或顶顶部部(b) 也也可可以以部部分分在在内内存存顶顶部部的的Rom中中,另另一部分存放一部分存放RAM底部底部(c)2021/8/1446例如:例如:例如:例如:IBMPC在MS/Dos下,其内存分配便条用(c)其装有设备驱动程序的8k.Rom占据IM地址空间的最高区通常称Rom中的这些设备

23、驱动程序为BIOS用户程序o.s(a)用户程序o.s(b)Rom设备驱动程序o.s用户程序(c)2021/8/14474.2.1存储区域分配2021/8/14484.2.2存储区域回收2021/8/1449特点:单一连续区域分配采用静态分配与静态重定位方式,也就是说作业或进程一旦进入主存,就要一直等到它运行结束才能释放主存。缺点:(1)不支持多道程序;(2)不管主存的需要量大小,都将独占用户可用区,从而使主存的的利用率不高;(3)当用户的主存需要量超过主存容量时,不能运行2021/8/14504.3分区管理分区存储管理是在单一连续区管理的基础上发展起来的,支持多道程序设计的一种最简单的存储管理

24、方案。除了系统占用区以外,它把用户区域划分成若干大小不等的区域,一道作业占据一个分区。分区管理的方式:1、固定分区2、可变分区。2021/8/14514.3.1固定分区固定分区:如果把内存用户区域划分成若干个边界固定的区域,每个作业驻留在其中的一个区域中。特点:能够支持多道程序设计。参与多道运行的最大道数不能超过分区个数;作业尺寸受分区大小限制;每个分区中一般都有“碎片”。2021/8/14522021/8/1453o.s区20k28k60k90k124k256k0区1区2区3区4区区号 大小 起址状态123420k28k60k128kinusingNuL8k32k64k128kinusing

25、NuL(存贮分块表MBT)2021/8/1454(b) 特点特点由操作员划分分区MBT应放在操作系统区内,填分区表多道程序零头缺缺点点:不允许两个作业同时放于同一个分区中剩下的空闲部分称为存碎片,降低了主存利用率。2021/8/14554.3.2可变分区可变分区:内存区除了操作系统占据部分外,不再划分为固定分区。一个作业申请内存时,按照当时内存的具体情况,根据作业的尺寸,选择一个合适的空闲区分配给它。作业被安置的地方和大小都是动态可变的2021/8/1456可变分区管理的分配算法1 1)最先适应分配算法)最先适应分配算法 2 2)下次适应分配算法)下次适应分配算法3) 3) 最优适应分配算法最

26、优适应分配算法 4 4)最坏适应分配算法)最坏适应分配算法5) 5) 快速适应分配算法快速适应分配算法 2021/8/1457(3) 可变分区可变分区(a) 概要:概要:存贮空间的划分在作业装入时进行(事先并未划分成一块块分区),且使分区大小与作业大小一致(按作业大小建立)分区大小、个数,不固定的(系统启动时,整个主存除o.s块外,其余主存区可看成是整个一个分区)。O.S自由分区0512k1536k2021/8/1458可变分区分配及存储分块图2021/8/1459寻找一个容纳作业的空白区分裂该区,(分配区和空白区)修改两个表返回分配区序号和始址有:首次适应、循环首次适应、最佳适应、最坏适应算

27、法。2021/8/1460将空白区按存贮顺序链成一个队列,用一指针指向队首分配时将找到的第一个满足要求的空白区分配给它。(i)首次适应算法(FirstFit:FF)(c) 分区管理算法分区管理算法(可适应于固定分区及可变分区可适应于固定分区及可变分区)2021/8/1461例:例:例:例:指针10k60k90k20k有四块空白区(从低地址高地址),来了一个作业需分配19k内存。2021/8/1462指针10k60k90k20k41k在高地址空白区中保持较大空白区(每次从10k开始分配寻找)。解:解:解:解:FF特点:特点:2021/8/1463(ii)循环首次适应(Nextfit:NF)将空白

28、区组成环状队列,按循环顺序寻找空白区。(与FF区别,头指针从低地址开始向高地址循环移动)12指针移动使得小空白区均匀分布,易于与其它空白区合并。NF特点:特点:2021/8/1464(iii)最佳适应算法(bestfit:BF)将空白区按大小排成队列,寻找时总是以最小的空白区开始,找到第一个合适的分区指针10k60k90k20k例:例:例:例:来一个19k的作业2021/8/1465最佳地利用分区;开销比较大,并不是最好算法。指针10k20k60k90k1k特点:特点:解:解:解:解:2021/8/1466(iv)最坏适应算法(Worstfit:BF)将空白区排序(按从大到小)找最大空白区如上

29、例:指针90k60k20k10k71k不会出现小的空白区。特点:特点:2021/8/1467例例例例:设系统空白链表为指针7k3k10k8k20k5kabcdef用户先后申请7.5k,4k试用四种算法,试求出分配块2021/8/14683k5k7k8k10k20kbfadceBF:FF:c,a3k3k2.5k8k20k5kabcdefNF:c,d7k3k2.5k4k20k5kabcdef2021/8/14698.5k10k8k7k5k3kbfadceWF:e,ed,f3k1k7k0.5k10k20kbfadce2021/8/1470可变式分区与固定式分区分配方案相比,一般来说其存储空间的利用率

30、高些,但是,由于存在着一些分散的,较小的空白区,仍然不能充分利用称之为存储器的“零头”。2021/8/1471(d) 碎碎片片(零零头头)问问题题:存存在在于于已已分分配配的的分分区区之之间的一些不能充分利用的空白区间的一些不能充分利用的空白区(i)原因:请求释放使存区分割(ii)碎片总和nk,但不能装入nk作业2021/8/1472(iii)解决的方法:(I)将程序装入分散存区中多重分区Job1Job2Job3RR11RR12Job4部分2Job4部分1RR21RR222021/8/1473(II)将碎片集中(紧凑或拼接)可重定位分配Job1Job2Job3Job4可重定位分区分配法是利用分

31、区的“拼接”(对空白区而言)或“紧凑”(作业程序而言)技术解决“零头”。2021/8/1474分区的释放 作业运行结束后,回收其所占分区。随着作业不断地进入内存而又陆续结束,内存中将会有许多个不连续的程序分区,同时也会有许多个不连续的空闲分区。2021/8/1475检查是否与空白区相邻,是则合并成一个大空白区修改两个表(返回分配区与空白区序号和始址)(ii)分区回收算法2021/8/1476假定:欲回收的当前分区用C表示,其前面的空闲区和后面的空闲区分别用B和F表示。(1)C与B和F都不相邻。此时系统中将增加一个空闲区。(2)C与B相邻但不与F相邻。此时系统将把当前分区并入前一个空闲区B,系统

32、中空闲区个数不变。(3)C与F相邻但不与B相邻。此时系统将把当前分区并入后一个空闲区F,系统中空闲区个数也不变。(4)C与B及F正好都相邻。此时系统将把B、C及F合并成一个空闲区,系统中空闲区个数将减少1个。2021/8/14774.6覆盖与对换为了扩充内存,只把那些当前需要执行的程序段和数据段放在内存。其余的部分放在外存上,这样,在内、外存之间必然有一个信息交换问题。在多道程序环境下,用于扩充内存的,覆盖与对换就是这种交换的的两种方法。覆盖与对换并不能实现真正的“扩大主存”,它是一种虚拟技术。覆盖与对换都是为了运行比主存还大的作业的技术,前者完全有用户控制,比较难以驾驭。后者要求在辅存开辟对

33、换区,并增设对换程序,实施进程在主存和对换区的交换。是系统自动进行而对于用户是透明的。2021/8/1478(6) 覆覆盖盖(overlay): 指指一一个个作作业业的的若若干干程程序序段段(或或数数据据段段)或或几几个个作作业业的的某某些些部部分分间间共共享享某某主存空间主存空间(a) 目标:用较小的存区满足较大的存区要求目标:用较小的存区满足较大的存区要求(b) 程程序序的的分分析析:并并不不是是作作业业的的每每一一部部分分都都是是时时要用的时时要用的2021/8/14791、覆盖技术覆盖技术要求程序员提供一个清楚的覆盖结构。程序员要把一个程序划分成不同的程序段,并规定好它们的执行和覆盖顺

34、序。操作系统则根据程序员的覆盖结构,让后来的程序段进入已经运行完的程序段的区域,完成程序段之间的覆盖。实例:MS-DOS的命令解释程序COMMAND.COM,它开辟了一个覆盖区,必要的时候可以让用户程序实施覆盖,以支持稍大一些的程序运行。2021/8/1480mainA20kA0,30kB0,40kB1,30kA2,30kA1,60kA4,40kA3,20k例:例:例:例:2021/8/1481B0,40kB1,30kA1,60kA2,30kA3,20kA4,40kmain20k覆盖段040k覆盖段160k覆盖段240kAmain20kA0,30k则总计270k160k内存即可可装入2021/

35、8/1482(c) 注意:注意:(i)每次仅放入作业的一个部分(ii)覆盖程序员事先确定(iii)系统自动覆盖虚存(iv)可与其内存分配方法结合使用2021/8/14832、对换对换(swap)当有新的程序需要调入运行而无空闲空间可供分配时,由操作系统把那些在内存中处于等待状态的进程调到辅存,适当的时候再把那些已处于就绪状态的进程调回内存。对换通常以一个完整的进程为单位,在主存与辅存之间换入换出。2021/8/1484(7) 交换:交换:(swapping)(a) 目目标标:解解决决小小主主存存分分区区大大作作业业的的矛矛盾盾 利用辅存利用辅存(b) 概要:概要:将主存中已阻塞的作业信息存入辅

36、存,将辅存中的活动作业调入主存并运行。2021/8/1485job1job2job3job1job2job1job2job3job3job1主存辅存上部上部下部job3job2job2覆盖的部分保存好!Job2下部Job1Job3Job22021/8/1486(c) 注意:注意:(i)覆盖与交换的区别覆盖由用户解决空间不足交换由系统解决空间不足覆盖中被覆盖的那部分,既使未被破坏也不能使用,要重新调用而交换中在界地址寄存器,保护下次可使用。2021/8/1487小结:实存管理小结小结:实存管理小结(i)两大类分区分配类单一连续区固定分区可定分区多重分区可重定位分区多用户解决零头覆盖交换类覆盖交换

37、2021/8/14884.3.2存储保护存储保护是为了防止一个作业有意或无意地破坏操作系统或其它作业。保护方式:界限寄存器方式、存储保护键方式可变分区通常用界地址方式进行存储保护。系统中设置一对界限寄存器:上界寄存器和下界寄存器,用来框住运行作业所分配的区域。在地址重定位后,访问内存之前,要检查访内地址是否在作业区域的上下界范围之内。超出范围将发出地址越界保护中断,挂起该作业,在屏幕上发出越界警示。2021/8/1489A、界限寄存器方式在作业运行过程中形成的每一个访问地址,都要进行有效性检查,如果发现访问地址124k时就产生中断。2021/8/1490B、存储保护键方式当前程序的钥匙值为8,

38、那么它只能访问存储区域中保护键值为8的区域,即作业3。2021/8/14914.4分页管理前面介绍的分区存储管理,一般都建立在作业地址空间装入主存的一个连续分区中去,这样会造成内存的分配零头或碎片(严重缺陷)人们曾经尝试过一些解决碎片问题的方法,分页存储就是其中之一。分页存储管理地址映射有由硬件组成的地址变换部分和软件页表,核心部分是页表。页面的大小总是2的方幂,这样可以简化地址映射。2021/8/14924.4.1分页的概念所谓分页,就是把主存空间划分为大小一定的块,这些块称为物理块,编号为0,1,2,.,M。按同样的尺寸去划分作业的地址空间,形成一个个相等的页面,称为逻辑页。2021/8/

39、14934.3 4.3 页式存储管理页式存储管理4.3.1 4.3.1 几个概念几个概念页页或或页面页面:在页式存储管理系统中,用户作业的地址 空间被划分成若干大小相等的区域,称为页或页面。 块块或或物理块物理块:将主存的存储空间也分成与页大小相等 的区域,称为块或物理块,页框。 页表页表:为了便于在内存中找到进程的每个页面所对应的物理块, 系统为每个进程建立一张页面映象表,简称页表,页表一般存放在内存中。2021/8/14944.4.2地址映射机构分页存储管理地址映射有由硬件组成的地址变换部分和软件页表,核心部分是页表(下图)。在页表中每页有相应的表目,它们分别指出该页在主存中的块号。图中页

40、表PMT记录了某进程的0,1,2页,对应的物理块号为10,25,7。2021/8/14954.4.3地址变换为了对CPU欲访问的逻辑地址进行变换,动态地址转换硬件首先把线性的逻辑地址分成两部分:页号P和页内位移量W。地址变换时,按P值查找现行进程页表的相应表目,获得块号B,然后将此块号B取代页号P,并和逻辑地址中的页内位移量W拼接,形成物理地址PA。2021/8/1496分页存储的地址变换 2021/8/1497地址变换过程地址变换过程页表始址 页表长度+ 012238页号块号越界中断24328432物理地址页表寄存器2021/8/1498例:假定一个逻辑地址2300,现在知道页面大小为1K(

41、=1024)则2300=2X1024+432,可知此逻辑地址页号为2,页内偏移为432,页号项占了10位。2021/8/1499快表(联想存贮器联想存贮器) 由于地址变换必须读页表,而页表是存放在内存中的,因此,使访问内存的次数增加了一倍。为了克服这个缺点,通常的办法是在CPU和内存之间设置一个高速小型存储器,称为快表,用来存放当前使用的页表。(若页表全部放在主存,则要取一个数据(一条指令)至少要访问二次主存,第一次是访问页表,确定所取数据(或指令)的物理地址,第二次是根据该地址取数(或指令)2021/8/14100查联想表物理地址(访问一次主存)查页表物理地址(访问二次主存)有效地址同时进行

42、这个联想存贮器的查表速度可以做到比一般存储器的速度快一个数量级。2021/8/14101例:设访问主存时间为100ns,访问联想存贮器为20ns,命中率为90,则平均存贮时间为多少?查页表两次访存:平均为100100200ns查快表(100+20)90(100+100)10128ns解: 方法方法1:方法2:2021/8/141024.4.4保护机制 在分页管理下,使用一种锁保护的办法。为每个页面附设一个若干位的寄存器,叫做锁寄存器,用于存放数字锁。当一个内存页块分给某进程时,便给该块相应锁寄存器设置一个数字锁。例如:所有分给同一进程的诸页块的数字锁是相同的。然后,将与此锁相匹配的钥匙交给该进

43、程,并存放在其程序状态字PSW内。2021/8/14103 防止进程间的干扰,实现保护功能当一进程成为现行运行进程时,每一次访问内存时,都要送来钥匙,只有锁和钥匙相符时才允许访问。2021/8/14104页式存储管理系统的特点页式存储管理系统的特点(1) (1) 优点:优点: 有效地解决了碎片问题; 使存储空间大大增加,既提高了主存的利用率,又有利于组织 多道程序的执行。 (2(2) 缺点:缺点: 要求有相应的硬件支持,从而加大了成本; 增加了系统开销; 有可能产生抖动现象; 有一部分空间得不到利用;地址空间仍受主存实际容量限制。2021/8/141054.5分段管理在分页存储系统中,作业的地

44、址空间是一维线性的,却被机械地分割成页面。常常会把逻辑相关部分划到不同页面,造成共享和保护困难。而且,由于采用静态链接,不能支持程序与数据的动态变化。分段考虑到结构程序设计的特点,程序员常常用二维地址描述自己的程序结构。优点分段有逻辑意义,与用户的编程习惯相一致,有便于段的动态增长等。2021/8/14106(4) 分段存贮管理分段存贮管理(segrmanent)(a) 段段地地址址空空间间:作作业业由由若若干干个个逻逻辑辑分分段段组组成成,如如由由代代码码分分段段(cs)数数据据分分段段(ds),栈栈段段(ss)附加段附加段(Es)组成组成2021/8/14107一个段可定义为一组逻辑信息,

45、如子程序,数组或工作区,(分段是程序中自然划分的一组逻辑意义完整的信息集合,它是用户在编程时决定的)。因此,每个作业的地址空间是由一些分段构成的,每段都有自己的名字,且都是一段连续的地址空间。2021/8/14108 分段地址空间分段存储管理分段与分页的异同点 (与页表对应的是段表,它记载每个分段的内存起址和大小,是动态地址映射的重要组成部分。)2021/8/141094.5.1分段地址空间一个段可定义为一组逻辑信息,例如子程序,数组或工作区。作业的地址空间是由一些分段构成的,每段都有自己的名字,且都是一段连续的地址空间。(整个作业的地址空间是二维的。)2021/8/14110如下图,可见整个

46、作业的地址空间是二维的Y:0500C:0200D:0300CallLoadstore01k分段MAID(主程序)分段X(子程序)分段A(数据)分段B(工作区)2021/8/14111注意:分段管理系统中,一个进程的每一个分段必须分配在内存的一片连续的区间,但整个程序不要求在内存中全部连续。2021/8/141124.5.2段表与地址变换分段存储管理为作业分配主存空间是以段为单位的,每个段将占用一个连续的存储区域,但各段之间不必连续。一个作业的各个分段在主存的位置情况,用一个段表来记录,它指出主存中各个分段的起始地址和长度。段表在段表中每段有相应的表目,它们分别指出该段的大小和在主存中的起始地址

47、。2021/8/14113段表表目实际上起到了基址/限长寄存器的作用。作业执行时通过段表可将逻辑地址转换成物理地址。2021/8/14114分段管理的地址变换2021/8/14115 段控制寄存器 段表始址 段表长度 段号s 位移d 段长 基址 物理地址越界? 段表2021/8/14116(c) 评价:评价:便于模块化,便于处理共享问题,段的最大长度受限于主存空间,开销大。2021/8/141174.5.3分段与分页的异同点分段、分页存储管理的地址变换十分相似。但在概念上有着本质区别。1.分页的作业地址空间是一个单一的线性地址空间,作业中采用一维线性地址;而分段的作业地址空间是二维的,作业中采

48、用二维地址。2.分页活动用户看不见,是系统对主存的管理,是系统对用户作业的一种划分;而分段是用户可见的,是用户行为,每个段有一定逻辑意义。3.页是信息的“物理”单位,大小固定;段是信息的逻辑单位,大小不固定。2021/8/14118(5) 段页式存贮管理段页式存贮管理1. 为为了了获获得得分分段段在在逻逻辑辑上上的的优优点点和和分分页页在在管管理理存存储储空空间间方方面面的的优优点点采采用用段段页页式式存存贮管理。贮管理。2021/8/141192. 地址结构:地址结构:SPW078111223S:段号P:页号W:页内位移量W2021/8/14120注意:注意:(1)在这里,一个分段是每一次一页地调入主存的,所以分段中那些不被访问的页就不会被调进主存。(2)段页式是分段和请求页式管理方案的结合,因而,它具有两者的全部优点。(3)段页式管理主要缺点:增加了软件复杂性和管理开销;需要的硬件支持也增加了。2021/8/14121本章小结存储管理管理方式页式、段式、段页式管理空白区的回收2021/8/14122个人观点供参考,欢迎讨论个人观点供参考,欢迎讨论部分资料从网络收集整理而来,供大家参考,感谢您的关注!

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

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