欢迎来到天天文库
浏览记录
ID:1358909
大小:1.33 MB
页数:79页
时间:2017-11-10
《memory操作系统原理》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第5章存储管理§5.1存储管理的功能内存是现代计算机系统的中心,是指CPU能直接存取指令和数据的存储器,CPU和I/O设备都要和内存打交道。内存由很大的一组字或字节所组成,每个字或字节都有它们自己的编号,称为内存地址。对内存的访问是通过一系列对指定地址单元进行读写来实现的。§5.1存储管理的功能5.1.1存储空间的分配和回收内存的分配与回收是内存管理的主要功能之一。用户程序通常以文件的形式保存在计算机外存上,为了执行用户程序,用户程序必须全部或部分装入内存,因此在内外存之间必须不断交换数据。能否把外存中的数据和程序调入内存,取决于能否在内存中为它们安排合适的位置。因此,存储
2、管理模块要为每一个并发执行的进程分配内存空间。另外,当进程执行结束之后,存储管理模块又要及时回收该进程所占用的内存资源,以便给其他进程分配空间。§5.1存储管理的功能5.1.2地址转换(映射)内存的每个存储单元都有一个编号,这种编号称为内存地址(或称为物理地址,绝对地址)。内存地址的集合称为内存空间(或物理地址空间)。源程序经过汇编或编译后,形成目标程序,每个目标程序都是以0为基址顺序进行编址的,原来用符号名访问的单元用具体的数据——单元号取代。这样生成的目标程序占据一定的地址空间,称为作业的逻辑地址空间,简称逻辑空间。在逻辑空间中每条指令的地址和指令中要访问的操作数地址统
3、称为逻辑地址。§5.1存储管理的功能地址映射LoadA2003456。。1200物理地址空间LoadAdata1data13456源程序LoadA20034560100200编译连接逻辑地址空间BA=1000§5.1存储管理的功能我们把用户程序装入内存时对有关指令的地址部分的修改定义为从程序地址到内存地址的地址映射,或称为地址重定位。地址映射的方式:1、静态地址重定位程序被装入内存时由操作系统的连接装入程序完成程序的逻辑地址到内存地址的转换。假定程序装入内存的首地址为BR,程序地址为VR,内存地址为MR,则地址映射按下式进行:MR=BR+VR。§5.1存储管理的功能2、动态
4、重定位动态地址重定位是在程序执行的过程中,每次访问内存之前,将要访问的程序地址转换为内存地址。动态重定位依靠硬件地址变换机构完成。地址重定位机构需要一个(或多个)基地址寄存器BR和一个(或多个)程序虚拟地址寄存器VR。指令或数据的内存地址MA与逻辑地址的关系为:MA=(BR)+(VR)这里,(BR)与(VR)分别表示寄存器BR与VR中的内容。§5.1存储管理的功能§5.1存储管理的功能5.1.3主存空间的共享和保护在多道程序设计环境下,内存中的许多用户或系统程序和数据段可供不同的用户进程共享。这种资源共享将会提高内存的利用率。但是,反过来说,除了被允许共享的部分之外,又要限
5、制各进程只在自己的存储区活动,各进程不能对别的进程的程序和数据段产生干扰和破坏,因此须对内存中的程序和数据段采取保护措施。§5.1存储管理的功能内存保护的方式:(1)上、下界存储保护:上、下界保护是一种简单的存储保护技术。系统可为每个作业设置一对上、下界寄存器,分别用来存放当前运行作业在内存空间的上、下边界地址,用它们来限制用户程序的活动范围。(2)基址—限长存储保护:上、下界保护的一个变种是采用基址—限长存储保护。§5.1存储管理的功能§5.1存储管理的功能5.1.4主存空间的扩充对内存进行逻辑上的扩充,现在普遍采用虚拟存储管理技术。虚拟存储技术的基本思想是把有限的内存空
6、间与大容量的外存统一管理起来,构成一个远大于实际内存的、虚拟的存储器。此时,外存是作为内存的直接延伸,用户并不会感觉到内、外存的区别,即把两级存储器当作一级存储器来看待。一个作业运行时,其全部信息装入虚存,实际上可能只有当前运行的必需一部分信息存入内存,其他则存于外存,当所访问的信息不在内存时,系统自动将其从外存调入内存。§5.2连续内存分配5.2.1分区管理的基本原理分区管理的基本原理是给每一个内存中的进程划分一块适当大小的存储区,以连续存储各进程的程序和数据,使各进程得以并发执行。按分区的时机,分区管理可以分为固定分区和动态分区两种方法。1、固定分区法:把内存区固定地划
7、分为若干个大小不等的区域。划分的原则由系统操作员或操作系统决定。分区一旦划分结束,在整个执行过程中每个分区的长度和内存的总分区个数将保持不变。§5.2连续内存分配某系统的内存容量为256K,操作系统占用低地址的20K,其余空间划分成4个固定大小的分区。如下图:§5.2连续内存分配2、动态分区法动态分区法在作业执行前并不建立分区,分区的建立是在作业的处理过程中进行的,且其大小可随作业或进程对内存的要求而改变。这就改变了固定分区法中那种即使是小作业也要占据大分区的浪费现象,从而提高了内存的利用率。采用动态分区法,在系统
此文档下载收益归作者所有