- 分页存储管理
定义:click
例题:click
分页存储:讲逻辑地址进行分块,逻辑地址包括(页号和页内偏移),将内存空间换绯闻同样大小的块,每个块为一个页面,页号与块号(或页面好)相对应。
逻辑地址为A,页面大小为L,页号:A/L(向下取整),页内偏移:A%L
数值后缀(二进制:B;八进制(三个二进制表示一个八进制,111=>7O):O;十进制:D;十六进制(四个二进制表示一个十六进制,1111=>FH):H;因二进制过长,计算机中内存单元一般使用十六进制进行表示。)
数值前缀(二进制:0B;八进制:0O;十进制0D;十六进制:0X;都是用0作为前缀)
进制转换:1kb=oB100,0000,0000=oX400
//parseInt('ox400',10)=>1024
题目:
有用户态进程A,其虚拟内存页为1KB,A占用了64页,内存大写为128KB,A进程将爱子到内存的页面和物理内存块的编号对应关系如下:
页面编号 物理内存块编号
0 4
1 9
2 5
3 8
请根据以上信息回答如下问题,并给出计算过程:
1)虚拟地址为015D对应的物理地址是多少?
2)物理地址为113C对应的虚拟地址为多少?
3)进程A有一作业长度为8页,试图访问虚拟地址2A3D并保存整型1到该地址对应的物理地址空间,之后又尝试从该地址读取保存的数据,请问A进程这两次内存访问过程能否正常执行?并解释原因。
解答:
1)十六进制虚拟地址015D
页面为1k=1024(10进制)=2^10=0100,0000,0000 B=400H
页号:015D/400H=0 ===> 4块号
页内偏移:015D%400H=015D
物理地址:4400+015D=1000+015D=115D(4400满16往前1位进1)
2)113C/400 = 4…13C(113C整体进行除,不可以转化为十进制,不够向高位借1,)
虚拟地址:0*400+13C=013C
-
一分页存储管理系统中逻辑地址长度为16位,页面大小为4KB字节,现有一逻辑地址为2F6AH,且第0,1,2,页依次存放在物理块5,10,11中,则相应的物理地址是多少?
解答:
1kb=1024
4kb=4096
2^10=1024;
2^11=2048;
2^12=4096;==>12 个2进制位为一页
逻辑地址:2F6AH==>0010,1111,0110,1010,后12为页内偏移,剩下4位为页号
0010 ==> 页号:2H ==>快号:11 =>BH
1111,0110,1010===> F6AH
物理地址为:BF6AH -
某系统采用分页存储管理方式,设计如下:页面大小为4KB,允许用户虚地址空间最大为16页,允许系统物理内存最多为512个内存块。试问该系统虚地址寄存器和物理地址寄存器的长度各是多少位?
页面大小为4KB=2^12字节,所以页内偏移量占12位。
由于物理块大小等于页面大小,所以物理块大小为2^12字节,物理块位数占12位。
允许用户虚地址空间最大为16页=2^4页,即页号占4位
允许系统物理内存最多为512个内存块=2^9个内存块,即内存块位数占9位。
虚地址寄存器位数=页号位数+页内偏移量位数=4+12=16位
物理地址寄存器位数=物理块位数+内存块位数=12+9=21位。