存储器管理功能概述
主存分配
- 要完成内存的分配和回收工作,要求设计者选择和确定几种策略和结构:
★ 调入策略
★ 放置策略
用户程序调入内存时,确定将其放置在何处的策略。
★ 置换策略
将需要将某个用户程序调入内存而内存又不够时,就需要确定哪个程序可以从内存中移走。
★ 分配结构
(1)用来登记内存中使用情况的数据结构
(2)如位位示图,空闲分区表,队列等。 - 引起内存分配和回收的原因
- 进程的创建于撤销
- 进程运行过程中所占用的内存也可能发生变化,如栈的变化。
- 进程映像在内存和外存之间传递
- 为了充分利用内存空间,系统有时可能会对内存空间进行调整
地址映射(地址重定位)
- 内存的每个存储单元都有一个编号称为内存地址(物理地址,绝对地址)
- 内存地址的集合称为内存空间
- 要求用户使用内存地址编程是非常困难的,尤其是在多道批处理系统
- 用户编程所用的地址称为逻辑地址
★把用户程序装入内存时对相关指令的地址部分的修改定义为从程序地址到内存地址的地址映射,或称为地址重定位。
存储保护
保证在内存中的多道程序只能在在给定的存储区域内活动并互不产生干扰。
存储保护的硬件支持
★ 界地址寄存器(界限寄存器):被广泛的使用的一种存储保护技术。
实现方法
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7wmyalEu-1606619880791)(/img/存储保护实现方法.png)]
主存扩张(虚拟内存)
★为了使程序员在编程时不受内存的结构和容量的限制,系统为用户构造了一种存储器,使结构可能与内存结构不同,容量可能远远超过内存的实际容量。
★这种面向编程的存储器叫做虚拟存储器。有虚拟存储构成的存储空间称为虚拟空间,或称为虚地址空间。
实现的基本原理
- 由于程序在执行时,在一段时间一般仅使用它的程序的一部分,所有程序仅有部分装入内存完全能够正确执行。
- 将程序正在使用部分的内容放在内存,而暂时不用的部分放在外存,在需要时由系统调入内存,并将不需要的部分调出内存。
- 有OS结合相关硬件来实现上述工作。
并将不需要的部分调出内存。
- 有OS结合相关硬件来实现上述工作。