引入

在动态分区的存储空间中,常常引入了“零头”问题。尽管采用“紧凑”技术可以解决这个问题,但要为移动大量信息花去不少的处理机时间,代价较高。分页存储管理系统的思想被提出了。
分页,是把主存存储空间按大小一定的块划分,称为物理块,或页框。同时按同样的尺寸去划分作业的地址空间,形成一个个相等的页面,称为逻辑页或虚页。因此,作业可以按页为单位,零散地放在主存的不连续的页框中。

如上图所示,作业的各个页面与页框的对应,就是通过页表来实现。
页面(page):在分页式系统中,把作业的地址空间划分成若干个大小相等的区域,例如一个区为1KB,称这样的每个区为页面或者简称页。页的大小通常在 512B~4KB范围。相应地,也需将主存空间划分为若干个大小相等的物理块,并使块与页的大小相同,这样,在将用户程序装入内存时,刚好一块中放页。
页面映射表(page map table):简称页表。其中列出了作业的逻辑地址与其在主存中 的物理地址间的对应关系。一个页表中包含若干个表目,表目的内容是对应于用户程序中的页号,表目中 的最基本内容是该页所对应的物理块号。

页表

页表列出了作业的逻辑地址与其在主存中的物理地址间的对应关系。一个页表中包含若干个表目,表目的自然序号对应于用户程序中的页号,表目中的最基本内容是该页对应的物理块号。

页表的每一个表目除了包含指向页 框的指针外,还包括一个存取控制字段。 这个表目也称为页描述字。

控制寄存器

系统中每个装入内存的作业都有一张页表。各页表的起始地址都不同。为了方便查找页表表项,系统还设立了一个“控制寄存器”。(格式如下)控制寄存器存放CPU正在处理的作业所对应页表的起始地址以及该作业的页数。

如上例,CPU正在处理的作业共有3页,该作业的页表起址为1000。

作业登记表


例:简述作业J1的页表定位过程。

作业被调度放进内存时,分页系统把该作业分成3页,建立页表,并把页表起址1000以及页数3写进系统的作业登记表中。
系统调度J1执行时,从系统的作业登记表中读取页表起址(1000)和页数(3)写到控制寄存器。这样,J1的页表位置就确定了。

纯分页存储管理

又称静态页式管理,它的特点是系统若能满足一个作业所要求的全部块数,此作业才能被装入内存;否则,不为它分配任何内存。简单地说:要么全部调入,要么全部不调入

⑴地址变换


例如:简述指令 LOAD 10,2500 的地址变换过程。 说明:把10写进第 2500内存单元。

⑵变换过程

第1步:把虚拟地址2500转换成页号P=2,位移量W=452;(这一步完全由硬件完成)
第2步:如果页号2大于页表大小,则中断;否则继续;
第3步:页号2与页表起址1000运算(1000+2*20,设页描述子大小为20)得到页描述子地址为1040;
第4步:从页描述子中读取块号8;
第5步:根据页描述子的“存取控制”判断该指令是否被允许访问内存,如果不允许,则中 断;否则继续;
第6步:块号8与位移量452运算(8×1024+452=9644,1024为页面大小)得到物理地址9644 (这一步与①相反,完全由软件完成)
第7步:把数字1写进内存地址9644单元中。

快表

如果把页表放在主存中,无疑会影响系统的性能。这是因为每次访问主存,首先必须访问页表,读出页描述字,之后根据页表形成的实际地址再访问主存,这样使访问主存的次数加倍,因而使总的处理速度明显下降。
为了解决这个问题人们采用一组硬件寄存器,存放当前访问页的页描述子,此硬件寄存器即超高速缓存,称为“快表”。
基地址转换过程如下图所示。

每次访问主存时,首先查找快表,若找到所需的页描述子,则快速形成物理地址。否则从页表中查找后形成物理地 址,同时把页描述子写入快表 。如果设计得当,快表的命中率可以很高。
欢迎大家加我微信交流讨论(请备注csdn上添加)

存储器管理之分页存储管理相关推荐

  1. 存储器管理之分区存储管理

    分区式管理是满足多道程序的最简单的存储管理方案.它的基本思想是将内存划分成若干个连续区域,称为分区.每个分区只能存储一个程序,且程序也只能在它所驻留的分区中运行. ⑴固定分区 操作系统预先把可分配的主 ...

  2. 存储器管理之分段存储管理

    引入 在分页存储系统中,作业的地址空间是一维线性的,这破坏了程序内部天然的逻辑结构.这样常常会把逻辑相关部分划到不同的页面,造成共享.保护的困难.加之,程序员常常用二维地址描述自己的程序,于是产生了分 ...

  3. 12 操作系统第三章 内存管理 非连续分配管理方式 基本分页存储管理 基本分段存储管理 段页式存储管理

    文章目录 1 基本分页存储管理 1.1 什么是分页存储 1.2 重要的数据结构--页表 1.3 基本地址变换机构 1.4 具有快表的地址变换机构 1.4.1 什么是快表(TLB) 1.4.2 引入快表 ...

  4. 操作系统之内存管理:3、基本分页存储管理

    3.基本分页存储管理 思维导图 页框(页帧.内存块.物理块.物理页面)与页面(页) 如何确定进程的每个页面在内存中存放的位置?--------->页表 每个页表项多大?占几个字节?i号页表项的起 ...

  5. (王道408考研操作系统)第三章内存管理-第一节6-1:非连续分配管理方式之基本分页存储管理

    文章目录 一:分页存储管理基本思想 二:分页存储管理基本概念 (1)页框和页 (2)页框和页关系 (3)分页的优点 三:分页存储管理实现地址转换 (1)借鉴连续分配管理方式中的动态重定位 (2)分页管 ...

  6. 操作系统——存储器管理(连续分配存储管理方式)

    文章目录 一.单一连续分配 二.固定分区分配 1. 划分分区的方法 2. 内存分配 三.动态分区分配 1. 动态分区分配中的数据结构 2. 动态分区分配算法 3. 分区分配操作 四.基于顺序搜索的动态 ...

  7. 操作系统学习笔记 第四章:存储器管理(王道考研)

    本文章基于网课: 2019 王道考研 操作系统 考试复习推荐资料:操作系统复习总结 - 百度文库 (baidu.com) 需要相关电子书的可以关注我的公众号BaretH后台回复操作系统 第一章:操作系 ...

  8. 【408预推免复习】操作系统之存储器管理

    [408&预推免复习]操作系统之存储器管理 文章目录 1 基础部分 2 分页存储管理 3 分段存储管理 1 基础部分 物理地址空间(或物理空间.绝对空间):由内存一系列存储单元所限定的地址范围 ...

  9. Linux内存管理:分页机制

    <Linux内存管理:内存描述之内存节点node> <Linux内存管理:内存描述之内存区域zone> <Linux内存管理:内存描述之内存页面page> < ...

最新文章

  1. 2016年5月份学习总结,读书《你的孤独,虽败犹荣》
  2. [圣诞记]HULK七周年庆
  3. php对mysql解决乱码_PHP彻底解决mysql中文乱码-阿里云开发者社区
  4. 为什么只看重结果_买家下单最看重的三项服务,做好这三点,让你的销量涨涨涨...
  5. CABasicAnimation animationWithKeyPath Types
  6. linux选择内核命令,Lenky个人站点
  7. windows下将python自带的pip卸载了,怎么重新装pip
  8. 【IT生活】成长,没有想象的那么迫切 ——叶绍琛
  9. python图像处理之一 - Pillow的基本用法
  10. matlab中列主元三角分解法的函数,[数值算法]列主元三角分解法
  11. itools3.0服务器维护,APP Store失联?iTools3.0告诉你如何解决
  12. 技术开放、平等普惠,蚂蚁金服ATEC科技大会闪耀狮城新加坡
  13. axure生成的html不能用360浏览器打开
  14. js单行代码------对象
  15. C++项目实战 —— 演讲比赛流程管理系统
  16. win10系统 VirtualBox 无法打开虚拟机,报错VERR_VD_IMAGE_READ_ONLY
  17. AndroidDevTools sdk ndk下载
  18. [安全科普]SSRF攻击实例解析
  19. 饿了么手机版-VUE2
  20. 东南亚共享充电宝方案/案列/APP/小程序/项目/网站

热门文章

  1. 【日常学习】【区间DP+高精】codevs1166 矩阵取数游戏题解
  2. 尚硅谷Java第三季--1.javaj基础
  3. Apache Sedona 常见问题解答 (FAQ)
  4. 机器学习-第三方库(工具包):scikit-learn【用于特征工程(主要分为三部分:数据预处理、特征选择、降维)】【Sklearn模块中包含常用的算法】
  5. 人工智能导论实验——线性回归
  6. cas37083-37-7/5,10,15,20-四(2,6-二氯苯基)卟吩;5-对( 4-溴丁氧基)苯基-10、15. 20三萃基卟啉的合成(筒称BrBPTPP,CgHsN,OBr )
  7. 2022-07-20 工作记录--React-js将时间戳转换成“天时分秒” + “天时分秒”的倒计时
  8. 华为mate9测试软件,【华为Mate9评测】3个月使用不卡顿!EMUI 5.0系统再测_华为 Mate 9(MHA-AL00/4GB RAM/全网通) _手机评测-中关村在线...
  9. PYTHON爬虫——必应图片关键词爬取
  10. java读取串口-mfz-rxtx-2.2-20081207-win-x86