第六章 存储管理
1.存储管理的任务
识记
内存空间的划分
系统区
用以存储操作系统常驻内存部分,用户不能占用这部分空间
用户区
装入并存储用户程序和数据
内存管理问题
内存管理方法
内存的分配和释放算法
虚拟存储器的管理
控制内存和外存之间的数据流动方法
地址变换技术
内存数据保护与共享技术
内存空间的分配与回收
具有的功能
记住每个存储区域的状态
实施分配
回收
内存分配表的组织形式
位示图表示法
空闲页面表
空闲块表
内存分配两种方式
静态分配
目标模块连接转入内存时确定并分配,在程序运行过程中不允许再申请或在内存中“搬家”
动态分配
在程序运行过程中允许申请附加的内存空间或在内存中“搬家”,分配工作可以在程序运行前及运行过程中逐步完成
存储保护问题
为多个程序共享内存提供保障,使在内存中的各道程序,只能访问它直接的区域,避免各道程序间相互干扰
方法
地址越界保护
每个进程都具有其相对独立的进程空间,如果进程在运行时所产生的地址超出其地址空间,则发生地址越界
权限保护
对于允许多个进程共享的公共区域,每个进程都有自己的访问权限
地址转换、地址重定位
将逻辑地址转换为绝对地址
静态重定位
内存在装入一个程序时,要把程序中的指令地址和数据地址全部转换成绝对地址
动态重定位
内存在装入程序时,不进行地址转换,而是直接把程序装入到分配的内存区域中,在程序执行时动态地完成地址转换
2.可变分区存储管理方案
简单应用
固定分区
系统先把内存划分成若干个大小固定的分区,一旦划分好,在系统运行期间便不再重新划分
内存空间浪费,灵活性差
可变分区管理基本工作原理
系统不预先划分固定分区,而是在装入程序时划分内存分区,使为程序分配的分区的大小正好等于该程序的需求量,且分区的个数是可变的
有较大的灵活性,较好的内存利用率
内存分配与算法
最先适应算法
找到第一个能够满足申请长度的空闲区,将其分配
可以快速分配
最优适应算法
找到第一个能够满足申请长度最小的空闲区域,将其分割并分配
最节约空间,会产生碎片
最坏适应算法
找到能够满足申请要求最大的空闲区
避免碎片,但是在遇到较大的程序申请内存时,无法满足要求的可能性较大
地址转换过程
紧缩技术
在适当时刻进行碎片整理,通过移动内存中的程序,把所有空闲碎片合并成一个连续的大空闲区且放在内存的一端,而把所有程序占用区放在内存的另一端
紧缩技术会增加系统的开销
移动是有条件的
应该尽可能减少需要移动的进程数和信息量
3.覆盖技术和交换技术
领会
覆盖技术
一个程序的若干程序段,或几个程序的某些部分共享某一个存储空间。把程序划分为若干个功能上相对独立的程序段,按照其自身的逻辑结构使那些不会同时执行的程序段共享同一块内存区域
彻底解决了内存小装不下程序的问题
优点
打破了需要将一个抽象的全部信息装入内存后程序才能运行的限制
缺点
对用户不透明,增加了用户的负担
交换技术
进程从内存移到磁盘,并再移动回内存成为交换。多用于分时系统
4.虚拟页式存储管理方案
简单应用
虚拟存储技术的基本思想
利用大容量的外存来扩充内存,产生一个比有限的实际内存空间大得多的、逻辑的虚拟内存空间,简称虚存
实现虚拟存储器需要的硬件支持
系统有容量足够大的外存
系统有一定容量的内存
硬件提供实现虚-实地址映射的机制
虚拟存储器的工作原理
当程序开始运行时,先将一部分程序装入内存,另一部分暂时留在外存;当要执行的指令不在内存时,由系统自动完成将它们从外存调入内存的工作;当没有足够的内存空间时,系统自动选择部分内存空间,将其中原有的内容交换到磁盘上,并释放这些内存空间供其他进程使用
虚拟页式存储
优点
解决碎片问题
提高了内存的利用率
有利于组织多道程序执行
缺点
存在页面空间的浪费问题
最后一页内总有一部分空间得不到利用
虚拟存储与交换技术的区别
交换技术交换到外存上的对象是以进程为单位,而虚拟存储则是以页为单位
缺页异常处理
发生缺页时,操作系统必须在内存中选择一个页面将其移除内存,以便为即将调入的页面让出空间
5.典型的页面置换算法
综合应用
最佳页面置换算法(理想页面置换算法)
先进先出算法(FIFO)
最近最少使用算法(LRU)
颠簸或抖动
刚被调出的页面又立即要用,因而又要把它装入,而装入不久又被选中调出,调出不久又被装入,如此反复,使调度非常频繁
第六章 存储管理
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.