ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

基本地址变换机构

2022-02-08 18:31:08  阅读:240  来源: 互联网

标签:基本 机构 地址 页表 长度 页面 地址变换 内存


 

 



一、基本地址变换结构
基本地址变换结构可以借助进程的页表将逻辑地址转换为物理地址。
通常在系统中设置一个页表寄存器(PTR Page-Table Register),存放页表在内存中起始地址F和页表长度M。
进程在未执行时,页表的起始地址和页表长度放在进程控制块(PCB)中,当进程被调度时,操作系统内核会把它们放在页表寄存器中。

 

 

 

 

逻辑地址到物理地址变换的过程:

计算页号P和页内偏移量W(如果用手算,P=A/L,W=A%L;但是在计算机实际运行中,逻辑地址结构是固定不变的,因此计算机硬件可以更快地得到二进制表示的页号、页内偏移量)
比较页号P和页表长度M,如果P>=M,则会产生越界中断,否则继续执行(注意:页号是从0开始的,则页表长度至少是1,因此P=M时也会越界)
页表中页号P对应的页表项地址 = 页表始址F + 页号P * 页表项长度,取出该页表项内容b,即内存块号
计算实际物理地址E = b * L + W,用得到的物理地址E去访存
注意页表项长度、页表长度、页面大小的区别:

页表长度是指页表最多能有多少个页表项,即总共有几个页
页表项长度指每个页表项所占用的内存大小
页面大小指一个页面占多大的内存空间
注意:页面大小是2的整数幂

 

 

二、例题
例:若页面大小L为1K字节(1024),页号2对应的内存块号b=8,将逻辑地址A=2500转换为物理地址E

等价描述:某系统按字节寻址,逻辑地址结构中,页内偏移量占10位(说明一个页面的大小为2^10B=1KB),页号2对应的内存块号b=8,将逻辑地址A=2500转换为物理地址E

 

在分页存储管理(页式管理)系统中,只要确定每个页面的大小,逻辑地址结构就可以确定。

因此,页式管理中地址是一维的。

即,只要给出一个逻辑地址,系统就可以自动算出页号、页内偏移量。

 

 

三、对上一小节的页表项大小进行进一步探讨
https://blog.csdn.net/dyw_666666/article/details/107166904

 

为什么每个页表项的长度是相同的,而页号是隐含的?

4GB = 2^32B,4KB = 2^12B

例:假设某系统物理内存大小为4GB,页面大小为4KB的内存总共会被分为2^32 / 2^12 = 2^20个内存块,因此内存块号的范围应该是0~2^20-1

因此至少要20个二进制位才能表示这么多内存块号,因此至少要3个字节才够

(每个字节8个二进制位,3个字节共24个二进制位)

 

 


各页表项会按顺序连续地存放在内存中
如果该页表在内存中存放的地址为X,则M号页对应的页表项存放的地址为:X + 3*M

 

一个页面为4KB(4096),则每个页面可以存放 4096 / 3 = 1365个页表项,但是这个页面会剩余 4096 % 3 = 1B页内碎片

因此,1365号页表项存放的地址为 X + 3*1365 +1

那么,如果每个页表项占4字节,则每个页框刚好可存放1024个页表项

1024号页表项虽然是存放在下一个页框中的,但是它的地址依然可以用 X + 4*1024得出

 

结论:理论上,页表项长度为3B即可表示内存块号的范围,但是为了方便页表的查询,常常会让一个页表项占更多的字节,使得每个页面恰好可以装得下整数个页表项

 

基本地址变换结构需要访问两次内存:

第一次访问内存查找页表;

第二次访问物理内存对应的内存单元。

 

 

四、小结

 

 


地址变换过程易出大题。

标签:基本,机构,地址,页表,长度,页面,地址变换,内存
来源: https://www.cnblogs.com/magicg/p/15872392.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有