1.基本原理

  1. 内存被划分成大小固定相等的块(Frame 帧、页框、主存块),且块相对比较小。
  2. 每个进程装入时被分成同样大小的页(Page)一页装入一帧
  3. 整个进程被离散装入到多个不连续的帧

下面来看一个分页存储管理的例子
操作系统---(31)基本分页存储管理

2.页面长度

页面的尺寸(页面长度)由计算机系统的硬件决定。
对于某台具体的机器来说,只能规定一种尺寸。
目前流行的页面尺寸是1 KB到4KB之间,但也有一些 机器不在此范围内。
比如,小型机IBM AS/400的页面尺寸为512个字节。

3.记录内存使用情况的数据结构

位示图: 整个系统一张,记录内存使用情况
操作系统---(31)基本分页存储管理
位示图的使用:
分配时,查位示图,找空闲帧: k=i*L+j
回收时,i= [k/L] //整除
j= k MODL //取余
由帧号可知位示图中字号和位号
设字号i、位号j、帧号k取值均从0开始,字长记为L,一个0/1位对应一个帧的空闲/占用。

4.记录每个进程分页及占用内存情况的数据结构

  1. 为了保证程序的正确运行,分页管理机制应为每个进程建立一个数据结构——页表PT(Page Table)。
  2. 页表中登记进程各页面对应的帧号,供地址映射使用。
    操作系统---(31)基本分页存储管理
    页表:每个进程一张PT, 记录本进程分页及占用帧的情况

5.页面分配算法

  1. 计算请求者需要的总帧数N。
  2. 查位图,若找不到足够的空闲帧,编制分配失败报告返回。
  3. 索取一个空闲页表PT。
  4. 从位图中找出N个为0位,计算出对应的帧号,填入PT。
  5. 位示图中将这些位改为1。
  6. 将PT起始地址填入进程的PCB中。
  7. 结束。

6.地址划分

  1. 进程装入之前,逻辑地址是一维的
  2. 进程装入之后,逻辑地址分为两维
    高端地址部分 作为页号
    低端地址部分 作为页内的偏移量(即页内地址)

若机器的地址码是16位,页面长度是1KB,则地址划分结果:低10位是页内地址,高6位是页号。
操作系统---(31)基本分页存储管理
这样的地址结构,允许一个进程的页面总数达64页。

7.地址重定位

操作系统---(31)基本分页存储管理

8.分页式存储管理中的地址形式

操作系统---(31)基本分页存储管理

9.地址保护

操作系统---(31)基本分页存储管理

10.页面共享

操作系统---(31)基本分页存储管理

总结

  1. 离散存储,利于大进程装入
  2. 只有很少的页内碎片,提高内存利用率
  3. 位示图、页表;动态地址重定位
  4. 页面共享不易实现

相关文章:

  • 2021-09-07
  • 2021-09-03
  • 2021-12-04
  • 2022-12-23
  • 2021-04-13
  • 2021-06-18
猜你喜欢
  • 2021-08-14
  • 2021-11-09
  • 2021-07-21
  • 2022-01-09
  • 2021-12-08
  • 2021-07-03
  • 2021-11-10
相关资源
相似解决方案