memory操作系统原理

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

§5.1 存储管理的功能
5.1.1 存储空间的分配和回收 内存的分配与回收是内存管理的主要功能之一。用户程
序通常以文件的形式保存在计算机外存上,为了执行用户程 序,用户程序必须全部或部分装入内存,因此在内外存之间 必须不断交换数据。能否把外存中的数据和程序调入内存, 取决于能否在内存中为它们安排合适的位置。因此,存储管 理模块要为每一个并发执行的进程分配内存空间。另外,当 进程执行结束之后,存储管理模块又要及时回收该进程所占 用的内存资源,以便给其他进程分配空间。
地址映射的方式: 1、静态地址重定位
程序被装入内存时由操作系统的连接装入程序完成程序的 逻辑地址到内存地址的转换。
假定程序装入内存的首地址为BR,程序地址为VR,内存地 址为MR,则地址映射按下式进行:MR=BR+VR 。
§5.1 存储管理的功能
2、动态重定位 动态地址重定位是在程序执行的过程中,每次访问内存之前,
§5.2 连续内存分配
(2)动态分区的内存回收 当某一个用户作业完成释放所占分区时,系
统应进行回收。在可变式分区中,应该检查回收 区与内存中前后空闲区是否相邻,若相邻,则应 进行合并,形成一个较大的空闲区,并对相应的 链表指针进行修改;若不相邻,应将空闲区插入 到空闲区链表的适当位置。
§5.2 连续内存分配
在分页系统中,由CPU生成的每个地址被硬件分成两个部 分:页号(p)和页内偏移(w)。通常,如果逻辑地址空 间为2m,且页的大小为2n单元(字节或词),那么逻辑地址 的高m-n位表示页号,而低n位表示页偏移。这样,一个地 址长度为20位的计算机系统,如果每页的大小为1KB(210) , 那么可以有210个页。
区表或空闲分区队列,找一个大于或等于SIZE的空闲区。 分配时会出现以下三种情况:一是系统中无满足要求的空闲
区,则分配失败。二是空闲区大小与SIZE相等,则修改空闲 区表相应表目,向用户返回该空闲区首址。三是空闲区大于 SIZE,这时将空闲区一分为二。 将一个空闲区分成二部分有两种办法:一是从空闲区的上部 开始划出SIZE大小的空闲区给用户;二是从空闲区的底部开 始向上划出SIZE大小的空闲区给用户。
§5.2 连续内存分配
5.2.1 分区管理的基本原理 分区管理的基本原理是给每一个内存中的进程划分一块适当
大小的存储区,以连续存储各进程的程序和数据,使各进程 得以并发执行。 按分区的时机,分区管理可以分为固定分区和动态分区两种 方法。 1、固定分区法:
把内存区固定地划分为若干个大小不等的区域。划分的原则 由系统操作员或操作系统决定。分区一旦划分结束,在整个 执行过程中每个分区的长度和内存的总分区个数将保持不变。
以页为单位进行内存分配,并按作业的页数多少来分配。逻 辑上相邻的页,物理上不一定相邻。
§5.4 分页管理
百度文库
§5.4 分页管理
在分页系统中,页面的大小是由硬件的地址结构所决定的。 机器确定、页面大小便确定了。一般来说,页面的大小选择 为2的若干次幂,根据计算机结构的不同,其大小从512B到 16MB不等。
§5.2 连续内存分配
§5.2 连续内存分配
在动态分区存储管理中,要有相应的数据结构来登记空闲区 的说明信息,它包括空闲区的大小和位置。
不同系统根据设计要求采用不同的结构。常用的有表结构和 队列结构。
空闲区表的每个表目记录一个空闲区,主要参数包括区号、 长度和起始地址。空闲区队列则是利用每个内存空闲区的头 几个单元存放本空闲区的大小及下个空闲区的起始地址,从 而把所有的空闲区链接起来。
统的页面大小为1KB,A=3456,则p=INT(3456/1024)=3,w=
3456 MOD 1024=384。
§5.4 分页管理
在分页系统中,允许将进程的各页离散地装入内存的任何空 闲块中,这样就出现进程页号连续,而块号不连续的情况。 为了找到每个页面在内存中对应的物理块,系统为每个进程 设立一张页面映射表,简称页表。
将要访问的程序地址转换为内存地址。 动态重定位依靠硬件地址变换机构完成。地址重定位机构需
要一个(或多个)基地址寄存器BR和一个(或多个)程序虚拟地 址寄存器VR。指令或数据的内存地址MA与逻辑地址的关系为:
MA=(BR)+ (VR) 这里,(BR)与(VR)分别表示寄存器BR与VR中的内容。
§5.1 存储管理的功能
§5.2 连续内存分配
例题5-2:某操作系统采用可变分区分配存储管理方法,用户区 大小为512K且初始值为0,用空闲分区表管理空闲分区。若分 配时采用分配空闲区低地址部分的方案,且初始时用户区的 512K空间空闲,对于下列申请序列: 申请300K,申请100K,释放300K,申请150K,申请30K, 申请40K,申请60K,释放30K 回答下列问题: (1)请分别画出采用首次适应算法、最佳适应算法进行内 存分配和回收后的内存使用状态。 (2)如果再申请100K,针对上述两种算法会有什么结果?
§5.1 存储管理的功能
内存保护的方式: (1)上、下界存储保护:上、下界保护是一种简单
的存储保护技术。系统可为每个作业设置一对上、 下界寄存器,分别用来存放当前运行作业在内存空 间的上、下边界地址,用它们来限制用户程序的活 动范围。 (2)基址—限长存储保护:上、下界保护的一个变 种是采用基址—限长存储保护。
§5.1 存储管理的功能
5.1.2 地址转换(映射) 内存的每个存储单元都有一个编号,这种编号称为内存地
址(或称为物理地址,绝对地址)。内存地址的集合称为 内存空间(或物理地址空间)。 源程序经过汇编或编译后,形成目标程序,每个目标程序 都是以0为基址顺序进行编址的,原来用符号名访问的单元 用具体的数据——单元号取代。这样生成的目标程序占据 一定的地址空间,称为作业的逻辑地址空间,简称逻辑空 间。在逻辑空间中每条指令的地址和指令中要访问的操作 数地址统称为逻辑地址。
§5.2 连续内存分配
§5.2 连续内存分配
5.2.2 分区的分配和回收 1.固定分区的分配和回收
当用户程序要装入执行 时,存储管理程序根据 用户程序的大小查询分 区说明表,从中找出一 个满足要求的空闲分区, 并将其分配给申请者。
§5.2 连续内存分配
2、动态分区的分配和回收 (1)分区的分配 当用户要求一个大小为SIZE的存储空间时,系统查询空闲
§5.4 分页管理
5.4.1 分页管理的基本原理
把用户程序的地址空间划分成若干大小相等的区域,每个区 域称作页面或页。每个页都有一个编号,叫做页号。页号一 般从0开始编号,如0,1,2,…等。
把内存空间划分成若干和页大小相同的物理块,这些物理块 叫“帧”(frame)或内存块。同样,每个物理块也有一个编 号,块号从0开始依次顺序排列。
需要一开始就把它的全部指令和数据都装入内存后再执行。 在单CPU系统中,每一时刻事实上只能执行一条指令。因此, 不妨把程序划分为若干个功能上相对独立的程序段,按照程 序的逻辑结构让那些不会同时执行的程序段共享同一块内存 区。通常,这些程序段都被保存在外存中,当有关程序段的 先头程序段已经执行结束后,再把后续程序段调入内存覆盖 前面的程序段。这使得用户看来,好像内存扩大了,从而达 到了内存扩充的目的。
§5.2 连续内存分配
分配算法: (1)首次适应算法:
要求空闲区按首址递增的次序组织空闲区表(队列)。 (2)最佳适应算法:
要求按空闲区大小从小到大的次序组成空闲区表(队列)。 (3)最坏适应算法
要求空闲区按大小递减的顺序组织空闲区表(或队列)。
§5.2 连续内存分配
例5-1:有作业序列:作业A要求18K;作业B要求25K,作业C要 求30K。系统中空闲区按三种算法组成的空闲区队列.
§5.1 存储管理的功能
§5.1 存储管理的功能
5.1.4 主存空间的扩充 对内存进行逻辑上的扩充,现在普遍采用虚拟存储管理技术。 虚拟存储技术的基本思想是把有限的内存空间与大容量的外
存统一管理起来,构成一个远大于实际内存的、虚拟的存储 器。此时,外存是作为内存的直接延伸,用户并不会感觉到 内、外存的区别,即把两级存储器当作一级存储器来看待。 一个作业运行时,其全部信息装入虚存,实际上可能只有当 前运行的必需一部分信息存入内存,其他则存于外存,当所 访问的信息不在内存时,系统自动将其从外存调入内存。
“红领巾”真好
厦门市松柏第二小学 吴小蔚
§5.1 存储管理的功能
内存是现代计算机系统的中心,是指CPU能直接存取指令和数 据的存储器,CPU和I/O设备都要和内存打交道。
内存由很大的一组字或字节所组成,每个字或字节都有它们自 己的编号,称为内存地址。
对内存的访问是通过一系列对指定地址单元进行读写来实现的。
例题5-2解答如下:
0
150K作业
150K
180K 220K 280K 300K
400K
40K作业 60K作业
100K作业
512K-1
首次适应算法
0 150K 210K
150K作业 60K作业
300K
100K作业
400K
430K
40K作业
470K
512K-1
最佳适应算法
§5.3 内存不足的管理
5.3.1 覆盖 覆盖技术是基于这样一种思想提出来的:一个程序并不
§5.1 存储管理的功能
源程序
逻辑地址空间
0
物理地址空间
Load A data1
100
编译 连接
data1 3456
200
BA=1000
Load A 200
地址映射
Load A 200
3456
1200
3456 。 。
§5.1 存储管理的功能
我们把用户程序装入内存时对有关指令的地址部分的修改 定义为从程序地址到内存地址的地址映射,或称为地址重 定位。
§5.1 存储管理的功能
5.1.3 主存空间的共享和保护 在多道程序设计环境下,内存中的许多用户或系统 程序和数据段可供不同的用户进程共享。这种资源 共享将会提高内存的利用率。但是,反过来说,除 了被允许共享的部分之外,又要限制各进程只在自 己的存储区活动,各进程不能对别的进程的程序和 数据段产生干扰和破坏,因此须对内存中的程序和 数据段采取保护措施。
§5.3 内存不足的管理
例如,设某进程的程序正文段由A,B,C,D,E和F等6个 程序段组成。它们之间的调用关系如下图所示,程序段A调 用程序段B和C,程序段B又调用程序段F,程序段C调用程序 段D和E。
§5.3 内存不足的管理
5.3.2 交换技术 交换是指先将内存某部分的程序或数据写入外存交换区,再 从外存交换区中调入指定的程序或数据到内存中来,并让其 执行的一种内存扩充技术 。
§5.2 连续内存分配
5.2.3 碎片问题 在连续内存分配中,必须把一个系统程序或用户程序装入一
个连续的内存空间中。由于各个进程不但的申请和释放内存, 导致在内存中出现大量的分散的小空闲区。内存中这种容量 太小、无法利用的小分区称做“碎片”或“零头”。 根据碎片出现的位置,可以分为内部碎片和外部碎片两种。 在一个分区内部出现的碎片(即被浪费的空间)称做内部碎 片。在所有分区之外新增的碎片称做外部碎片。 解决碎片问题最简单的方法是定时或在分配内存时把所有碎 片合并为一个连续区。实现的方法是移动某些已分配区的内 容,使所有进程的分区紧挨在一起,而把空闲区留在另一端, 这种技术称为紧缩(或拼凑)。
§5.2 连续内存分配
某系统的内存容量为256K,操作系统占用低地址的20K,其 余空间划分成4个固定大小的分区。如下图:
§5.2 连续内存分配
2、动态分区法 动态分区法在作业执行前并不建立分区,分区的建
立是在作业的处理过程中进行的,且其大小可随作 业或进程对内存的要求而改变。这就改变了固定分 区法中那种即使是小作业也要占据大分区的浪费现 象,从而提高了内存的利用率。 采用动态分区法,在系统初启时,除了操作系统中 常驻内存部分之外,只有一个空闲分区。随后,分 配程序将该区依次划分给调度选中的作业或进程。
§5.4 分页管理
页号P
页内位移量W
31
12 11
0
编号0~1048575
相对地址0~4095
对于某台具体机器来说,其地址结构是一定的。如果给定的
逻辑地址是A,页面的大小为L,则页号p和页内地址w可按下
式求得: p=INT[A/L],w=[A] MOD L
其中,INT是向下整除的函数,MOD是取余函数。例如,设系
相关文档
最新文档