欢迎来到天天文库
浏览记录
ID:40343639
大小:1.35 MB
页数:74页
时间:2019-07-31
《计算机操作系统教程(第二版) 第4章 存储管理》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第4章存储管理4.1存储管理的功能4.2实存管理4.3虚拟存储器管理4.4碎片与抖动问题本章学习目标存储管理的目的和四大基本功能。实存管理中讲述了固定分区存储管理、可变式分区存储管理、纯分页存储管理三种存储管理方案的实现原理,内存的分配与回收方法.虚存管理以请求式分页存储管理为重点,讲述其实现原理和动态地址重定位过程.总结各种存储管理方案中存在的碎片和抖动问题及解决方法4.1存储管理的功能4.1.1内存的分配与回收4.1.2地址重定位4.1.3存储保护4.1.4虚拟存储器返回首页图4.1多级存储器体系示意图4.1.1内存的分配与回收内存分配按分配时机的不同,可分为两种方式。(1)
2、静态存储分配(2)动态存储分配返回本节4.1.2地址重定位1.内存空间(或物理空间)2.逻辑空间(如图4.2所示)3.地址重定位(分为:静态地址重定位和动态地址重定位)图4.2作业的名空间、逻辑地址空间和装入后的物理空间图4.3静态地址重定位和动态地址重定位示意图(b)采用动态重定位时内存空间及地址重定位示意图(a)采用静态重定位后的内存空间返回本节4.1.3存储保护(1)上、下界存储保护:上、下界保护是一种简单的存储保护技术。如图4.4(a)所示(2)基址——限长存储保护:上、下界保护的一个变种是采用基址——限长存储保护。如图4.4(b)所示。(a)上、下界保(b)基址—限长保
3、护图4.4界限寄存器的两种存储保护方式返回本节4.1.4虚拟存储器虚拟存储技术的基本思想是把有限的内存空间与大容量的外存统一管理起来,构成一个远大于实际内存的、虚拟的存储器。即把两级存储器当作一级存储器来看待。对用户而言,感觉到系统提供了一个大容量的内存,供用户使用,但这样大容量的内存实际上并不存在,是一种虚拟的存储器,因此把具有这种功能的存储管理技术称为虚拟存储管理。返回本节4.2实存管理4.2.1固定分区存储管理4.2.2可变式分区存储管理4.2.3纯分页存储管理4.2.4纯分段存储管理返回首页4.2.1固定分区存储管理固定分区存储管理是实现多道程序设计的最简单的一种存储管理
4、技术。其基本思想是,在作业未进入内存之前,就由操作员或操作系统把内存可用空间划分成若干个固定大小的存储区,除操作系统占用一个区域外,其余区域为系统中多个用户共享,因为在系统运行期间,分区大小、数目都不变,所以固定式分区也称为静态分区(如图4.5所示)。图4.5固定式分区内存分配示意图(a)和(b)固定式分区说明表返回本节4.2.2可变式分区存储管理1.空闲分区的组织形式2.内存的分配与回收3.常用的分配算法4.可变式分区的地址重定位图4.6可变式分区内存使用情况示意图1.空闲分区的组织形式在可变式分区存储管理中,常把空闲区组成空闲分区表或空闲分区链表的形式。空闲分区链表的组织是这
5、样的:在每个空闲分区的起始部分开辟出一个单元,存放一个链表指针和该分区的大小,链表指针指向下一个空闲分区。图4.7首次适应算法的空闲分区链表组织形式2.内存的分配与回收当某一个用户作业完成释放所占分区时,系统应进行回收。在可变式分区中,应该检查回收区与内存中前后空闲区是否相邻,若相邻,则应进行合并,形成一个较大的空闲区,并对相应的链表指针进行修改;若不相邻,应将空闲区插入到空闲区链表的适当位置。3.常用的分配算法(1)首次适应算法(2)最佳适应算法(3)最差适应算法图4.8最佳适应算法的空闲分区链表组织形式图4.9最差适应算法的空闲分区链表组织形式图4.10内存使用情况图4.11
6、用三种适应算法处理同一作业序列4.可变式分区的地址重定位可变式分区的地址重定位可采用静态重定位,也可采用动态重定位。采用动态重定位的可变式分区管理技术,在执行内存分配时,如无足够大空闲块,应考虑实现紧凑操作。其分配算法如图4.12所示。可变式分区的存储保护可采用基址——限长存储保护方式。图4.12采用动态重定位的可变式分区分配算法返回本节4.2.3纯分页存储管理1.纯分页存储管理中存储块的分配与回收2.纯分页存储管理的地址重定位问题3.联想存储器4.存储保护返回本节1.纯分页存储管理中存储块的分配与回收纯分页存储管理中,存储块的分配与回收算法比较简单。当作业有存储分配请求时,可以
7、根据逻辑地址的大小计算出需要多少存储块,然后将空闲块分配给它们使用。通常有两种记录空闲存储块的方法:位图法和链表法。操作系统操作系统作业1作业2作业2作业1作业2作业1作业21110100110101010(a)存储块使用情况(b)存储块使用情况的位图表示图4.13存储块的位图管理法2.纯分页存储管理的地址重定位问题要使不连续的、分散的用户程序能正常运行,须采用动态地址重定位。此时,可采用重定位寄存器方式,如分页太多,则重定位寄存器用得太多。通常可在内存中为每个作业开辟一块特定区
此文档下载收益归作者所有