操作系统原理七实存储管理技术

上传人:1537****568 文档编号:359549107 上传时间:2023-08-31 格式:PPT 页数:244 大小:9.17MB
返回 下载 相关 举报
操作系统原理七实存储管理技术_第1页
第1页 / 共244页
操作系统原理七实存储管理技术_第2页
第2页 / 共244页
操作系统原理七实存储管理技术_第3页
第3页 / 共244页
操作系统原理七实存储管理技术_第4页
第4页 / 共244页
操作系统原理七实存储管理技术_第5页
第5页 / 共244页
点击查看更多>>
资源描述

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

1、第七章实存储管理技术存储器是重要的计算机资源,内存管理是操作系统的主要功能之一。内存容量是计算机硬件资源中关键而又最紧张的,特别在多道程序设计出现后,要求内存能得到充分有效的利用,为用户提供安全方便的使用环境,这都是操作系统的内存管理要解决的问题。第七章实存储管理技术教学目标:1、熟悉存储管理的基本概念和分类2、了解连续存储的方法和特点3、掌握分页存储的原理4、掌握分段存储的原理5、掌握段页存储的原理 第七章实存储管理技术主要内容:7.1存储管理的基本概念7.2连续分配存储管理方式7.3离散分配存储管理方式7.1存储管理的基本概念存储体系:一个速度由快到慢,容量由小到大的存储层次.快速缓存:c

2、ache内存:DRAM,SDRAM等;外存:软盘、硬盘、光盘、磁带等;7.1.1存储管理要解决的问题存储分配:当用户需要内存时,系统为之分配相应的存储空间;不需要时,及时回收,以供其它用户使用。地址映射:从逻辑地址到物理地址的变换7.1.1存储管理要解决的问题存储保护:确保多道程序都在各自分配到存储区域内操作,互不干扰,防止一道程序破坏其它作业或系统文件的信息。内存扩充:为用户提供比主存物理空间大得多的地址空间,以至使用户感觉他的作业是在这样一个大的存储器中运行7.1.3地址重定位1 1、地址空间和存储空间、地址空间和存储空间名字空间:程序中由符号名组成的空间,没有地址的概念,由程序员自定义符

3、号指令数据说明I/O说明7.1.3地址重定位 逻辑地址逻辑地址(相对地址,虚地址):用户的程序经过汇编或编译后形成目标代码,目标代码通常采用相对地址的形式,其首地址为0,其余指令中的地址都相对于首地址而编址。不能用逻辑地址在内存中读取信息地址空间地址空间(相对地址空间)逻辑地址的集合7.1.3地址重定位物理地址物理地址(绝对地址,实地址)内存中存储单元的地址,可直接寻址存储空间存储空间(绝对地址空间,物理地址空间)内存中物理地址的集合地址映射地址映射Load A 200 3456 。1200物理地址空间物理地址空间Load A data1data1 3456名空间名空间Load A 200 3

4、4560100200编译编译连接连接逻辑地址空间逻辑地址空间BA=1000名空间、地址空间、存储空间2、静态重定位和动态重定位地址映射(地址重定位)地址映射(地址重定位)把逻辑地址转换为相应的物理地址的过程。2、静态重定位和动态重定位1)静态重定位:作业地址空间内存空间装入365LOAD1,2500500025001000365LOAD1,250015000125001000011000365LOAD1,1250015000125001000011000静态重定位静态重定位在程序执行之前进行重定位,根据装配模块将要装入的内存起始地址,直接修改装配模块中的有关地址的指令。当用户程序被装入内存时,

5、一次性实现逻辑地址到物理地址的转换,以后不再转换(一般在装入内存时由软件完成)。2、静态重定位和动态重定位优点:容易实现,不需要硬件支持。缺点:程序在重定位之后就不能在内存中移动了,因而不能重新分配内存,不利于内存的有效利用要求程序的存储空间必须连续不利于内存的共享2、静态重定位和动态重定位2)动态重定位:程序执行期间,每次存储访问之前进行重定位。需要硬件的支持,即重定位寄存器,重定位装入内存区的起始地址,重定位时,对每一个有效地址都要加上重定位寄存器中的内容,形成绝对地址。装入365LOAD1,2500500025001000365LOAD1,250015000125001000011000

6、10000+重定位寄存器重定位寄存器优点:程序执行过程中,用户程序可以再内存中移动,有利于内存的充分利用程序不必连续存放在内存中,可以离散存放。若干个用户可以共享一个程序缺点:需要附加的硬件支持7.2连续分配存储管理方式7.2.1单一连续分配方式这是最简单的一种存储管理方式,但只能用于单用户、单任务的操作系统中。采用这种存储管理方式时,可把内存分为系统区和用户区两部分,系统区仅提供给OS使用,通常是放在内存的低址部分;用户区是指除系统区以外的全部内存空间,提供给用户使用。l只能用于单用户、单任务的OS中。l软件简单,硬件要求低用户区系统区MS/DOS7.2.1单一连续分配方式7.2.1单一连续

7、分配方式优点:方法简单,易于实现缺点:不支持多道。主存利用率不高。程序的运行受主存容量限制7.2.2固定分区存储管理方式 分区式管理是满足多道程序的最简单的存储管理方案。它的基本思想是将内存划分成若干个连续区域,称为分区。每个分区只能存储一个程序,而且程序也只能在它所驻留的分区中运行。7.2.2固定分区存储管理方式固定分区算法原理:把内存分为一些大小相等或不等的分区(partition),每个应用进程占用一个或几个分区。操作系统占用其中一个分区。每个分区的大小可以不同,但是事先必须固定,在系统运行时不能改变。在每个分区内装入一个进程,允许几道作业并发执行。当有空闲分区时,可从外存中的后备队列中

8、选择一个适当大小的作业装入该分区。7.2.2固定分区存储管理方式1、分区划分方法分区大小相等 分区大小不等2、分区说明表包含:大小始址状态7.2.2固定分区存储管理方式3、内存分配当有用户程序需要装入,由内存分配程序检索分区说明表,按照一定算法找出一个能满足要求的,尚未使用的分区分配给该程序,同时修改分区说明表中该表项的状态。如果没有足够的空间,则拒绝分配内存。7.2.2固定分区存储管理方式区号/键大小位置状态18K512K正使用232K520K正使用332K552K未使用4128K584K未使用5512K712K正使用系统区分区1分区4分区5分区2分区3系统区作业3(510k)分区4作业2(

9、680k)作业1(518k)分区37.2.2固定分区存储管理方式特点:适用于多道程序系统和分时系统问题:可能存在碎片OS区Job2Job4Job3Job1Job5Job6“零头”碎片7.2.3可变分区存储管理方式内存不是预先划分好的,而是当作业装入时,根据作业的需求和内存空间的使用情况来决定是否分配。若有足够的空间,则按需要分割一部分分区给该进程;否则令其等待主存空间。分区的大小和个数都是可变的,根据作业的大小和数量动态的划分。7.2.3可变分区存储管理方式1、分区分配中使用的数据结构(1)分区说明表:类似于固定分区中的分区说明表结构。(2)分别设置两个表格,一个是空闲分区表FBT,一个是已使

10、用分区表OUT,分别来登记系统中的空闲分区和已使用分区。0K15K38K48K68K80K110K120K空闲区表空闲区表已分配区表已分配区表始址长度标志15K23K未分配48K20K未分配80K30K未分配空空始址长度标志0K15KJ138K10KJ268K12KJ3110K10KJ4空空0K15K38K48K68K80K110K120K空闲区表空闲区表已分配区表已分配区表始址长度标志15K23K未分配48K20K未分配98K12K未分配空空始址长度标志0K15KJ138K10KJ268K12KJ3110K10KJ480K5KJ585K13KJ685K98K7.2.3可变分区存储管理方式(3

11、)空闲分区链7.2.3可变分区存储管理方式OS区Job1Job2Job3Job4Job5Job6Job7OS区Job1Job2Job3Job4Job5空闲分区链空闲分区链头指针头指针Job7Job67.2.3可变分区存储管理方式2、分区的分配算法最先适应分配算法:为作业选择分区时总是按地址从高到低搜索,只要找到可以容纳该作业的空白块,就把该空白块分配给该作业。BeforeAfterLastallocatedblock(14K)8K12K22K18K6K8K14K36KFree blockAllocated block6KFirst Fit8K12K6K8K14K2、分区的分配算法循环最先适应分

12、配算法:类似首次适应法每次分区时,总是从上次查找结束的地方开始,找到一个足够大的空白区分配。After20KNext FitBeforeLastallocatedblock(14K)8K12K22K18K6K8K14K36KFree blockAllocated block8K12K6K8K14K2、分区的分配算法最佳适应分配算法:接到内存申请时,在空闲块表中找到一个不小于请求的最小空块进行分配为作业选择分区时总是寻找其大小最接近于作业所要求的存储区域。特点:用最小空间满足要求AfterBeforeLastallocatedblock(14K)8K12K22K18K6K8K14K36KFree

13、 blockAllocated block2KBest Fit8K12K6K8K14K2、分区的分配算法最坏适应分配算法:接到内存申请时,在空闲块表中找到一个不小于请求的最大空块进行分配,与最佳适应法相反,它在作业选择存储块时,总是寻找最大的空白区。特点:当分割后空闲块仍为较大空块AfterBeforeLastallocatedblock(14K)8K12K22K18K6K8K14K36KFree blockAllocated block8K12K6K8K14K20KWorst Fit查找空闲分区链表第一项检索完否?m.size=u.size?m.size-u.size=size?划出u.si

14、ze大小的分区修改有关的数据结构返回将该分区从链表中移出继续检索下一个表项YYYNNN最先适应分配算法流程最先适应分配算法流程7.2.3可变分区存储管理方式3、分区的回收操作7.2.3可变分区存储管理方式4、存储保护为了防止一个作业有意无意的破坏操作系统或者别的作业,应对分区采取保护措施。4、存储保护(1)上、下界存储保护:上、下界保护是一种简单的存储保护技术。系统可为每个作业设置一对上、下界寄存器,分别用来存放当前运行作业在内存空间的上、下边界地址,用它们来限制用户程序的活动范围。(2)基址限长存储保护:上、下界保护的一个变种是采用基址限长存储保护。4、存储保护4、存储保护(3)保护键法:系

15、统为每个存储块设置一个单独的保护键,相当于一把锁;在作业的程序状态字中设置一个保护键字段,对不同的作业赋予不同的代码,相当于赋予不同的钥匙。7.2.3可变分区存储管理方式5、存储器的紧缩和程序的浮动目的:解决内存碎片(内零头)问题解决方法:(1)把作业分成几部分装入到不同的分区中去,也就是不把一个作业作为一个连续的整体存放在内存中。(2)把内存中的小碎片集中,形成一个大的分区,使之可以装入较大的作业。OS区Job2Job4Job3Job1Job5Job6Job7“零头”碎片OS区Job2Job4Job3Job1Job5Job6Job7OS区Job2Job4Job3Job1Job5Job6Job

16、7“零头”碎片5、存储器的紧缩和程序的浮动5、存储器的紧缩和程序的浮动把小分区集中成大分区的方法叫做存储器的紧缩。1)当某个作业一旦完成,立即进行紧缩2)当某个作业申请一个分区,而内存中没有足够大的空闲分区,但各个空闲空闲分区之和大于作业大小,此时紧缩。5、存储器的紧缩和程序的浮动移动程序时应采用动态重定位方法处理机一侧存储器一侧作业J内存365LOAD1,2500500025001000365LOAD1,2500150001250010000110002500相对地址10000重定位寄存器存储器紧缩分配算法流程查找空闲分区链表第一项有u.size的空闲空间?按动态分区方式进行分配修改有关的数据结构返回分区号及首批进行紧凑形成连续空闲区YYNN请求分配u.size分区总空闲空间u.size?修改有关的数据结构无法分配返回7.2.3可变分区存储管理方式分区管理的主要优点:分区管理是实现多道程序设计的一中简单易行的存储管理技术,内存称为共享资源,有效地利用了处理机和io设备,从而提高了系统的吞吐量和周转时间。关于内存利用率,可变分区比固定分区高,此外分区管理算法简单,实现分区分批所采用的表

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

当前位置:首页 > 医学/心理学 > 基础医学

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