【深入浅出-系统架构师】(18):操作系统基础知识——分页存储管理

栏目: 后端 · 发布时间: 4年前

内容简介:分页系统中的页面其大小应适中。页面若太小,一方面虽然可使内存碎片减小,从而减少了内存碎片的总空间,有利于提高内存利用率,但另一方面也会使每个进程占用较多的页面,从而导致进程的页表过长,占用大量内存;此外,还会降低页面换进换出的效率。然而,如果选择的页面较大,虽然可以减少页表的长度,提高页面换进换出的速度,但却又会使页内碎片增大。因此,页面的大小应选择适中,且页面大小应是2的幂,通常为512 B~8 KB页号 = 相对地址 / 块尺寸
  • 页面

    将一个进程的逻辑地址分成若干大小相同的片,并加以编号,从0开始,如第0页,第1页

  • 把内存空间分配成页面相同大小的若干存储块,并加以编号,如0#块,1#块

页面大小选择

分页系统中的页面其大小应适中。页面若太小,一方面虽然可使内存碎片减小,从而减少了内存碎片的总空间,有利于提高内存利用率,但另一方面也会使每个进程占用较多的页面,从而导致进程的页表过长,占用大量内存;此外,还会降低页面换进换出的效率。然而,如果选择的页面较大,虽然可以减少页表的长度,提高页面换进换出的速度,但却又会使页内碎片增大。因此,页面的大小应选择适中,且页面大小应是2的幂,通常为512 B~8 KB

页表

【深入浅出-系统架构师】(18):操作系统基础知识——分页存储管理

页号 = 相对地址 / 块尺寸

页内偏移 = 相对地址 % 块尺寸

地址变换

  • 当进程运行时,系统将该进程 PCB 中页表起始地址及其长度送入页表起始地址寄存器(PB)和页表长度寄存器(Pl)
  • 系统将 CPU 给出的逻辑地址由硬件中的地址映射机制自动分成两部分:页号 p 和页内地址 d
  • 比较 p 和 Pl,若 p>= Pl,发生地址越界终端,否则进行地址映射
  • 根据页表起始地址寄存器 Pb 和 p,找到也表中相应表项,即:找到页号 p 的物理块号 p’
  • 将 p’ 与 d 拼在一起形成内存物理地址

    逻辑地址转换成物理地址

【深入浅出-系统架构师】(18):操作系统基础知识——分页存储管理

缺点

由于页表是存放在内存中的,这使CPU在每存取一个数据时,都要两次访问内存。第一次是访问内存中的页表,从中找到指定页的物理块号,再将块号与页内偏移量W拼接,以形成物理地址。第二次访问内存时,才是从第一次所得地址中获得所需数据(或向此地址中写入数据)。因此,采用这种方式将使计算机的处理速度降低近1/2。可见,以此高昂代价来换取存储器空间利用率的提高,是得不偿失的。

改良方案

【深入浅出-系统架构师】(18):操作系统基础知识——分页存储管理

  • 当进程运行时,系统将该进程 PCB 中页表起始地址及其长度分别送入页表起始地址寄存器(Pb)和页表长度寄存器(Pl)
  • 系统将 CPU 给出逻辑地址由硬件中的地址影射机制自动分成页号 p 和业内地址 d
  • 比较 p 和 Pl,若 p >= Pl,则产生地址越界中断,否则进行地址映射,与此同时,用 p 去查找快表,若找到一项,则终止步骤 d,转入步骤 e
  • 根据页表起始地址寄存器 Pb 和 p,找到页表中相应表项,即 p 的物理块号 p’
  • 将 p’ 和 d 放入块表中,若块表已满,则用淘汰算法,淘汰表中的一项。常用淘汰算法:先进先出(淘汰最先进入的)、访问位(淘汰访问次数最少的)
  • 将 p’ 和 d 拼在一起形成内存物理地址

硬件支持

硬件需要提供页表起始地址寄存器(Pb)和页表长度寄存器(Pl)

页表起始地址寄存器保存了正在运行进程页表的首地址

页表长度寄存器保存了正在运行进程页表的长度

分页存储的优缺点

优点

  • 作业可不连续存放,解决了可变分区存储的外部碎片问题
  • 有利于多道程序运行

以上所述就是小编给大家介绍的《【深入浅出-系统架构师】(18):操作系统基础知识——分页存储管理》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Python算法教程

Python算法教程

[挪威] Magnus Lie Hetland 赫特兰 / 凌杰、陆禹淳、顾俊 / 人民邮电出版社 / 2016-1-1 / 69.00元

本书用Python语言来讲解算法的分析和设计。本书主要关注经典的算法,但同时会为读者理解基本算法问题和解决问题打下很好的基础。全书共11章。分别介绍了树、图、计数问题、归纳递归、遍历、分解合并、贪心算法、复杂依赖、Dijkstra算法、匹配切割问题以及困难问题及其稀释等内容。本书在每一章结束的时候均有练习题和参考资料,这为读者的自我检查以及进一步学习提供了较多的便利。在全书的最后,给出了练习题的提......一起来看看 《Python算法教程》 这本书的介绍吧!

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

html转js在线工具
html转js在线工具

html转js在线工具