时间:2014.07.18
地点:基地
---------------------------------------------------------------------------
连续分配方式的主要缺点是会形成许多碎片,尽管我们可以通过紧凑的方法将碎片拼接成可用的大块空间,但这样须付出很大的开销。
---------------------------------------------------------------------------
离散分配方式思想:将进程直接分散地装入到许多不相邻接的分区中。
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)都将通过页表映射到块号,进程执行时,只要通过查找页表,就可知道每页在内存中的物理块号。总的一句说来:页表的作用就是实现从页号到物理块号的地址映射。
---------------------------------------------------------------------------
对于一个内存地址是32位、内存页是8KB的系统。0X0005F123这个地址的页号与页内偏移分别是多少。
解答:首先0X0005F123这个地址对应的十进制是:389411B
其次页面大小8KB对应8*1024B=8192B
于是页号P=A/L=47页
页内偏移W=A%L=4387=0X00001123
操作系统之基本分页存储管理方式,布布扣,bubuko.com
原文地址:http://blog.csdn.net/u012333003/article/details/37923793