操做系统--地址空间、地址安全检测、重定位寄存器

1、物理地址空间与逻辑地址空间的区别

一、程序通过编译后,每一个目标模块都是从0号单元开始编址,称为该目标模块的相对地址(或逻辑地址)。程序员

二、当连接程序将各个模块连接成一个完整的可执行目标程序时,连接程序顺序依次按各个模块的相对地址构成统一的从0号单元开始编址的逻辑地址空间编程

三、用户程序和程序员只需知道逻辑地址,而内存管理的具体机制则是彻底透明的,它们只有系统编程人员才会涉及。安全

四、不一样进程能够有相同的逻辑地址,由于这些相同的逻辑地址能够映射到主存的不一样位置。操作系统

五、物理地址空间是指内存中物理单元的集合,它是地址转换的最终地址,进程在运行时执行指令访问数据都要经过物理地址从主存中存取。当装入程序(Loader)将可执行代码装入内存时,必须经过地址转换将逻辑地址转换成物理地址,这个过程称为地址重定位code

在这里插入图片描述

2、地址安全检测

1)内存分配前,须要保护操做系统不受用户进程的影响,同时保护用户进程不受其余用户进程的影响。进程

2)经过采用重定位寄存器界地址寄存器来实现这种保护。重定位寄存器含最小的物理地址值,界地址寄存器含逻辑地址值。每一个逻辑地址值必须小于界地址寄存器,图片

3)内存管理机构动态的将逻辑地址与界地址寄存器进行比较,若是未发生地址越界,则加上重定位寄存器的值后映射成物理地址,再送交内存单元。内存

4)当CPU调度程序选择进程执行时,派遣程序会初始化重定位寄存器和界地址寄存器。每个逻辑地址都须要与这两个寄存器进行核对,以保证操做系统和其余用户进程(程序)及数据不被该进程的运行所影响。内存管理

在这里插入图片描述若是地址越界,会出现内存访问异常!
重定位寄存器就是段寄存器或页寄存器,也叫基址寄存器
段寄存器是存在于段式存储管理,段寄存器存的是段基址
页寄存器是存在于页式存储管理,页寄存器存的是起始页号编译

相关文章
相关标签/搜索