基本分页存储管理

来自计算思维百科
跳转至: 导航搜索
基本分页存储管理.jpg

用户的程序在计算机中执行时,需要放到计算机的内存中。但是用户的程序可能很大,如果在内存中找一块很大的空间存放这个程序就比较困难,那么,如何有效存储就是一个问题。基本分页存储管理就是存放用户程序的一种方法。在这种方法中,用户程序的地址空间被划分成若干固定大小的区域,称为“页”,相应地,计算机的内存空间分成若干个物理块,页和块的大小相等。这样就可以把用户程序的任一页放在内存的任一块中,实现了一种离散分配。这么做的目的就是有效利用内存空间。

基本概念

基本分页存储管理,是将一个进程(可以简单理解为用户的程序)的逻辑地址空间分成若干个大小相等的片,称为页面或页,并对各页编号,从0开始,如第0页、第1页等。相应地,也把内存空间分成与页面相同大小的若干个存储块,称为(物理)块或页框,也同样为它们加以编号,如0#块、1#块等等。

在为进程分配内存时,以块为单位将进程中的若干个页分别装入到多个可以不相邻接的物理块中。由于进程的最后一页经常装不满一块而形成了不可利用的碎片,称之为“页内碎片”,因此页面的大小应选择适中。

为了保证进程的正确运行顺序,还应该建立页面映像表,简称页表。页表记录了页号和对应的块号,实现从页号到物理块号的地址映射。

应用范围

基本分页存储管理可应用于存储对象可切割(和再组装)的空间(或区域)存储管理,例如书籍印刷前的排版等

使用方法及步骤

  1. 将存储对象分成若干个大小适中的小存储对象,并为存储对象编号
  2. 将存储空间(或区域)分成若干个与步骤1中的小存储对象同样大小的空间(或区域),并编号
  3. 找到空闲的(或区域),将存储对象放进空闲空间(或区域)
  4. 建立空间存储记录表,将存储对象编号和空间编号对应记录在表格中

应用1-书籍印刷前的排版

案例:印刷厂印刷已经通过审核的手稿前,需要对手稿进行排版,保证消费者使用图书时的舒适感和方便,这个过程需要怎么处理?

解决步骤:

  1. 确定好印刷纸张的大小
  2. 根据纸张大小,先在电脑上预计每页纸张可以打印的手稿排版面积,并将手稿分成若干个与纸张大小对应比例的页面,并对手稿页面编号
  3. 按照编号顺序打印手稿的每页内容

在这个解决方案中,一个完整的手稿就是用户的程序,印刷好的书就是对手稿的存储。每个印刷的纸张就是存储这个手稿的一个存储页,每一页的内容就是程序的块,一页刚好存储一块内容,通过页码进行管理。

应用2- 宿舍区房间的划分

案例:通常学生宿舍区的宿舍,大小都是一样的。每年录取的新生数量并不完全一样,分配到每一个宿舍的人数也不一样。在宿舍房间资源紧张的情况下,学校可以在部分宿舍多安排1到2个学生;而且宿舍房间资源充裕的情况下,学校可以在适当情况下,减少部分宿舍的学生总人数。

这个案例讲的就是页的大小如何划分,学生宿舍就是划分的页,每个宿舍的学生就是程序的块。这个页大小可以变化,资源紧张时,页就大一些,可以放更多的程序内容;资源充分时,页就小一些,每页放的程序内容就少些。每个宿舍有门牌号,你总是可以通过门牌号找到某个学生的,也就是说,操作系统总是可以通过页号找到需要的程序内容。

可以体现的计算思维

基本分页存储管理将大的存储对象分成小的存储对象分散存储在相同存储单位的存储空间中,避免“紧凑”操作,节省了时空消耗,体现了计算思维的规划和优化特点。