操作系统综合题之“采用二级页表的分页存储管理方式,计算页目录号的位数 和 页的大小,给定页目录项大小计算页目录表大小,给定逻辑地址计算页内偏移量和物理地址”

一、问题:某计算机系统的主存按字节编址,逻辑地址和物理地址都是32位,其内存管理采用两级页表的分页存储管理方式。逻辑地址中页号为10位,页内偏移地址为12位。该计算机系统的两级页表结构如下图所示,图中数值均为十进制数

1.页目录号的位数为多少?页的大小为多少KB?

2.如果页目录项大小为4字节,这一个页目录表最大为多少KB

3.设某逻辑地址为0x00402269,其页内偏移量是多少?该逻辑地址对应的物理地址是多少?(用十六进制表示)

 

二、参考答案

1.

页目录号的位数 = 32 - (10 + 12) = 10

页大小 = 212 = 4KB

 

2.页目录表大小 = 页目录项大小 * 2页目录号位数 = 4 * 210 = 4KB

 

3.

逻辑地址0x00402269 中分析得到二进制

0000 0000 0100 0000 0010 0010 0110 1001

页内偏移量 = 12 ,所以截取逻辑地址的二进制0 ~ 11位 = 0010 0110 1001 转十六进制 = 0x269

页号 = 10 ,所以截取逻辑地址的二进制12 ~ 21位 = 00 0000 0010 ,转十六进制 = 0x2

页目录号 = 10 ,所以截取逻辑地址的二进制22 ~ 31位 = 0000 0000 01,转十六进制 = 0x1

根据页目录项号 = 1和页号 = 2,查找页表1的2号页,得页框号121

物理地址 = 页框号 * 页大小 +页内偏移量 = 121 * 4KB + 0x269 = 495616 + 0x267 = 0x00079000 + 0x267 = 0x00079267

 

posted @   骚哥  阅读(633)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示