您的位置:首页 > 其它

分页系统管理中的物理地址

2017-04-15 07:54 1246 查看

简单的定义:

逻辑地址=页号P+偏移量W

物理地址=某程序指定页的块号+偏移量W

分页地址

地址结构(逻辑地址):



图中地址长度一共32位,其中0~11位为页内地址,即每页的大小为2^12B = 4KB;12~31位为页号,最多允许有1M = 2^20B = 1024KB页。

页号P和页内地址d可以以下公式求得:



举个小例子:如果某系统的页面大小为1KB,设A = 3200B,

那么P = 3200B/1024B = 3, d = 3200B%1024 = 128

页表

首先

页表结构如下:

页表结构如下:



配置了页表后,当进程执行时,通过查找该表,即可找到每页在内存中的物理块号,因此,页表的作用就是实现了从页号到物理块号的地址映射。

下面看一个题目:

假设在某分页存储管理中,页号大小为4KB。有某进程的页号0~8对应物理块号8,9,10,15,18,20,21,22.求该进程逻辑地址05AF8H所对应的物理地址.

根据页面大小:4KB = 2^12,说明0~11位页内地址,也就是位偏移量W = 4KB,

根据最开始的公式:

逻辑地址=页号P+偏移量W

物理地址=某程序指定页的块号+偏移量W,

那么如何求块号P呢,根据上述页表的结构,再看题目,题目中给出了页号对应的块号,所以我们只要得到页号就行,怎么求页号呢?

根据逻辑地址求页号:逻辑地址05AF8H,是16进制的,化成对应的二进制形式,0000 0101 1010 1111 1000 ,后0~11位是页内偏移,就是偏移量=1010 1111 1000,前面部分就是P = 0101 = 5(10进制),求得对应的块号是20,所以

最后,物理地址=块号*页面大小+偏移量 = 20*4KB+1010 1111 1000KB,化成二进制就是 0001 0100 1010 1111 1000,化成十六进制就是14AF8 H
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  管理 分页
相关文章推荐