一.页式存储-地址转换
访问2次内存,第一次是页表,第二次是真正的物理内存。
二级页表,访问3次内存
两个例子的形式讲解逻辑地址到物理地址的转换:
(1)
页系统页表
: 页号: 0 1 2 3 4 5 块号: 3 5 x 4 1 2 每页
2KB 计算逻辑
址1369
物理
址
解:
页面大小为=2*1024,所以有:
1369/(2*1024)=0 (取商,算出页号)1369%(2*1024)=1369(取余算出页内地址) 3*2*1024+1369=7513
(2)某虚拟存储器的用户编程空间共32个页面,每页为1KB,内存为16KB。假定某时刻一用户页表中已调入内存的页面的页号和物理块号的对照表如下:
页号 | 物理块号 |
0 | 3 |
1 | 7 |
2 | 11 |
3 | 8 |
则逻辑地址0A5C(H)所对应的物理地址是什么?要求:写出主要计算过程。
解题过程:
首先要知道页式存储管理的逻辑地址分为两部分:页号和页内地址。物理地址分为两部分:
关系为:逻辑地址= 页号+页内地址
物理地址= 块号+页内地址;
分析题:已知:用户编程空间共32个页面,2ˆ5 = 32 得知页号部分占5位,由“每页为1KB”,1K=210,可知内页地址占10位。
由“内存为16KB”,2^4=16得知块号占4位。
逻辑地址0A5C(H)所对应的二进制表示形式是:0000101001011100,后十位1001011100是页内地址,
00010为为页号,页号化为十进制是2,在对照表中找到2对应的物理块号是11,11转换二进制是1011,即可求出物理地址为10111001011100,化成十六进制为2E5C;
即则逻辑地址0A5C(H)所对应的物理地址是2E5C;
总结:仔细研究上面的两种方法,其实是一样的。第二种的已经页面大小为1KB,然后就是2的10次方,所以后面10位是偏移地址,前面的是页号。其实用逻辑除页面大小2的10次方,结果是一样的。
一.段页式存储-地址转换
访问3次内存,第一次是段表,第二次是页表,第三次是真正物理内存
1.基本原理:是分页与分段的结合,即先将拥护程序分为若干段,再把每个段分为若干页,并为每个段赋予一个段名。
2.地址结构:
3.地址变换:
4.一个逻辑地址为:基地址x、段号s、页号p和页内地址d,求物理地址
(((x)+s)+p)*2^(11)+d