一、主存的无力组织和逻辑组织
1. 绝对地址
计算机中,存储器是按字组织,每个字由若干”位“组成(不同计算机子长不同),每个字分配一个地址
目前以多字节为单位进行编址
系统对存储器中的单元进行统一编号,这些编号就是绝对地址
寻址容量与地址线长度有关,n 条地址线可寻址空间为:2n
绝对地址是内存的真实地址——物理地址
存储空间(物理地址空间):绝对地址集合
2. 虚拟地址(相对地址)
虚拟地址:相对于某个基准量(通常是 0)编址时所使用的地址,用户程序编写和编译过程中使用相对地址
名空间:程序员所写符号名组成名空间
地址空间:一个目标程序所限定的地址集合
名空间 ==> 地址空间 ==> 存储空间
二、地址转换
程序执行时,必须将地址空间变为绝对地址才能访问系统分配的内存
地址重定位:操作系统把用户程序指令中的相对地址变换成为所在存储中的绝对地址的过程
地址重定位实现了:从逻辑地址到物理地址的转换
按照重定位时机分类:静态重定位、动态重定位
1. 地址的静态重定位
定义:在程序运行之前,为用户程序实行了地址重定位工作
一般由操作系统中的重定位装入程序完成
重定位装入程序的输入:用户把自己的作业链接装配成一个相对于 0 编址的目标程序
过程:
重定位装入程序根据当前内存的分配情况,按照分配区域的起始地址逐一调整目标程序指令中的地址部分。目标程序在经过重定位装入程序加工之后,不仅进入到分配给自己的绝对地址空间中,而且程序指令中的地址部分全部进行了修正,反映出了自己正确的存储位置,保证了程序的正确运行
特点:
在装入前实现调整
地址要有标识
每次装入都要进行定位
装入后地址不再改变(静态)
2. 地址的动态重定位
定义:在程序执行寻址时进行重定位,访问地址时,通过地址变换机构改变为内存地址
用户程序原封不动的装入内存,运行时再完成地址的定位工作
动态重定位需要硬件的支持,要求系统中配备定位寄存器和加法器
特点:
程序可装入任意内存区域(不要求占用连续的内存区)
只装入部分程序代码即可运行
改变系统时不需要改变程序(程序占用的内存空间动态可变,只需要改变定位寄存器中的值即可)
程序可方便共享