题型二:地址转换
地址转换分两种:基本的地址变换机构和具有快表的地址变换机构。快表稍复杂,老师不会难为我们的,往年题考的都是基本的地址转换,我在这里只讲解前者。
该类题型中主要出现如下参数:用户编程空间的页面个数、每页的大小(页长)、主存的大小(内存空间的大小)、虚拟页号(虚页)、物理块号(页框)
该类题型主要3问:1、判断某虚拟地址在转换过程中是否缺页
2、求虚拟地址对应的物理地址
3、画出地址转换过程
我们来直接看一道例题:
例1:在⼀个分页虚拟存储系统中,⽤户编程空间为32个页,页面大小为1 KB,内存空间为16 KB。如若已知
虚拟页号物理块号
04
17
28
310
(1)、判断虚拟地址0AC5(H)在转换过程中是否缺页。
(2)、若未缺页,把虚拟地址 0AC5(H)转换为对应的物理地址。
(3)、画出地址转换过程
解:
(1)由表
2-16进制转换表
01234
00000001001000110100
56789
01010110011110001001
A(10)B(11)C(12)D(13)E(14)F(15)
101010111100110111101111
将0AC5H转换成二进制,得:0000 1010 1100 0101
页面大小 1 KB = 2^10 ,说明后10位(紫色)表⽰的是页内偏移地址
页面个数 32 = 2^5,说明页内偏移地址的前面五位(红色)是页号地址
将页号地址单独拿出来00010转换为10进制,得页号地址为2
因为2存在于题中给出的虚拟页号(0、1、2、3)中,所以不缺页。
(2)
上一问求得0AC5H的页号地址为2,由题中页表可知0AC5H对应物理块号为8
将物理块号8,转换为二进制,得01000(注:物理块号转换为二进制的位数=Log2(内存空间大小/页面大小))
将橙色的01000替换掉0000 1010 1100 0101中的红色部分,得0010 0010 1100 0101,再将0010 0010 1100
0101转换为16进制22C5H,即为要求的虚拟地址 0AC5(H)转换为对应的物理地址
(3)模仿着画即可
注意:有时题目中给出的逻辑地址是10进制,我们把它转换成二进制继续做即可,步骤不变。
例2:某虚拟存储器的用户编程空间共32个页面,每页为2kB,内存为16kB。假定某时刻一用户页表中已调入内存的页面的页号和物理块号的对照表如下:
页号 物理块号
0 5
1 10
2 4
3 7
则逻辑地址1A5C(H)所对应的物理地址是什么
解:
页式存储管理的逻辑地址分为两部分:页号和页内地址。由已知条件“用户编程空间共32个页面”,可知页号部分占5位,由“每页为2KB”,可知页内地址占11位。由“内存为16KB,页大小为2KB”,可知Log2(16kb/2kb)=3,块号为3位。
逻辑地址1A5C(H)所对应的二进制表示形式是:0001 1(010 0101 1100) ,根据上面的分析,()内的为页内地址,编码“0001
1”为页号,表示该逻辑地址对应的页号为3。查页表,得到物理块号是7(十进制),即物理块地址为:0011 1 ,拼接页内地址010 0101
1100,得0011 1010 0101 1100,即3A5C(H)。
谢谢“碧桃和露”5月22号打赏给我的8毛钱
谢谢“qq_52937762”5月23号打赏给我的1.6元