网站建设与管理自考,做一款什么网站赚钱,肥料网站建设,制作一个购物网站需要多少钱一、概览
重点理解、记忆基本地址变换机构#xff08;用于实现逻辑地址到物理地址转换的一组硬件机构#xff09;的原理和流程
二、基本地址变换机构
基本地址变换机构可以借助进程的页表将逻辑地址转换为物理地址。 通常会在系统中设置一个页表寄存器#xff08;PTR用于实现逻辑地址到物理地址转换的一组硬件机构的原理和流程
二、基本地址变换机构
基本地址变换机构可以借助进程的页表将逻辑地址转换为物理地址。 通常会在系统中设置一个页表寄存器PTR存放页表在内存中的起始地址F和页表长度M。进程未执行时页表的始址和页表长度放在进程控制块PCB中当进程被调度时操作系统内核会把它们放到页表寄存器中。 注意页面大小是2的整数幂 设页面大小为L逻辑地址A到物理地址E的变换过程如下
①根据逻辑地址计算出页号、页内偏移量 ②判断页号是否越界页表长度就是页表中页表项的个数有多少个页表项就有多少个页面。如果页号P 页表长度M则抛出越界中断。否则进入③ ③查询页表找到页号对应的页表项确定页面存放的内存块号根据页号P和页表起始地址F得到该页号对应的页表项在内存块中的地址页号P*页表项大小页表起始地址F。通过页表项在内存块中的地址找到这个页表项之后便可以得到页表项中的内存块号然后进入④ ④用内存块号和页内偏移量得到物理地址b号内存块号即P号页面在内存中的起始地址b*每个内存块的大小。然后得到物理地址 内存块号 * 每个内存块的大小 页面偏移量 ⑤访问目标内存单元 ①计算页号P和页内偏移量W如果用十进制数手算则PA/LWA%L但是在计算机实际运行时逻辑地址结构是固定不变的因此计算机硬件可以更快地得到二进制表示的页号、页内偏移量 ②比较页号P和页表长度M若PM则产生越界中断否则继续执行。注意页号是从0开始的而页表长度至少是1因此PM时也会越界 ③页表中页号P对应的页表项地址页表起始地址F页号P*页表项长度通过页表项地址找到这个页表项并取出该页表项内容b即为内存块号。注意区分页表项长度、页表长度、页面大小的区别。页表长度指的是这个页表中总共有几个页表项即总共有几个页页表项长度指的是每个页表项占多大的存储空间页面大小指的是一个页面占多大的存储空间页面大小L ④计算Eb*LW用得到的物理地址E去访存。如果内存块号、页面偏移量是用二进制表示的那么把二者拼接起来就是最终的物理地址了
例若页面大小L为1K字节页号2对应的内存块号b8将逻辑地址A2500转换为物理地址E。 等价描述某系统按字节寻址逻辑地址结构中页内偏移量占10位(说明一个页面的大小为2^10 B1KB)页号2对应的内存块号b8将逻辑地址A2500转换为物理地址E。 解 ①计算页号、页内偏移量 页号PA/L2500/10242页内偏移量WA%L2500%1024452 ②根据题中条件可知页号2没有越界其存放的内存块号b8容易被忽略的步骤 ③物理地址Eb*LW8*10244528644在分页存储管理页式管理的系统中只要确定了每个页面的大小逻辑地址结构就确定了。因此页式管理中地址是一维的。即只要给出一个逻辑地址系统就可以自动地算出页号、页内偏移量两个部分并不需要显式地告诉系统这个逻辑地址中页内偏移量占多少位。
三、对页表项大小的进一步探讨
每个页表项的长度是相同的页号是“隐含”的 Eg假设某系统物理内存大小为4GB页面大小为4KB的内存总共会被分为2^32 / 2^12 2^20 个内存块因此内存块号的范围应该是 0~2^20-1。因此至少要20个二进制位才能表示这么多的内存块号因此至少要3个字节才够每个字节8个二进制位3个字节共24个二进制位 各页表项会按顺序连续地存放在内存中。如果该页表在内存中存放的起始地址为x则M号页对应的页表项是存放在内存地址为X3*M。 一个页面为4KB则每个页框可以存放4096/31365个页表项但是这个页框会剩余4096%31B页内碎片。因此1365号页表项存放的地址为X3*13651。而如果每个页表项占4字节则每个页框刚好可存放1024个页表项。 1024号页表项虽然是存放在下一个页框中的但是它的地址依然可以用X4*1024得出
结论理论上页表项长度为3B即可表示内存块号的范围但是为了方便页表的查询常常会让一个页表项占更多的字节使得每个页面恰好可以装得下整数个页表项。
四、总结