页式地址变换 您所在的位置:网站首页 1kb表示的进制位数是什么 页式地址变换

页式地址变换

2023-07-19 14:18| 来源: 网络整理| 查看: 265

先来看看网上的一道例题(其实网上有解析,但我第一遍没反应过来……所以把现在的理解写下来,以防之后又迷了) 题目一:有一系统采用页式存储管理,有一作业大小是8KB,页大小为2KB,依次装入内存的第7、9、A、5块,试将虚地址0AFEH转换成内存地址。 先来明确一下地址结构的分布 在这里插入图片描述前一部分为页号 P,后一部分为位移量 W(或称为页内地址)。 也就是说页号占虚地址的高位部分,页内地址占虚地址的低位部分

题目有两种出题的方式,一种是给你的虚地址不是十进制,可能是十六进制,八进制等,就比如上面的这题

题目给出的虚拟地址是十六进制,为什么是十六进制呢,看0AFEH,最后一个字母是H 在这里插入图片描述

所以我们要先转换为2进制 在这里插入图片描述

由此我们可以得到题目中的二进制为 0000 1010 1111 1110

然后我们看向页的大小,题目中页的大小为2kb,即2048也就是2的11次方。同理如果页的大小是1kb,也就是1024即为2的10次方

按照本题的2的11次方来从右往左数11位 0000 1010 1111 1110会被分为 010 1111 1110 与 0000 1

前面说过页号P占虚地址的高位部分,页内地址W占虚地址的低位部分 所以这里W=010 1111 1110, P=0000 1=1

根据题目中的前提——依次装入内存的第7、9、A、5块 在这里插入图片描述

页号P=1,查表可得块号为9,而9的二进制是1001,表首地址为0 将1001放在页内地址W=010 1111 1110的前面 0100 1010 1111 1110(前面位数不够可以补零) 将上面这行二进制转换为16进制即为4AFEH(最后一个H代表是十六进制)

总结一下就是

第一步,将虚地址转换成二进制的数; 第二步,按页的大小分离出页号和位移量(低位部分是位移量,高位部分是页号); 第三步,根据题意产生页表,将位移量直接复制到内存地址寄存器的低位部分; 第四步,以页号查页表,得到对应页装入内存的块号,并将块号转换成二进制数填入地址寄存器的高位部分,从而形成内存地址。

题目还有可能直接给你十进制的数字,这时候可以套公式得出结果

若给定一个逻辑地址空间中的地址为 A,页 面的大小为 L,则页号 P 和页内地址 d 可以由下面的式子得出 在这里插入图片描述 INT是整除函数,MOD 是取余函数 通俗的讲就是

页 号(整除)=虚地址 / 页大小 位移量(取模)=虚地址 mod 页大小 根据题意产生页表; 以页号查页表,得到对应页装入内存的块号 内存地址=块号×页大小+位移量

再来看例题 题目二:有一系统采用页式存储管理,有一作业大小是8KB,页大小为2KB,依次装入内存的第7、9、10、5块,试将虚地址7145转换成内存地址。

根据公式

P=7145/2048=3(只取整数)

W=7145 mod 2048=1001(取余数) 按照页表查询 页号 块号 0 …… 7 1 …… 9 2 …… 10 3 …… 5

页号P为3,查询到块号为5,又因为页大小为2kb即2048 所以最终结果是5*2048+1001=11241



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有