操作系统原理,地址重定位;物理内存数据,分配,回收;内存管理,固定分区和可变分区存储,页式段式存储
地址重定位
一、内存地址中多个进程被分割在不同的独立的地址空间中
1、程序通常以可执行文件的格式保存在磁盘上,将程序从磁盘装载内存中后才可以运行。
2、多道程序设计模型中允许多个程序同时进入内存
3、操作系统为了将各个进程隔离开,在内存中为每个进程分配了自己的地址空间,一个进程执行时不能访问另一个进程的地址空间,进程也不能对内存执行不合适的操作,例如:访问不属于自己地址空间的内存地址,比如数组访问越界。
二、进程需要的空间
1、在进程空间中的地址不是最终的物理地址,可以理解为是逻辑地址或者相对地址,首地址为0
2、进程运行前无法计算出物理地址,因为并不知道会被加载到内存的什么地方
3、将进程中的逻辑地址装换位可以直接访问的物理内存地址,需要地址重定位的支持,又有地址变换,翻译,映射等术语名称
4、地址重定位就是将进程中逻辑地址装换位内存实际的地址的过程
三、地址重定位种类
1、静态重定位
用户程序加载到内存中时,一次性将逻辑地址转换为物理内存地址,一般由软件完成,但是如果进程改变了位置,就必须重新重定位
2、动态重定位
在进程执行时逐条指令的完成地址转换,需要硬件部件支持,是常用的方法,例如下图