以一个例子的形式讲解:某虚拟存储器的用户编程空间

逻辑地址到物理地址的转换以例子的形式来说明:

一个虚拟内存的用户编程空间共有32页逻辑地址转换为物理地址,每页1KB逻辑地址转换为物理地址,内存16KB。假设某一时刻用户页表中已加载到内存的页的页号和物理块号的对照表如下:

图片[1]-以一个例子的形式讲解:某虚拟存储器的用户编程空间-老王博客

那么逻辑地址0A5C(H)对应的物理地址是什么?要求:写出主要的计算过程。

图片[2]-以一个例子的形式讲解:某虚拟存储器的用户编程空间-老王博客

逻辑地址 = 页号 + 页地址

物理地址=块号+页地址

Pages:作业地址空间被分成大小相等的区域

块(物理块):内存存储空间也被划分为与页面大小相等的区域,这些区域称为块。

页表:为了在内存中找到进程的每一页对应的物理块,系统为每个进程建立了页映射表。

已知

用户编程空间一共有32页,2^5=32要知道页码部分占5位

从“每页为1KB”,1K=2^10,可以看出内页地址占10位。

逻辑地址0A5C(H)对应的二进制表示为:0000101001011100,1001011100的后十位为页内地址。

由“内存为16KB”,2^4=16,我们知道块号占4位。

图片[3]-以一个例子的形式讲解:某虚拟存储器的用户编程空间-老王博客

00010为页码,十进制的页码为2,对照表中找到2对应的物理块号为11,11转换成二进制为1011

可以得到物理地址为10111001011100,转换成16进制为2E5C

即逻辑地址0A5C(H)对应的物理地址为2E5C

示例 2

图片[4]-以一个例子的形式讲解:某虚拟存储器的用户编程空间-老王博客

物理地址 = 块号 x 块长度 + 页内地址

页长为4kb,即2^12,页内偏移量为12位。

3000 (10) 等于 000101110111000 (2)

即页码为0,页内地址等于101110111000(2)

块号 3 或 11 的页码 0 (2)

物理地址 11101110111000 (2)

即3X4k+3000等于15288

十六进制值为 3BB8

12000 (10) 等于 2EE0(H)

所以物理地址是6EE0(H)

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论