分页存储管理方式附网易校招笔试题

一、连续分配方式缺点

连续分配方式的主要缺点是会形成许多碎片,尽管我们可以通过紧凑的方法将碎片拼接成可用的大块空间,但这样须付出很大的代价。

二、离散分配方式

离散分配方式思想:将进程直接分散地装入到许多不相邻接的分区中。

1.如果离散分配的基本单位是页----------》分页存储管理方式
2.如果离散分配的基本单位是段----------》分段存储管理方式
基本的分页存储管理方式不具备页面对换功能,也不支持实现虚拟存储器功能,它需要把每个作业全部装入内存后才能运行。

三、页面

分页存储管理是将一个进程的逻辑地址空间划分为若干个大小相等的片,这些片称之为页面,并编号第0页,第1页。。。同时,我们还把内存空间也划分为与页面大小相同的若干个存储快,称为块或叶框,也进行编号0#,1#....之后我们为进程分配内存时,即是将进程的若干个页分别映射装入到可以不相邻的块中去。由于这里进程的最后一页往往装不满块而会形成不可利用的碎片,我们称之为业内碎片。

四、页面大小

很明显,页面大小过小可使得内存碎片变小,减少内存碎片总空间,提高内存利用率,但缺点是:每个进程由此会占用更多页面,导致进程页表过长,占用大量内存(页表也是要耗费内存的),。而且还降低了页面切换的效率。而页面过大,可以减少页表长度,提高页面切换效率,但内存碎片增大。

在页面大小选择适中,一般为2的幂,通常为512B~8KB。

五、页面地址结构

页号(P)+位移量(W)

位移量W也称呼为页内地址或页内偏移量,对于特定机器,其页面地址结构时确定的,给定逻辑地址空间中的地址A,页面大小L,则页号P=int(A/L)
页内地址W=A%L
比如:系统页面大小为1KB,A=2170B,可得
页号P=A/L=2170/1024=2
页内地址=A%L=122

六、页表

在分页系统里,允许将进程各个页面离散存储在内存的不同物理块中,为了保证进程的正常运行,需要能在内存中找个每个页面所对应的物理块,于是系统得为进程建立一张页面映射表,以方便查找页面对应的地址,这张表叫做页表,进程地址空间内的所有页(0~n)都将通过页表映射到块号,进程执行时,只要通过查找页表,就可知道每页在内存中的物理块号。总而言之,页表作用就是实现从页号到物理块号的地址映射。

七、知识点—十六进制逻辑地址转物理地址

一分页存储管理系统中逻辑地址长度为16位,页面大小为4KB字节,现有一逻辑地址为2F6AH,且第0,1,2,页依次存放在物理块5,10,11中,则相应的物理地址是多少?

分页存储管理方式附网易校招笔试题_第1张图片

分页存储管理方式附网易校招笔试题_第2张图片

分页存储管理方式附网易校招笔试题_第3张图片

八、十进制逻辑地址转物理地址

分页存储管理方式附网易校招笔试题_第4张图片

分页存储管理方式附网易校招笔试题_第5张图片

九、地址转换步骤

地址转换步骤
当逻辑地址为16进制、八进制、二进制时
第一步:把逻辑地址转为二进制;

第二步:按页的大小分离出页号和页内偏移量( 高位部分为页号,低位部分为页内偏移量 )

第三步:根据题意产生页表;

第四步:将逻辑地址的页内偏移量直接复制到物理地址的页内偏移量上
( 即:逻辑地址的页内偏移量 = 物理地址的页内偏移量 )

第五步:以逻辑地址的页号查页表,查出物理地址的帧号,再把帧号转为二进制,复制到物理地址的的帧号上,从而得出物理地址。

当逻辑地址为十进制时
第一步:求出逻辑地址的页号 = 逻辑地址 / 页面大小

第二步:求出页内偏移量 = 逻辑地址 % 页面大小
(“%”表示取余,只取余数,不取商)

第三步:根据题意产生页表;

第四步:以逻辑地址的页号查页表,查出物理地址的帧号

第五步:求出物理地址 = 帧号 * 页面大小 + 页内偏移

十、网易校招笔试题

对于一个内存地址是32位、内存页是8KB的系统。0X0005F123这个地址的页号与页内偏移分别是多少?

解法1:
0X0005F123这个地址对应的十进制是:389411B

页面大小8KB=8192B

页号=389411/8192=47页

页内偏移=389411%8192=0X00001123

解法2:
将地址转换为二进制:0X000….0101 111 1 0001 0010 0011

8KB=2^13,即后13为页内偏移量即0X00001123

0101111=47

十一、知识拓展

1、某分页系统的逻辑地址为16位,其中高6位为页号,低10位为页内偏移量,则在这样的地址结构中:
(1)一页有多少个字节?

由于逻辑地址中低10位为页内偏移量,所以每页大小=2^10个字节

(2)逻辑地址可有多少页?

由于逻辑地址中高6位为页号,所以共有2^6个页面

(3)一个作业最大的使用空间是多少字节?

由于逻辑地址共有16位,所以一个作业最大的使用空间是2^16个字节

2.在分页存储管理系统中,逻辑地址的结构长度为18位,其中11~17位表示页号,0~10位表示页内偏移量。若有一个作业的各页依次放入2/3/7号物理块,试问:

1、主存容量最大可为多少K?分为多少块?每块有多大?

2、逻辑地址1500应在几号页内?对应的物理地址是多少?

由于逻辑地址共有18位,所以主存最大容量为2^18个字节=256KB,由于0~10位表示页内偏移量,所以页面大小L=2^11,每块大小=页面大小=2^11,则物理块总数=2^18/2^11=128块

逻辑地址A=1500,对应页号=(int)(1500/2^11)=0,页内偏移量W=1500。查表可知对应的物理块号为2,所以对应的物理地址为:
E=2*(2^11)+1500=5596。

3.某系统采用分页存储管理方式,设计如下:页面大小为4KB,允许用户虚地址空间最大为16页,允许系统物理内存最多为512个内存块。试问该系统虚地址寄存器和物理地址寄存器的长度各是多少位?

页面大小为4KB=2^12字节,所以页内偏移量占12位。由于物理块大小等于页面大小,所以物理块大小为2^12字节,物理块位数占12位。
允许用户虚地址空间最大为16页=2^4页,即页号占4位
允许系统物理内存最多为512个内存块=2^9个内存块,即内存块位数占9位。
虚地址寄存器位数=页号位数+页内偏移量位数=4+12=16位
物理地址寄存器位数=物理块位数+内存块位数=12+9=21位。

你可能感兴趣的:(操作系统)