一、基本分页存储管理方式

1、分⻚存储管理的基本原理:

  • 页:将⼀个进程的逻辑地址空间分成若⼲个⼤⼩相等的⽚
  • 页框:将物理内存空间分成与⻚⼤⼩相同的若⼲个存储块
  • 分⻚存储:将进程中的若⼲⻚分别装⼊多个可以不相邻的⻚框中
  • 页内碎片:进程最后⼀⻚⼀般装不满⼀个⻚框,形成⻚内碎⽚
  • 页表:实现从⻚号到⻚框号的映射

************************************************************************************************

 2、分⻚地址结构:基本分页存储管理方式的逻辑地址结构包括两部分,即页内偏移量 和页号

*******************************************************************************************************************

例题:

*****************************************************************************************************************

 3、分⻚地址变换

  • 进程执行,PCB中页表起始地址和页表长度送到CPU的页表寄存器
  • CPU访问某个逻辑单元A
  • 由分页地址变换硬件自动将A分为页号和页内偏移两部分
  • 由硬件检索页表,得到A所在的页对应的页框号
  • 页框号和页内偏移地址送物理地址寄存器,计算物理地址。物理地址=页框大小✖页框号+页内偏移量

4、⻚⼤⼩的选择因素

  • 管理内存开销 :页较⼩,划分为较多⻚,⻚表过⻓,占内存 较⼤
  • 内存的利⽤率: 页较⼤,⻚内碎⽚⼤,空间利⽤率低

5、快表TLB:

快表也称“转换后援缓冲”,是为了提⾼CPU访存速度⽽采⽤的专⽤缓存, ⽤来存放最近被访问过的⻚表项。

快表TLB的计算:

***************************************************************************************************************************************

 6、两级和多级⻚表

将⻚表再分⻚,形成两级或多级⻚表,将⻚表离散地存放在物理内存中。

**********************************************************************************************************

二、基于分页的虚拟存储系统

1、虚拟存储器:

  • 虚拟存储器是指具有请求调⼊功能和置换功能,能从逻辑上对内存容量 进⾏扩充的⼀种存储器系统
  • 就是说,先将进程的⼀部分装⼊内存,其余的部分什么时候需要,什么 时候请求系统装⼊,即请求调⼊
  • 如果请求调⼊时,没有⾜够的内存,则由操作系统选择⼀部分内存中的 进程内容移到外存,以腾出空间把当前需要装⼊的内存调⼊,即置换

2、请求分⻚系统是最基本、最常⽤的虚拟存储系统的实现⽅式

  请求分⻚中的硬件⽀持:

    为了实现请求分⻚,需要: 特殊的⻚表、缺⻚异常机构和⽀持请求分⻚的地址变换机构。

  ⻚分配策略:

    

*****************************************************************************************************************************

    

***********************************************************************************************************************************

    

****************************************************************************************************************************************

3、 ⻚置换算法:从内存⻚中选择换出⻚的算法

A、最佳置换算法(主要⽤于理论研究):选择以后永远不会被访问的⻚或者在未来最⻓时间内不再被访问的⻚作为换出⻚

B、先进先出置换算法FIFO(最简单的⻚置换算法):为每个⻚记录该⻚调⼊内存的时间,选择换出⻚时,选择进⼊内存时间最早的⻚

C、最近最久未使⽤置换算法 LRU(实现最佳算法的近似算法):选择最近最久未使⽤的⻚换出(⽤⼀个字段记录⼀个⻚⾃上次被访问以来所经历的时间)

D、附加引⽤位算法

E、简单Clock置换算法:选择最近没有被访问的淘汰

F、改进型Clock算法:选择既没有被访问过⼜没有被修改过的淘汰

G、最少使⽤置换算法:选择最近时期内使⽤次数最少的淘汰

H、⻚缓冲算法

4、请求分⻚系统的性能:

a、缺⻚率对有效访问时间的影响

有效访问时间=0.1+24999.9✖P(P为缺⻚率)

有效访问时间与缺⻚率成正⽐,缺⻚率越⾼,有效访问时间越⻓,访问效率越低有效访问时间越低

b、⼯作集 :   引⼊⼯作集⽬的:降低缺⻚率,提⾼访问内存效率     含义:某段时间间隔⾥,进程实际要访问的⻚的集合

c、抖动 :  运⾏进程的⼤部分时间都⽤于⻚的换⼊换出 ⼏乎不能完成任何有效果⼯作的状态

产⽣原因:   进程数量太多    分配⻚框太少

预防⽅法:采取局部置换策略      引⼊⼯作集      挂起若⼲进程

三、分段存储管理

分段机制的引⼊:在分段存储管理的系统中,程序员使⽤⼆维的逻辑地址,⼀个数⽤来表示段, 另⼀个数⽤来表示段内偏移。

引⼊分段机制的优点: ⽅便编程、分段共享、分段保护、动态链接,以及动态空间的增⻓。

分段:

  • 进程的地址空间被划分成若⼲个段。
  • 每个段定义了⼀组逻辑信息,每个段的⼤⼩由相应的逻辑信息组的⻓度确定,段 的⼤⼩不⼀样,每个段的逻辑地址从0开始,采⽤⼀段连续的地址空间。 系统为每个段分配⼀个连续的物理内存区域,各个不同的段可以离散地放⼊物理 内存不同的区域。
  • 系统为每个进程建⽴⼀张段表,段表的每⼀个表项纪录的信息包括段号、段⻓和 该段的基址,段表存放在内存中。

分段的逻辑地址结构:

段表:段表是由操作系统维护的⽤于⽀持分段存储管理地址映射的数据结构。每个进程有⼀个段表,段表由段表项构成。每个段表项包括段号、段基址(段的 起始地址)和段⻓(段⼤⼩)3个部分。

*********************************************************************************************************************************************************

**********************************************************************************************************************************

分页和分段都属于离散分配⽅式,都要通过数据结构与硬件的配合来实现逻辑地址到物理地址的映射。

分⻚和分段的主要区别:

1)页是按物理单位划分的,分页的引入是为了提高内存的利用率和支持虚拟存储;分段是按逻辑单位划分的,一个段含有一组意义相对完整的信息,引入分段的目的是为了方便程序员编程。
2)页的大小是固定的,而段的大小不固定,取决于用户编写的程序;
3)分页的地址空间是一维的,分段的地址空间是二维的

四、段⻚式存储管理

1、段⻚式存储管理的基本原理

四、 Linux的伙伴系统

转载于:https://www.cnblogs.com/jalja/p/11455440.html

操作系统原理之内存管理(第四章第二部分)相关推荐

  1. 操作系统原理之内存管理(第四章第一部分)

    内存管理的⽬标:实现内存分配和回收,提高内存空间的利用率和内存的访问速度 一.存储器的层次结构 寄存器:在CPU内部有一组CPU寄存器,寄存器是cpu直接访问和处理的数据,是一个临时放数据的空间. 高 ...

  2. 利用图文和代码深度解析操作系统OS的内存管理实现原理机制和算法

    利用图文和代码深度解析操作系统OS的内存管理实现原理机制和算法. 内存作为计算机系统的组成部分,跟开发人员的日常开发活动有着密切的联系,我们平时遇到的Segment Fault.OutOfMemory ...

  3. JavaScript的工作原理:内存管理+如何处理4个常见的内存泄漏

    本篇译文,删减了原文中一些无关紧要的内容,可以让大家花更少的阅读时间. 原文地址:https://blog.sessionstack.com/how-javascript-works-memory-m ...

  4. 敏捷管理第四章《敏捷落地--团队试点》

    敏捷管理第四章<敏捷落地--团队试点> 敏捷落地–团队试点,让你具有大局观 我们上章节主要讲述了评估诊断,具备了项目短期规划的能力,接下来我们主要重点会围绕长期规划来进行展开.那么团队试点 ...

  5. Linux内存管理第十一章 -- Swap Management

    文章目录 Linux内存管理第十一章 -- Swap Management Describing the Swap Area Mapping Page Table Entries to Swap En ...

  6. 《通信原理》复习笔记4----第四章信道

    系列文章链接目录 一.<通信原理>复习笔记1----第一章绪论 二.<通信原理>复习笔记1----第一章绪论相关例题 三.<通信原理>复习笔记3----第三章随机过 ...

  7. 从零手写操作系统之RVOS内存管理模块简单实现-02

    从零手写操作系统之RVOS内存管理模块简单实现-02 内存管理分类 内存映射表(Memory Map) Linker Script 链接脚本 语法 基于符号定义获取程序运行时内存分布 基于 Page ...

  8. 工程项目管理丁士昭第二版_2021年软考系统集成项目管理工程师知识点预习第十四章第二节...

    听说99%的同学都来这里充电吖 为了方便大家尽早投入2021年的软考考试备考中,我们已开始连载<系统集成项目管理工程师>知识点,今天带来的是 第十四章 第二节 编制询价~ 知识点:第十四章 ...

  9. 第四章第二节数据资产盘点-数据资产盘点方法伦

    第四章第二节数据资产盘点-数据资产盘点方法伦 数据资产盘点可以通过业务角度的自上而下演绎和数据角度的自下而上归纳对数据资产进行盘点,编制数据资产目录 ,如图所示: 自上而下的演绎,是确保数据资产目录可 ...

最新文章

  1. 【C++】50.编程中切换状态的【有限状态机】
  2. oracle表空间放在别的服务器,OracleXE的APEX可以访问同一服务器上的另一个Oracle数据库(10g),还是受限于XE数据库中的那些用户/表空间?...
  3. mysql5.5怎么删除字段_Linux 上 Mysql5.5 只能新建表中的字段不能删除表,权限root...
  4. 技术管理规划-如何规划团队的架构
  5. import pyart时报错 ValueError: numpy.ndarray has the wrong size, try recompiling.
  6. einsum爱因斯坦求和(numpy)
  7. Mysql的数据库和客户端环境搭建(三)
  8. nginx详解反向代理,负载均衡,LNMP架构上线动态网站
  9. [渝粤教育] 天水师范学院 地理信息系统原理与方法 参考 资料
  10. 计算机位数怎么看win10,怎么查看Win10是32位还是64位操作系统?
  11. 爱奇艺发布年报:四季度运营大幅减亏,今年提质增效追盈利
  12. .jpeg 格式图片URL在浏览器里默认是下载
  13. 中国Web信息博物馆
  14. php and mysql登录注册页面
  15. 第六感38只19.9/吹风机29.9/长虹电暖器69/按摩护腰垫39/情侣卫衣54.9
  16. Unity游戏画面参数解析与应用:垂直同步、动态模糊、抗锯齿
  17. 使用内核驱动上手 x710 flow directory 功能
  18. android手势控制动画,轻松实现Android,iOS的一个手势动画效果
  19. #4259. 越野赛车问题
  20. 轻松上手CSS Grid网格布局

热门文章

  1. EasyUI 扩展自定义EasyUI校验规则 验证规则(常用的)
  2. R语言tseries包
  3. 如是院长说:买不起房就多买两套,大家怎么看
  4. 第一次申请信用卡额度太低,怎么办?
  5. 信联获批个人征信牌照,对普通人有什么重大影响?
  6. Troubleshooting OpenStack Bug- 每天5分钟玩转 OpenStack(162)
  7. Eclipse最新版 Neon已发布
  8. 如何以学习单片机为契机,逐步成为优秀的工程师
  9. 小demo, java swing窗口编程(JDK 1.6)
  10. win32程序测试键盘钩子