内存

内存

内存的定义和作用

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的页面
最多进行两轮扫描
在这里插入图片描述

改进型的时钟置换算法

最多进行四轮扫描,刑如(访问位,修改位)的形式表示各页面状态
在这里插入图片描述

页面置换算法小结

在这里插入图片描述

页面分配策略

在这里插入图片描述

页面分配、置换策略

驻留集、(固定、可变)分配、(局部、全局)置换

在这里插入图片描述
在这里插入图片描述

何时调入页面

预调页:一次调入若干页面(运行前调入)
请求调页策略:
在这里插入图片描述

从何处调入页面

在这里插入图片描述

抖动(颠簸)现象

刚换出的页面马上又要换入内存,刚换入又马上换出
在这里插入图片描述

工作集(和驻留集)

在这里插入图片描述

页面分配策略小结

在这里插入图片描述

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值