分页存储管理方式的地址转换机构详解
分页存储管理方式的地址转换机构详解
结合操作系统(汤子瀛版)和王道版操作系统,对内存管理中,分页存储管理方式的地址转换进行整理总结(即根据逻辑地址寻找物理地址)
一、基本概念
1.逻辑地址:(工具书中的解释)
(1)在有地址变换功能的计算机中,访问指令给出的地址 (操作数) 叫逻辑地址,也叫 。
(2)把用户程序中使用的地址称为相对地址即逻辑地址。
注 :逻辑地址包含页号和页内偏移两部分,通过页内偏移的位数可以知道页面的大小。(在题目中,有时会给出十进制的数)
2.物理地址:在 里以 为单位存储信息,为正确地存放或取得信息,每一个字节单元给以一个唯一的 。
注 :物理地址包含页帧号和页内偏移两部分,根据逻辑地址查找页表即可找到在内存中的页帧号,物理地址中的页内偏移同逻辑地址中的相同。
3.页、页帧(页框)、块
分页的思想:把主存空间分为大小相等且固定的块,块相对较小,作为主存的基本单位。进程中的块称为页,内存中称为页帧(页框),外存中直接称为块。
4.页表、页表项
(1)为了方便找到每个页号在内存中对应的物理块,系统为 每一个进程 建立一张页表。 注意是为每个进程建立一张页表。
(2)页表中的每一项叫做页表项。
注: 根据页号的位数可以算出页表项数,根据页表项的大小和页表项数可以算出页表的大小。
例:若页号有20位,页表项大小为4B,则页表大小为2的20次方*4B=4MB。题目中页表项大小一般会给出。
注: 注意区分页表长度和页表项长度
(1)页表长度:页表中共有多少页
(2)页表项长度:在页表中页地址占多大的存储空间
5.页表寄存器
在系统中通常设置一个页表寄存器,存放页表在内存中的始址F和页表长度M。进程未执行时,页表的始址和长度存放在进程控制块中,当进程执行时,才将页表始址和长度存入页表寄存器。
二、地址转换(根据逻辑地址求出在内存中的物理地址)
1.根据逻辑地址可找出页号
(1 )若逻辑地址由二进制表示,根据页号位数(或逻辑地址位数-页内偏移位数)即可确定。
(2)若逻辑地址由十进制表示,需要根据页号位数算出页号
例:若逻辑地址为4000,当页内偏移为10位时,页号为4000/1k=3,当页内偏移为11位时,页号为4000/2k=1。
2.判断是否越界
比较页号和页表寄存器中的页表长度,若页号不在查找的页表中,越界中断。
3.在页表中找出页号对应的物理块号
页号对应的页表项地址=页号*页表项长度+页表起始地址
4.求出在内存中的物理地址
(1)在页表中找到页号对应的块号
(2)块内偏移=页内偏移
三、题目求解
1.页面大小
通过页内偏移的位数可以知道页面的大小
2.页表大小
页表长度*页表项大小
3.根据十进制的逻辑地址求出页号在页表中的物理地址
(1)页号的求法见上面(二、1)
(2)页号求出后加上页表起始地址即可
4.求物理地址
参考二(地址转换)
5.未完待续。。。