软考
APP下载

页式存储管理地址转换例题csdn

概述

页式存储管理是现代操作系统中常用的一种管理方式。它将程序的地址空间划分成等大小的页,使得程序的不同部分可以被分别装入不同的物理内存中。当程序执行时,需要将逻辑地址转换成物理地址。本文将以一个例题为背景,从多个角度分析页式存储管理中的地址转换过程。

例题

假设页大小为4KB,则一个32位地址将被划分成以下三个部分:

| Tag | Page | Offset |

|:---:|:----------------------:|:--------:|

| 22 | 9 | 11 |

其中Tag表示页在磁盘上的位置,Page表示页内偏移量,Offset表示页内偏移量。现有一个虚拟地址0x00EA1C64,问对应的物理地址是多少?

方案

首先需要将32位虚拟地址分成三个部分,即Tag、Page和Offset。由于页大小为4KB=2^12 B,所以Page需要占用12位。那么将EA1C64转换成二进制后,可以得到以下三个部分:

| Tag | Page | Offset |

|:--------:|:------------------------:|:------------------------:|

|0010111000|000000001110|100001100100|

根据Tag和Page来查询对应的物理页框,具体可参考操作系统可用的页表实现。假设查询得到的物理页框号为PMMU:

| Tag | Page | Offset |

|:--------:|:------------------------:|:------------------------:|

|0010111000|000000001110|100001100100|

| 22 | 9 | 11 |

|xxxxxxx | yyyyyyy | xxxxxxxxxxxxx |

| PMMU | yyyyyyy | 100001100100 |

由于页表查询时需要写操作,需要进行锁住,同时也要防止线程冲突,具体锁住的资源包括页表项、页表等。

根据查询得到的PMMU和Offset,可得到物理地址:

| Physical Address |

|:---------------------------------:|

| PMMU:yyyyyyy << 12 | 100001100100 |

备考资料 免费领取:软件设计师报考指南+考情分析+思维导图等 立即下载
真题演练 精准解析历年真题,助你高效备考! 立即做题
相关阅读
软件设计师题库