内存管理

1.内存管理的功能:内存空间的分配与回收、地址转换、内存空间的扩充、内存共享、内存保护

2.创建进程的步骤:编译、链接、装入

其中装入分为:

a.绝对装入

b.可重定位装入

c.动态运行时装入

链接分为:

a.静态链接

b.装入时动态链接

c.运行时动态链接

3.逻辑地址和物理地址

a.编译后每个目标模块都从0号单元开始编址,称为目标模块的相对地址(逻辑地址).

b.物理地址是指内存中物理单元的集合,是地址转换的最终地址.当装入程序的可执行代码装入内存时,必须通过地址转换将逻辑地址转换为物理地址,此过程称为地址重定位.

c.操作系统通过MMU将进程使用的逻辑地址转换为物理地址。逻辑地址通过页表映射到物理内存,页表由操作系统维护并被处理器引用.

4.进程的内存映像:当一个程序调入内存运行时就构成了进程的内存映像,要素如下:

代码段:只读,二进制代码

数据段:程序运行时加工的对象,包括全局和静态变量

PCB:系统区,os通过pcb管理进程

heap:用于存放动态分配的变量,c中通过调用malloc动态由低到高地址分配空间

stack:用于实现函数调用,由高到低地址增长

5.内存保护

a.在CPU中设置上下限register

b.采用重定位寄存器(用来加)和界地址寄存器(用来比)进行越界检查