内存
内存的定义和作用
CPU处理速度快,从外存中读取慢
GB,KB等数量单位
逻辑地址(相对地址) 和物理地址(绝对地址)
装入的三种方式
绝对装入
静态重定位(可重定位装入)
动态重定位(动态运行时装入)
链接的三种方式(静态、装入时动态、运行时动态)
内存基础知识小结(内存,地址,链接,装入)
内存管理
操作系统管理内容
内存保护
保证进程只能访问自己的内存空间,不能访问操作系统的内存空间,也不能访问别的进程的内存空间
方法一:在CPU中设置一对上下限寄存器
方法二:采用重定位寄存器(基址寄存器)
覆盖与交换
覆盖
覆盖:解决 程序大小超过物理内存总和的问题
不常用的放到覆盖区
覆盖是在同一个程序或进程中的
A顺序调用BC(BC不会同时运行)
交换
好像和挂起差不多
PCB会常驻内存,不会被换出外存
交换是在不同进程或作业之间的
连续分配管理方式
连续分配:指为用户进程分配的必须是一个连续的内存空间
单一连续分配
一个用户程序独占整个用户区空间
固定分区分配(分区说明表)
整个用户空间划分为若干个固定大小分区
动态分区分配
三个问题:
数据结构记录内存使用情况(空闲分区表分区链)
多个可选时选哪个(动态分区分配算法)
分区的分配与回收
分配时选择不同空闲区域分配进程,则需要修改空闲分区表或空闲分区链
回收:
三种情况: (都需要合并起来并修改空闲分区表)
1.原来前面有空闲分区
2.原来后面有空闲分区
3.原来前后都有空闲分区
4.若前后都没有空闲分区,则在空闲分区表中增加一个表项
连续分配管理方式小结
动态分区分配算法
首次适应算法(First Fit)(按地址递增次序)
最佳适应算法(Best Fit)(分区容量顺序排序)
按顺序从空闲分区表或空闲分区表中找到第一个满足要求的,分配后将剩余的空闲分区重新排序
缺点:产生越来越多的小空闲分区(外部碎片)
最坏适应算法(Worst Fit)(分区容量递减排序)
临近适应算法(Next Fit)
循环链表,不需要对空闲分区链重新排序
各动态分区分配算法小结
基本分页存储管理
基本概念
把进程和内存分区都分为一个个大小相等的小分区
页式管理中每个页的页长是等大的,在分段管理中每个段的段长不同
分页存储的地址转换(偏计算)
如页面大小为2^12B
则后12位表示页内偏移量,前面20位为页号
页表
用于存放页号和块号(在内存中的位置编号)的对应关系
页表建立了各个逻辑页面到实际的物理页框之间的关系
操作系统为每个进程都建立一张页表
举例:
基本地址变换机构(图片示意图)(页表寄存器,各种计算页表页表项)
越界中断:页号》=页表长度
具有快表的地址变换机构
局部性原理(时间、空间)
快表(TLB)(存放在更高速的存储器)(CACHE?)
若快表命中,则只需要访问一次内存;若未命中,则需要两次
查询快表的速度要比查询内存的速度快,最近使用过的页表项会放入快表,存放的是页表中的副本内容
如果首次查询的页表项(快表中没有),则需要查询内存(慢表)
如果重复查询(此时快表中有记录),则不需要再查询内存
通过快表的地址变换过程
两级页表
解决了单级页表存在的两个问题
基本分段存储管理方式
分段
段表(段映射表,类似于页表)
段表记录了各个逻辑段在内存中的存放位置(逻辑地址到物理地址的映射关系)。页表建立了各个逻辑页面到实际的物理页框之间的关系
页式管理中每个页的页长是等大的,在分段管理中每个段的段长不同
同理页表:段表中段号即使不显式的给出,也可以自行计算出
地址变换及其示意图
分页、分段管理对比
总:
分:
不属于临界资源的代码可以共享的访问同一个段
基本分段存储管理方式小结
段页式管理方式
简单来说:分段后再分页
段页式管理中:段表内容与段式管理不同,页表内容与页式管理相同
根据段号找到页表存放位置,然后根据找到的页表的内容找到相应的内存块号
段页式管理示意图
段页式管理逻辑地址结构
段页式管理小结
虚拟内存
#### 传统存储管理方式特征、缺点
虚拟内存基本概念
操作系统的虚拟性:实际的物理内存大小没有变,只是在逻辑上进行了扩充
虚拟内存技术的实现
虚拟内存基本概念小结
请求分页管理方式
请求分页管理方式的页表(页表有修改)
缺页中断机构
请求分页管理与基本分页管理地址变换时的区别
地址变换示意图
请求分页管理方式小结(与基本分页对比着记忆)
页面置换算法
当系统空间不够而需要将无用信息换出外存时,决定换出哪个页面的算法
最佳置换算法(OPT,Optimal)
打钩的:发生缺页中断。例题中9次
页面置换:内存满了时,将无用页面换出去了,将需要的页面调入。例题中6次
前面3次打钩的虽然发生了缺页(内存块中没有想要的,需调入内存),但并没有发生页面置换(并未换出无用的页)
先进先出置换算法(FIFO)
最近最久未使用置换算法(LRU)
时钟置换算法(CLOCK)(最近未用算法)(NRU)
类似于时针转圈,为各个页面设置一个访问位
每次选择淘汰访问位为0的页面
最多进行两轮扫描
改进型的时钟置换算法
最多进行四轮扫描,刑如(访问位,修改位)的形式表示各页面状态
页面置换算法小结
页面分配策略
页面分配、置换策略
驻留集、(固定、可变)分配、(局部、全局)置换
何时调入页面
预调页:一次调入若干页面(运行前调入)
请求调页策略:
从何处调入页面
抖动(颠簸)现象
刚换出的页面马上又要换入内存,刚换入又马上换出