一个分页存储管理系统中,页号长度为22比特,页内偏移为12比特。物理地址空间中,每个地址有32位。页表中,每个页表项的长度为32比特的整数倍。 (1)该系统中,进程的逻辑地址空间最大是多少?进程的每个页面有多少字节?页框号的长度是多少比特?(4分) (2)采用一级页表,每个进程的页表大小为多少字节?该系统是否需要启用二级页表,为什么?(4分
时间: 2024-03-30 20:36:46 浏览: 85
好的,我明白了,下面是我的回答:
(1)进程的逻辑地址空间最大为 $2^{22}$ 个页面,即 $2^{22} \times 2^{12} = 2^{34}$ 个字节。
每个页面有 $2^{12}$ 个字节。
页框号的长度为 $32-12=20$ 比特。
(2)每个进程的页表大小为 $2^{22} \times 4 = 2^{24}$ 字节,其中 $2^{22}$ 个页表项,每个页表项长度为 4 字节(32 比特)。
该系统不需要启用二级页表,因为一级页表大小为 $2^{24}$ 字节已经足够存储所有的页表项。只有当一级页表大小无法存储所有的页表项时,才需要启用二级页表。
相关问题
[10%] 一个分页存储管理系统中,页号长度为22比特,页内偏移为12比特。物理地址空间中,每个地址有32位。页表中,每个页表项的长度为32比特的整数倍。 (1)该系统中,进程的逻辑地址空间最大是多少?进程的每个页面有多少字节?页框号的长度是多少比特?(4分) (2)采用一级页表,每个进程的页表大小为多少字节?该系统是否需要启用二级页表,为什么?(4分) (3)该系统中,逻辑地址空间大于物理地址空间,这类系统正常运行需要采取什么措施?(2分)
(1) 进程的逻辑地址空间最大为 $2^{22}$ 个页面,每个页面有 $2^{12}$ 个字节。
页框号的长度为 $32-12=20$ 比特。
(2) 采用一级页表,每个进程的页表大小为 $2^{22} \times 32$ 比特,即 $2^{19}$ 字节。该系统不需要启用二级页表,因为一级页表已经可以覆盖所有的逻辑地址空间。
(3) 该系统中,逻辑地址空间大于物理地址空间,需要采取虚拟内存技术。具体措施包括将物理内存分成若干个固定大小的页框,每个进程分配若干个页框,将进程的部分页面存储在物理内存中,将不常用的页面存储在磁盘上,当进程访问不在物理内存中的页面时,触发缺页中断,操作系统将对应页面从磁盘中读入到空闲的页框中,然后重新执行引起缺页中断的指令。这样,即使逻辑地址空间大于物理地址空间,也可以正常运行程序。
3.某分页式系统的用户空间共有32个页面,每页1KB,主存16KB。试问: (1)逻辑地址的有效位是多少? (2)物理地址需要多少位? (3)假定某时刻系统用户的第0,1,2,3页分别分配的物理块号为5,10,4,7,试将虚地址0x0A5C和0x093C变换为物理地址。(8分) 答:
(1) 5位,因为需要5个比特才能表示32个页面。
(2) 14位,因为需要14个比特才能表示16KB的主存空间。
(3) 虚地址0x0A5C对应的逻辑页号为10,偏移量为0x5C。转换为物理地址需要先找出逻辑页号10对应的物理块号,即第10个页面所在的物理块号为12(分配的物理块号=逻辑页号+4),再将偏移量0x5C加上物理块号12的起始地址(12*1KB=12288),得到物理地址为0x30B8。
虚地址0x093C对应的逻辑页号为9,偏移量为0x3C。转换为物理地址需要先找出逻辑页号9对应的物理块号,即第9个页面所在的物理块号为13(分配的物理块号=逻辑页号+4),再将偏移量0x3C加上物理块号13的起始地址(13*1KB=13312),得到物理地址为0x344C。
阅读全文