本文主要是介绍《操作系统》—页式存储管理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
说到页式存储管理,我想应该先说用户的程序,因为页式存储管理就是为用户的程序或者是说进程服务的,一个程序编制好了以后它肯定占用空间,也就是说它肯定有大小,程序既然有大小就能将它划分,在这里,就将程序的逻辑空间划分成若干页,称为逻辑页面也叫页。
一、页的划分
页的大小是根据什么划分的那?这就追溯到内存的划分了。页的大小是根据内存中的块大小来划分的。什么是内存中的块那?下面解释一下块。页式存储空间将内存划分为等长的若干区域,每一个区域的大小一般取2的整数幂,每个区域就是一个块,块号从0开始编号,称为块号。分块的大小由什么确定的那?是有地址结构确定了主存储器的分块大小,这里不做解释。
现在程序中的页与内存中的块就对应上了,地址结构确定块,块确定页,而页是有页号和页内地址组成的,如下图。
假定地址总长度为15位,其中页号占5位,业内地址占10位。这样,逻辑地址可以有32页(2的五次方=32),可以编号为0—31,每一页有1024个字节(2的十次方=1024),编号为0—1023。从地址结构来看,逻辑地址是连续的,在编制程序时无需考虑如何分页,因为当使用一组顺序地址时,如果地址时0—1023,这显然时第0页,若果是1024—2047,这用的是第1页,也就是页号为1。
二、实现原理
作业执行时,根据地址中的页号找到主存块号,在确定当前指令应该访问的主存绝对地址。
1、页表:系统为每一个进程建立一个页表,用于记录页与块之间的对应关系,地址空间有多少页,页表就有多少行,且按照逻辑页中的顺序排列。
2、地址映射过程
3、地址转换
页式存储管理也是采用动态重定位的方式装入作业的,作业执行时有硬件的地址转换机构来完成从逻辑地址到绝对地址对额转换工作。在作业的执行过程中,处理器每执行一条指令,都让地址转换机构按照逻辑地址中的页号查页表,得到页号对应的块号,也就是主存的块号,将找到的块号转换成绝对地址,然后再加程序的页内地址,这就读到了这个程序的在内存中的绝对地址了。
三、小结
页式存储管理的优点是将作业的连续逻辑地址空间划分成页,可以分配到内存中不连续的块中,也就是分配到内存的不连续的主存区域中,并且能使作业正确的执行,这样进一步的提高了主存空间的利用率。缺点是当处理器处理一个作业时,必须访问两次主存,第一次是访问页表从而找到页号所对应的块号,然后换算出作业的绝对地址,第二次是处理器再按照换算出程序在主存中的绝地地址再进行运算操作。
这篇关于《操作系统》—页式存储管理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!