存储器管理
原因: 容量虽不断扩充,仍不能满足现代软件和用户的需要,是一种宝贵、紧俏的资源;
多层次处理,协调CPU与存储设备的速度差距;
功能: 重点是内存管理,对其有效的管理直接影响存储器的利用率、系统性能。
存储器资源的分配和回收
地址变换(逻辑地址与物理地址的对应关系维护)
存储共享和保护
虚拟存储的调度算法
外存的管理:磁盘存储器管理、文件系统等中涉及。
- 程序的装入和链接
多道程序环境下,程序运行必须为之先建立进程。
创建进程的第一件事:将程序和数据装入内存。
程序进内存的一般过程:
- 编译compiler:编译程序:将用户源代码编译成若干个目标模块。
- 链接link:链接程序:将形成的一组目标模块,及它们需要的库函数链接在一起,形成一个完整的装入模块。
- 装入load:由装入程序将装入模块装入内存,构造PCB,形成进程,开始运行(使用物理地址)。
1)地址的概念
逻辑地址(相对地址,虚地址)
用户的程序经过汇编或编译后形成目标代码,目标代码中的指令地址是相对地址。
一般首地址为0,其余指令中的地址都相对于首地址来编址
不能用逻辑地址在内存中读取信息
逻辑地址(相对地址,虚地址)
物理地址(绝对地址,实地址)
内存中存储单元的地址
物理地址可直接寻址被执行
地址映射:
将用户程序中的逻辑地址转换为运行时由机器直接寻址的内存物理地址的过程 即:用户的第10字节处的指令在内存的第多少地址上
2)程序装入中的地址处理
绝对装入(逻辑地址=物理地址)
静态重定位装入(逻辑地址 à重定位à 物理地址)
动态运行时重定位装入(逻辑地址 à重定位à 物理地址)
- 不同的程序链接装入方式(使用内存的时机)
静态链接 装入时链接 运行时链接
重定位:把目标程序中的指令和数据的逻辑地址变成内存中的物理地址的地址变换过程。