第四章 存储器管理

符号地址、逻辑地址、物理地址的概念
逻辑地址,也叫做相对地址,或虚拟地址
逻辑地址空间可以是一维的(如连续分配、分页系统)或二维的(如分段系统和段页式系统)
物理地址,也叫做绝对地址,实地址,或内存地址
物理地址空间始终是一维的
重定位(即地址映射)
   将程序中使用的逻辑地址转换成处理机执行程序时所需的物理地址的过程。
静态重定位(装入时进行;内存中的模块与装入前的模块不同,其地址部分已修改过;程序不能移动位置)
动态重定位(执行时进行;内存中的模块与装入前的模块一致;程序能在内存中移动位置)

程序的装入方式
绝对装入方式
采用静态重定位的可重定位装入方式
采用动态重定位的动态运行时装入方式

内存分配方式
单一连续分区
固定分区
动态分区
分页存储管理
分段存储管理
段页式存储管理
请求调页
请求调段
请求段页式

碎片问题
内部碎片:(如固定分区,分页存储管理,段页式存储管理)
外部碎片:(动态分区、分段存储管理)
逻辑地址维数
一维(连续分配、分页存储管理方式)
二维(分段存储管理、段页式存储管理)
    分段时,整个逻辑地址空间是二维的,但段内地址是连续的,即段内地址空间是一维的。段页式时,整个逻辑地址空间是二维的,但段内地址是连续的,即段内地址空间是一维的;页内地址也是连续的,因此也是一维的。
没有快表时访问一个数据需要访问内存的次数
1次(连续分配)
2次(一级分页存储管理、分段存储管理)
3次(二级分页存储管理、段页式存储管理)

动态分区分配
首次适应算法(空闲区按起始地址递增的次序拉链)
最佳适应算法(空闲区按分区大小递增的次序拉链)
回收时要进行分区的合并(具体有前后都没有空闲分区、只是前面有空闲区、只是后面有空闲区、前后都是空闲区这四种情况)
碎片问题可采用紧凑技术加以解决
采用紧凑技术后的动态分区分配方式也叫可重定位分区分配方式(因为它需要得到动态重定位技术的支持)

对换
所谓“对换”,是指把内存中暂时不能运行的进程或暂时不用的程序或数据,调出到外存上,以便腾出足够的内存空间,再把具备运行条件的进程或进程所需要的程序和数据,调入内存。
整体对换:以进程为单位的对换。(但进程的PCB常驻内存不应该被换出;进程的程序段如果正在被其他进程共享,也不应该被换出内存)
部分对换:以“页”或“段”为单位的对换
          
分页存储管理
离散分配方式
一维的逻辑地址空间
    页号、页内偏移是硬件根据页大小分出来的
作业被分成若干大小相等的部分——页
页的大小固定,由系统决定,为2的幂
内存分成若干与页大小相等的部分——页框或内存块
利用页表进行地址转换
访问一个数据需2次访问内存,用快表(联想存储器)来改善访问速度
逻辑地址空间的大小和物理内存空间的大小
          

分段存储管理
离散分配方式
二维的逻辑地址空间
作业被编程人员分成若干个段
每个段的长度可以不同,每个段的长度由编程人员决定
内存分配方式与动态分区方式类似,但只需为每个段分配连续的空间,段与段之间不必连续
利用段表进行地址转换
访问一个数据需2次访问内存,用快表(联想存储器)来改善访问速度

段页式系统
离散分配方式
二维的逻辑地址空间
作业被编程人员分成若干个段
每个段再被系统分为若干个页
内存按页的大小分成若干个页框(物理块)
每个作业一张段表,作业的每个段需要一张页表
访问一个数据需3次访问内存(访问段表,再访问页表,最后访问数据或指令),用快表来改善访问速度
          
分段与分页的区别

(1)页是信息的物理单位,段是信息的逻辑单位;
(2)页的大小固定,段的大小可变;
(3)分页系统中的逻辑地址空间是一维的,分段系统中的是二维的。

虚拟存储器
虚拟存储器的理论基础:局部性原理
虚拟存储器的关键技术:请求调页/段技术、页/段置换技术
虚拟存储器的定义:虚拟存储器是指具有请求调入功能和置换功能,能从逻辑上对内存容量加以扩充的一种存储器系统。
虚拟存储器容量:取决于逻辑地址的结构,还受内外存空间总量的限制。
虚拟存储器的特征:多次性、对换性、虚拟性、离散性
虚拟存储器的实现方式:
①请求调页、②请求调段、③请求段页式        
虚拟存储器的硬件支持:
①页表、段表
②缺页/段中断机构 
③地址变换机构

请求分页存储管理方式
页表项中需增加状态位、访问字段、修改位、外存地址等信息
页面置换算法及缺页率的计算:OPT、FIFO、LRU、CLOCK(NRU)等
FIFO存在Belady现象
抖动的概念
置换算法选择不当可引起抖动现象
访问数据的时间:快表、内存、缺页中断处理
数据访问时间的计算、物理地址的计算
越界中断、访问权限非法中断、缺页中断

内存共享
分段共享比分页共享更方便;
可重入的代码段能被多个进程共享;
系统中需设置一张共享段表。
内存保护
不能由纯软件的方法实现,而需硬件和软件的配合一起完成;
连续分配方式中:一对界限寄存器
离散分配方式中:
①越界检查:页号&页表长度
                          段号&段表长度,段内地址&段长
②存取控制检查
③环保护机构

操作系统重点快览第四章相关推荐

  1. 深入理解操作系统(12)第四章:处理器体系结构(4)Y86-64的流水线实现(包括:PIPE-处理器/预测下一个PC/分支预测/流水线冒险/暂停,转发避免冒险/PPE硬件结构及实现/CPI)

    深入理解操作系统(12)第四章:处理器体系结构(4)Y86-64的流水线实现(包括:PIPE-处理器/预测下一个PC/分支预测/流水线冒险/暂停,转发避免冒险/PPE硬件结构及实现/CPI) 1. Y ...

  2. 深入理解操作系统(10)第四章:处理器体系结构(2)Y86-64的顺序实现(包括:SEQ/指令的各阶段操作:取指,解码,执行,访存,回写,更新PC/序列指令/硬件结构/时序/阶段的实现/SEQ+)

    深入理解操作系统(10)第四章:处理器体系结构(2)Y86-64的顺序实现(包括:SEQ/指令的各阶段操作:取指,解码,执行,访存,回写,更新PC/序列指令/硬件结构/时序/阶段的实现/SEQ+) 1 ...

  3. 《操作系统真象还原》第四章 ---- 剑指Loader 刃刺GDT 开启新纪元保护模式 解放32位

    文章目录 专栏博客链接 相关查阅博客链接 本书中错误勘误 看到第四章的一些很有趣的话 想记录下来 修改MBR.S 更新配置文件boot.inc 忽生疑惑(怎么是平坦模型?) 编写Loader.S 调用 ...

  4. 华文慕课北大操作系统陈向群第四章课后习题解析

    1.(5分) 下列哪一个调度算法的开销比较小? A. 先来先服务(FCFS) B. 短作业优先(SJF) C. 多级反馈队列(Feedback) D. 最高相应比优先(HRRN) 答案:A 先来先服务 ...

  5. 【OC语法快览】四、基础内存管理

    Basic Memory Management                                                           基础内存管理 If you're w ...

  6. 【OS操作系统】Operating System 第五章:虚存技术

    OS操作系统系列文章目录 [OS操作系统]Operating System 第一章:操作系统的概述 [OS操作系统]Operating System 第二章:启动.中断.异常和系统调用 [OS操作系统 ...

  7. 《操作系统真象还原》第十四章 ---- 实现文件系统 任务繁多 饭得一口口吃路得一步步走啊(上一)

    文章目录 专栏博客链接 相关查阅博客链接 本书中错误勘误 部分缩写熟知 闲聊时刻 实现文件系统的原理 inode构建原理 目录构建原理 超级块构建思路 创建文件系统 编写完的super_block.h ...

  8. 操作系统:第四章 文件管理1 - 文件逻辑结构,物理结构,文件目录,软硬连接,文件系统

    本文已收录至 Github(MD-Notes),若博客中有图片打不开,可以来我的 Github 仓库:https://github.com/HanquanHq/MD-Notes,涵盖了互联网大厂面试必 ...

  9. 操作系统考研复习——第四章(文件管理)

    操作系统考研复习--第四章(文件管理) 4. 文件管理 4.1 文件管理基础 4.1.1 文件的概念 1. 数据项.记录和文件 2. 文件属性 3. 文件系统的接口 4. 文件的基本操作 5. 文件的 ...

最新文章

  1. Java 参数后面跟三个... 的作用
  2. mysql delete 优化_mysql delete之后的优化
  3. HDLBits 系列(42)根据仿真波形来设计电路之时序逻辑
  4. 自学python系列10:python的函数和函数式编程
  5. FSG2.0脱壳记录
  6. php 创建 cookie文件,PHP创建Cookie数组
  7. 黑客秘籍:7个有趣的信息安全项目
  8. Intel® Nehalem/Westmere架构/微架构/流水线 (7) - 存储转发增强
  9. Web开发中实用小工具
  10. 服务器 交换机的维护,服务器路由器交换机维护设置
  11. 数字图像入门 色彩的抖动
  12. 永久禁用software reporter 进程,占用高解决方法。【永久禁用software_reporter_tool.exe程序】
  13. 文件是否存在 FileExists 方法
  14. Android 左右滑动控件
  15. 深圳大学计算机网络实验五:Socket编程
  16. 这样学习Linux,楼下王大爷都已经入门了,你还不来?
  17. html5+css3界面设计,仿微信支付设计数字键盘
  18. 入侵特斯拉汽车Model S 信息娱乐系统漏洞
  19. win10找不到输入法问题的解决办法
  20. android平板能玩吃鸡吗,吃鸡不卡的安卓平板

热门文章

  1. linux sockaddr_in头文件,linux网络编程常用头文件
  2. mysql性能优化简书_MySQL性能优化
  3. 第十七届全国大学生智能车竞赛完全模型组 I 型车模数据
  4. 使用ESP32 MicroPython I2C功能读取 BH1750光度传感器模块数据
  5. 测试使用2mH的工字型电感在接收150kHz导航信号中性能
  6. SP-45ML光电二极管放大电路设计
  7. 教育的本质是人点亮人
  8. Eclipse中Java文件图标由实心J变成空心J的问题
  9. 快速下载Centos7:Centos镜像地址(阿里云镜像)
  10. linux如何用vi编程,vi使用方法