解:
(1)内存总块数=2MB/512B=4096
位示图需要字数=4096/32=128
(2)字号=(2999-1)/32=93
位号=(2999-1)%32=22
即第2999内存页对应于位示图中93字的22位。
(3)99*32+19+1=3188
即位示图99字19位对应于内存的3188页
(1)作业每一页的长度为多少字节?
(2)写出该作业被装入主存时,其对应的页表。
(3)把该作业的每一页在主存中的起始地址(用16进制表示)填在下表中:
页号 | 起始地址 |
0 | |
1 | |
2 | |
3 |
解:
(1)因为640K/160块 = 4K/块,作业每一页的长度为4K字节
(2)作业被装入主存是,其对应的页表为
页号 | 主存块号 |
0 | 2 |
1 | 4 |
2 | 1 |
3 | 5 |
(3)该作业的每一页在主存中的起始地址(用16进制表示)如下表所示
页号 | 起始地址 |
0 | 2000H |
1 | 4000H |
2 | 1000H |
3 | 5000H |
注:
第0页起始地址为:4K×2=8K = 2×1000H
第1页起始地址为:4K×4=16K = 4×1000H
第2页起始地址为:4K×1=4K = 2×210?= 212?= 1000000000000 = 1000H
第3页起始地址为:4K×5=20K = 5×1000H
(1)主存地址应该用多少位来表示?
(2)作业每一页的长度为多少?逻辑地址中的页内地址(页内偏移/页的大小/页的长度)应占多少位?
(3)把作业中每一页分配到主存块中的起始地址填入下表:
页号 | 起始地址 | 页号 | 起始地址 |
0 | 2 | ||
1 | 3 |
答:(1)因为4M = 22×220 = 222 ,所以主存地址应该用22位二进制来表示。
(2)作业每一页的长度为4MB/1024=4KB
由4K = 22×210 = 212 知逻辑地址中页内地址应占12位。
(3)该作业各页被分配到主存的块号用十六进制表示,分别为1C、1A、0C、39,故各页分配到主存块中的起始地址如下表:
页号 | 起始地址 | 页号 | 起始地址 |
0 | 1C000H | 2 | 0C000H |
1 | 1A000H | 3 | 39000H |
注:4K×1=4K = 2×210?= 212?= 1000000000000 = 1000H
第0页起始地址为:4K×28 = 28×1000H = 1C000H
第1页起始地址为:4K×26 = 26×1000H = 1A000H
第2页起始地址为:4K×12 = 12×1000H = 0C000H
第3页起始地址为:4K×57 = 57×1000H = 39000H
由页长为4KB我们得知:4KB等于2的12次方,页内偏移量在操作系统上的表示每一页的大小,那么这里这个页面大小为12位,也就是通俗的页偏移为12位,用十六进制数来表示即低位3位为0,如**000H。
?
页号 | 物理块号 |
0 | 1 |
1 | 3 |
2 | 4 |
3 | 6 |
解:(1)因为逻辑地址结构图中所示的页内偏移量是12位,所以页大小为4KB,页表项数为232/4K=220×4B,由于页表项大小为4字节,该一级页表最大占用字节数为220×4B=4MB。
(2)因为页面大小为4K,所以在32位逻辑地址中的低12位是页内地址,把逻辑地址2D16H转成二进制:0010?1101?0001?0110,其中低12位部分?1101?0001?0110部分表示页内地址,高位0010表示页号,因此可知页号为2,对应的物理块号为4,将4写成二进制为0100。因为物理块大小与逻辑页面大小一致,因此逻辑地址中的页内地址也就是物理块内的地址偏移,所以物理地址为0100?1101?0001?0110,转换为16进制就是4D16H.
页号 | 物理块号 |
0 | 3 |
1 | 7 |
2 | 11 |
3 | 8 |
解:
(1)每页为1KB,即一页的大小为1KB,由1KB = 210,可知页内偏移是10位,即逻辑地址中低位10位是用来编码页内地址的。
因此可知逻辑地址中高位编码页面地址有22位,页表项大小为4字节,那么页表大小为222×4B?=?22?×220×4B?= 16MB,即页表最大占用字节为16MB。
(2)将逻辑地址0A5C(H)转换成二进制表示为??0000 1010 0101 1100
由页面大小为1KB知逻辑地址0000?1010?0101?1100的后10位?10?0101?1100是页内地址,
逻辑地址的剩余6位高位000010是页面地址,转化为十进制是2,根据查找页表可知,2页对应的物理块号为11,将十进制的11转换为二进制为1011,因此6位高位为001011,与低位地址相拼接后可得物理地址为0010 11 10?0101?1100,转换为十六进制为2E5C(H)
因此,逻辑地址0A5C(H)所对应的物理地址是2E5C(H)。