1.地址转换过程
访问3次内存,第一次是段表,第二次是页表,第三次是真正物理内存
在段页式系统中,为了便于实现地址变换,须配置个段表寄存器,其中存放段表始址和段长TL。进行地址变换时,
1)首先利用段号s,将它与段长TL进行比较。若S<TL,表示未越界,
2)于是利用段表始址和段号来求出该段所对应的段表项在段表中的位置,从中得到该段的页表始址,
3)并利用逻辑地址中的段内页号P来获得对应页的页表项位置,如果页号P小于页表长度,表示未越界。
4)从中读出该页所在的物理块号b,再利用块号b和业内地址来构成物理地址
2.例题(1)
在一个采用段页式存储管理的系统中,页的大小为1KB。某个正在执行的作业情况如下
(1)将逻辑地址(2,3500)转换成物理地址
解析过程:
1.逻辑地址中的段号2跟段表控制寄存器中的段表长3进行比较,由于2<3,故段号没有越界;
2.根据段表控制寄存器中的段表起始地址加上段号2,找到段表中对应于第2段的段表项,从而得到第2段的页表长度和页表起始地址;
3.根据段内偏移3500得到段内页号为3,具体做法用3500/1024(1KB)剩余428,所以偏移量为428
4.把段内页号3和段表项中的页表长度5进行比较,得知页号没有越界;
5.页表起始地址加上页号得到对应的页表项,从而得到第2段的第3页的物理块号30;
6.物理块号30和块内偏移428拼接成的物理地址30*1024+428等于31148;
7.逻辑地址(2.3500)对应的物理地址为十进制数31148,十六进制数79AC
十进制转换成十六进制
每次除以16,写出除数和余数,再将商除以16,以此类推,最后将所有除数倒放
例题(2)
某虚拟存储器的用户编程空间共32个页面,每页为1KB,内存为16KB。假定某时刻一用户页表中已调入内存的页面的页号和物理块号的对照表如下:
页号 物理块号
0 3
1 7
2 11
3 8
则逻辑地址0A5C(H)所对应的物理地址是什么?要求:写出主要计算过程。
解法一
首先将0A5C(H)十六进制转换成十进制,等于10 *256 +5 *16+12 *1=2652
用2652%1024=2....604
所以可得页号为2,偏移量为604,对照页号与物理块号的对应表,可得页号为2时的物理块号为11,所以可以计算得物理地址
物理地址:11*1024+604=11868
将十进制转换成十六进制得2E5C
解法二
首先要知道页式存储管理的逻辑地址分为两部分:页号和页内地址。物理地址分为两部分: 关系为: 逻辑地址= 页号+页内地址 物理地址= 块号+页内地址; 分析题:(求出页号.块号和页内地址是关键) 已知:用户编程空间共32个页面,2ˆ5 = 32 得知页号部分占5位,由“每页为1KB”,1K=210(2的十次方),可知页内地址占10位。 由“内存为16KB”,2^4=16得知块号占4位。 逻辑地址0A5C(H)所对应的二进制表示形式是: 000010 1001011100,后十位1001011100是页内地址, 前五位是00010为为页号,页号化为十进制是2,在对照表中找到2对应的物理块号是11,11转换二进制是1011,即可求出物理地址为10111001011100,化成十六进制为2E5C; 即则逻辑地址0A5C(H)所对应的物理地址是2E5C 原文链接:页表实现从逻辑地址到物理地址的转换_阿 含的博客-CSDN博客_页表的作用是实现逻辑地址到物理地址的映射