浅谈操作系统——分页技术的基本思想

176 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第5天,点击查看活动详情

先解决一个历史遗留问题,上次我们说到三种放置策略,那么最终三种放置策略的比较到底是如何呢,我们接着看下面:

三种放置策略各有利弊,应该针对具体的作业序列来分析

  • 对于某一作业序列,某种算法能将该作业序列中的所有作业都安置完毕,那么就说这个算法对这一作业序列是合适的
  • 对于某一算法而言,如果他不能立即满足某一要求,而其他算法却可以满足这个要求,那么这一算法对这个作业序列就是不合适的。

举个例子

有一个作业序列:作业A要求18K,作业B要求25K,作业C要求30K,系统中空闲区按照三种算法组成的空闲区队列如下图:

image.png

经过分析我们可以知道,最佳适应法对这个作业序列是合适的,而其他的两种对这个作业序列是不合适的。


分页技术是由曼切斯特大学提出的,并且于1960年前在Atlas计算机上实现了,分页技术对操作系统的发展产生了深远影响,那么接下来就让我们一起了解一下分页技术吧。

程序地址空间

  • 把用户程序按照系统规定的逻辑页划分成大小相等的部分,称为页
  • 从0开始编号,页内地址是相对于0编址的
  • 用户程序的划分是由系统自动完成的,对用户是透明的
  • 一般一页的大小是2的整数次幂

逻辑地址

  • 地址的高位部分为页号
  • 地址的低位部分为页内地址

image.png

内存地址空间

  • 按照系统规定的逻辑页大小划分为大小相等的区域。这就称为块或者内存块(物理页面、页框)
  • 从0开始编块号

image.png

内存分配

  • 物理块表:整个系统有一个物理块表,描述物理内存空间的分配使用状况
  • 数据结构:位示图、空闲块链表
  • 内存以块为单位进行分配,并按照应用程序的页数多少来分配
  • 逻辑上相邻的页,物理上不一定是相邻的

image.png

本篇文章只是分页技术刚入门,稍作了解即可,但是也要打好地基。