计算机操作系统 第四章 存储器管理.ppt_第1页
计算机操作系统 第四章 存储器管理.ppt_第2页
计算机操作系统 第四章 存储器管理.ppt_第3页
计算机操作系统 第四章 存储器管理.ppt_第4页
计算机操作系统 第四章 存储器管理.ppt_第5页
已阅读5页,还剩156页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第4章内存管理(1),第4章内存管理,简介内存层次4.1程序加载和链接4.2连续分配模式,第4章内存管理简介内存层次,简介1内存层次,1。记忆层次在现代计算机系统中,记忆是信息处理的来源和目的地,占据着重要的位置。然而,在现有的技术条件下,任何一种存储设备都不能同时满足用户在速度和容量方面的需求。事实上,它们构成了速度快、容量小的存储设备层次结构。记忆的层次结构,导论2。各种存储器,缓存:小,非常快,昂贵,易失性内存内存内存:几兆,中速,中等价格,易失性磁盘:几百兆或几千兆,低速,低价,不容易改变。这些内存的使用是由操作系统协调的,引言3内存管理的目的,1)主内存的分配和管理:当它不需要时,可

2、以及时回收给其他用户使用。2)提高主存的利用率:不仅多个程序可以动态共享主存,还可以更好地共享主存中某个区域的信息。介绍3存储管理的目的(续)3“扩展”主内存容量:为用户提供比主内存物理空间大得多的地址空间,使用户感觉他们的工作是在这么大的内存中运行的。4)存储保护:确保多个程序在其指定的存储区域内运行,不会相互干扰,并防止一个程序破坏其他作业或系统文件的信息。导言4基本概念1。位置(存储分配):为特定程序和数据分配存储单元或区域。2.映射:将逻辑地址转换成相应物理地址的过程。3.隔离:根据访问权限将合法区域与非法区域分开,实现存储保护。介绍4基本概念由命名空间程序员定义的标识符程序符号集由没

3、有地址概念的程序员定义。导言4基本概念5。地址空间程序用来访问信息的一组地址单元。这组逻辑(相对)地址由编译器6生成。存储空间主存储器中的一组物理单元。这组物理(绝对)地址是由汇编程序生成的。1200,物理地址空间,加载A数据1数据1 3456,源程序,加载A 200 3456,0,100,200,编译连接,逻辑地址空间,BA=1000,图41名称空间,地址空间,存储空间,简介4基本概念,7。逻辑地址和物理地址逻辑地址虚拟地址):用户程序被汇编或编译以形成目标代码,目标代码通常采用相对地址的形式,第一个地址为0,其它指令中的地址相对于第一个地址被寻址。你不能用逻辑地址来读取内存中的信息。物理地

4、址(绝对地址,真实地址)内存中存储单元的地址可以直接寻址。8。内存共享:两个或多个进程共享内存中的同一区域。目的:节省内存空间,提高内存利用率,实现进程通信(数据共享)。共享内容:代码共享,要求代码是纯代码数据共享。引言4基本概念,引言4基本概念,9。存储保护和安全保护目的:为多个程序共享内存提供保证,使内存中的每个程序只能访问自己的区域,从而避免程序之间的相互干扰,尤其是当一个程序发生错误时,不会影响其他程序的运行。通常,保护功能由硬件完成,并由软件辅助。(特权指令不能完成存储保护。),简介4基本概念,1)存储保护保护系统程序区域免受用户(有意或无意)的入侵,并且不允许用户程序读写不属于其自

5、己的地址空间(系统区域地址空间、其他用户程序的地址空间)的数据,简介4基本概念,2)保护进程-为了防止地址交叉,每个进程都有自己独立的进程空间,如果一个进程在运行时生成的地址在其地址空间之外,就会发生这种情况。也就是说,当程序想要访问某个存储单元时,硬件检查它是否被允许,如果被允许,它将执行;否则,将产生地址越界中断,操作系统将相应地处理它。导言4基本概念10。内存“扩展”是通过虚拟存储技术实现的。用户在编程时不应该受到内存容量的限制,所以应该采用一些技术来“扩展”内存容量,这样用户可以获得比实际内存容量多得多的内存空间。具体实现是在硬件的支持下,软件和硬件相互配合,将内存和外部内存结合起来统

6、一使用。这样,存储器被扩展,使得用户在编程时不受存储器的限制。第4章:内存管理4.1程序加载和链接,4.1程序加载和链接,图4-2-1用户程序的处理步骤,4.1.1程序加载,1。绝对加载模式,程序中使用的绝对地址可以在编译或汇编时给出,也可以由程序员直接给出。然而,当绝对地址由程序员直接给出时,它不仅要求程序员熟悉存储器的使用,而且一旦程序或数据被修改,就改变程序中的所有地址。因此,通常最好在程序中使用符号地址,然后在编译或汇编时将这些符号地址转换成绝对地址。图4-2-2作业加载到内存2中的情况。可重定位加载模式4.1.1程序加载和动态运行时加载器不会在将加载的模块加载到内存后立即将加载模块中

7、的相对地址转换为绝对地址,而是会推迟地址转换,直到程序真正被执行。因此,加载内存后的所有地址仍然是相对地址。4.1.1程序加载,3 .动态运行时加载模式,4.2.2程序链接,图4-2-3程序链接图,1 .静态链接模式,2 .加载时动态链接,具有以下优点:易于修改和更新。(2)共享目标模块方便。4.2.2程序链接,3。运行时动态链接,这意味着到某些模块的链接被延迟到执行时,也就是说,当发现被调用的模块没有被加载到内存中时,操作系统将立即找到该模块并将其加载到内存中,然后将其链接到调用方模块。任何未在执行过程中使用的目标模块都不会被转移到内存中并链接到加载模块,这不仅可以加快程序的加载过程,还可以

8、节省大量的内存空间。4.2.2程序链接、4.2.3重定位,将作业地址空间中使用的逻辑地址转换为内存空间中的物理地址的过程。也称为地址映射。如下图所示,作业1被重新定位,地址集被映射到以1000作为起始地址的存储器,其被用作作业1的存储空间。重定位类型,1)静态重定位:当用户程序被加载到内存中时,从逻辑地址到物理地址的转换将被实现一次,并且以后将不执行任何转换(通常在加载到内存中时由软件完成)。作业一将在执行前被索引一次,直到作业完成从内存中退出。2)动态重定位,4.2.3重定位,2)动态重定位,当程序运行以访问数据时,执行地址转换。由地址转换机制执行的地址转换需要硬件中的重定位寄存器的支持。4

9、.2.3搬迁,2。实现动态重定位,重定位寄存器:当执行一条指令获取操作数时,需要将指令给出的有效地址(500)和重定位寄存器中的内容(1000)相加,得到访问地址(1500),从而实现地址的动态修改。映射模式:页面表用于描述虚拟页面和真实页面之间的对应关系。4.2.3重新定位,第4章内存管理4.2连续分配内存管理,4.2.1单用户内存管理。在单通道环境中,无论是单用户系统还是单通道批处理系统,当执行一个进程(作业)时,除了系统占用的一部分主内存外,其余所有主内存区域都被它占用。主存可以分为三个部分:系统区、用户区和空闲区。用户占用区域是一个连续的存储区域,因此也称为单个连续存储管理。在单用户系

10、统中,一段时间内存中只存在一个进程,因此内存分配管理非常简单,内存利用率低内存分为两个区域,一个用于操作系统,另一个用于用户。图4-3-1是单个连续区域存储分配示意图。4.2.1单用户存储管理、工作流和单个连续区域分配采用静态分配和静态重定位,即一个作业或进程一旦进入主内存,在完成运行之前不能释放主内存。主存分配和恢复方法如下图所示。加载器检查其绝对地址是否超出,从而达到保护系统的目的。4.2.1单用户存储管理,工作流(续),4.2.1单用户存储管理,单用户系统缺点,不支持多渠道。主存利用率不高。程序的运行受到主内存容量的限制。4.2.1单用户存储管理、存储保护、自动地址修改例如,内存的地址空

11、间为,操作系统位于低位地址端。对于这样的系统,我们给用户一个位地址空间,并为每次内存访问自动添加它。如果操作系统占据了高地址端,那么我们就可以访问每个存储,但实际上,它的地址是()。从而实现对操作系统的保护。4.2.1单用户存储管理、存储保护(续)、页面和页面寻址通过在每个用户生成的地址的左端拼接一位来实现区域和用户区域。在页面上设置操作系统,并将用户作业放在页面上。边界寄存器通过添加边界寄存器来划分区域和用户区域。4.2.1单用户存储管理、4.2.2固定分区分配、分区管理是满足多程序要求的最简单的存储管理方案。它的基本思想是将内存分成几个连续的区域,这些区域称为分区。每个分区只能存储一个程序

12、,并且该程序只能在其所在的分区中运行。事先,可分配的主存空间被分成几个连续的区域,称为分区。如图所示,每个分区的大小可以相同也可以不同。但是,分区大小是固定的,每个分区只能容纳一个作业存储分配:如果有空闲区域,它将被分配给进程,4.2.2固定分区分配,1。固定分区、分区4、分区3、分区2、分区1操作系统、多个等待队列、单个等待队列。分区4分区3分区2分区1操作系统、图4-3-2固定分区图,4.2.2固定分区分配,图4-3-3固定分区使用表,通过设置内存分配表,内存分配很简单。缺点:内存利用率低。内存分配管理,4.2.3动态分区分配,基本思想:内存不是预分区的。如果有足够的空间,根据需要将分区的

13、一部分分配给进程;否则,让它等待主内存空间内存管理:设置内存空闲块表记录空闲区内存分配的起始地址和长度:动态分配内存回收:当一个块被返回时,前后空间合并,内存空闲块表被修改,4.2.3动态分区分配,分区分配表(见图4-3-5) (2)空闲分区链,图4-3-4空闲链结构,1,0k,15k,38k,48k,68k,80k, 图4-3-5、0k、15k、38k、48k、68k、80k 1)分配内存,图4-3-6内存分配过程,2。 分区分配操作,4.2.3动态分区分配,图4-3-7内存回收,2)内存回收,4.2.3动态分区分配,为了实现动态分配,系统建立空闲分区链表:每个空闲块前后两个单元,其中有必要

14、的说明信息,系统只需要设置一个链头指针指向第一个空闲块。分配程序可以根据空闲块链表找到合适的空闲块进行分配。(如下图所示),3。空闲分区链表,4.2.3动态分区分配。根据连接空闲块的不同方式,有四种算法:最佳适应法、最差适应法、第一适应法、循环第一适应法、4。分配算法,4.2.3动态分区分配。接收内存申请时,在空闲块列表中找到不小于请求的最小空块,并在为作业选择分区时进行分配功能:满足最小空间要求,1)最佳自适应算法,4.2.3动态分区分配,空闲,有一个作业J,其大小为12KB,需要转移到内存中,最佳自适应算法,4.2.3动态分区分配,操作系统,8K空闲区域,J (12 K),B(.有一个大小

15、为12KB的作业j,现在需要将其转移到内存中。最佳自适应算法,4.2.3动态分区分配。当接收内存应用程序时,它会在空闲块表中找到一个不小于分配请求的最大空块。与最佳适应方法相反,当作业选择存储块时,它总是寻找最大的空白区域。功能:当备用块在分段后仍然是一个大的空块时,2)最差自适应算法,4.2.3动态分区分配,空闲,有一个大小为12KB的作业J,现在需要将其转移到内存中,最差自适应算法,4.2.3动态分区分配,空闲,4.2.3动态分区分配,3)首次适配方法:为作业选择分区时,始终按照地址从高到低进行搜索,只要找到可以容纳该作业的空白块,就将该空白块分配给该作业。4)循环第一自适应方法类似于第一

16、自适应方法。分区时,它总是从上次搜索结束的地方开始,并找到足够大的空白区域分配。4.2.3动态分区分配,空闲,有一个大小为12KB的作业J,需要将其传输到内存中。系统回收分区的主要步骤如下:1 .检查回收的分区是否与空闲区域相邻,如果相邻,则将其合并;2与修改描述表的释放区域相邻的分区可以是:释放区域与另一进程的分配区域相邻,或者是自由区域。第一种适应方法解释了系统恢复进程占用区域的以下四种可能情况。让过程的释放区域为R,与R相邻的两个自由区域分别为F1和F2。r的第一个地址发送到LOC,r的最后一个地址发送到LOC1,r的大小发送到SIZE。4.2.3动态分区分配,回收存储器:(a)如果释放

17、区域r与F1相邻,即其低地址部分与自由区域相邻。R和F1被合并,并且合并的自由区域仍然被记录为F1。如何判断释放区域r是否与自由区域相邻?只需从链的开始处查找:如果F1的第一个地址F1的大小=r的第一个地址,这意味着r与F1相邻。只要F1的大小=F1的LOC大小被修改,其他参数及其在链中的位置保持不变。如果释放区域R邻近F2,即,其高地址部分邻近自由区域。R和F2被合并,并且合并的自由区域仍然被记录为F2。如果锁定大小=F2的第一个地址,则意味着R与F2相邻。F2的第一个地址=LOC,F2的大小=F2的大小需要修改。(c)如果释放区域r的高和低地址部分都与一个空闲区域相邻。三个分区应该合并成一个大的自由区域,表示为F1。首先,将R与F2结合,并将其

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论