存储管理

存储管理功能

存储分配和去配

分配去配对象
内存、外存(相同方法)
分配去配时刻
进程创建、撤销、交换、长度变化(栈溢出, execl)
当处于外存的部分需要调入内存时,操作系统应为其分配内存空间,同时收回外存空间
当处于内存的部分需要调出内存时,操作系统应为其分配外存空间,同时收回内存空间
分配表:记录已经分配的区域
空闲表:记录尚未分配的区域

存储共享:

两个或多个进程共用内存中的相同区域

目的:节省内存、相互通讯
内容:代码、数据

存储保护

防止地址越界:每个进程都具有相对独立的进程空间。如果进程在运行时所产生的地址在其地址空间之外,则发生地址越界。
防止操作越权:对于允许多个进程共享的存储区域来说,每个进程都有各自的访问权限。、

存储扩充

内存、外存结合,虚拟存储体系
速度接近内存,容量相当外存

地址映射
逻辑地址=>物理地址
硬件支持
基址寄存器(base)、限长寄存器(limit)、快表;
使用上述寄存器完成地址映射过程;
不能正常完成地址映射时产生中断。

内存资源管理

内存分区

分区时刻
静态分区:系统初始化时分,即在系统运行之前将内存空间划分为若干区域;
动态分区:申请时分,即在系统运行过程中划分内存空间。

分区大小
等长分区:2i ,将内存空间划分为若干个长度相同的区域。
异长分区:将内存空间划分为若干个长度不同的区域。

通常作法
静态+等长(页式、段页式)
动态+异长(段式、界地址)

内存分配:
静态等长分区的分配

       字位映象图
      空闲页面表
       空闲页面链

动态异长分区的分配

  最先适应 (First Fit)  地址由小到大
  下次适应(Next Fit)
  最佳适应 (Best Fit)   长度由小到大
  最坏适应 (Worst Fit)   长度由大到小

碎片处理:

碎片:动态异常分区存储分配可能形成很小的空闲区域,称为碎片(fragment)

解决方法-紧凑(compaction):移动所有的占有区域,以使所有的空闲区域连成一片。

紧凑缺点:开销大,不仅要修改被移动进程的地址信息,而且要复制进程空间。

存储管理方式

界地址管理方式

1. 内存空间划分:动态异长;
2. 进程空间划分:一个进程一个区域,逻辑地址0l-1
3. 进程空间与内存空间对应关系(可以浮动):

所需表目:
(1)内存分配表:记录内存中所有已经被分配的区域。
(2)空闲区域表:记录内存中尚未分配的区域。

所需寄存器:
(1)基址(首址)寄存器: 保存正在运行进程起始地址;
(2)限长寄存器: 保存运行进程长度。

地址映射:将程序产生的逻辑地址转换为内存中的物理地址。
在这里插入图片描述
双对界:允许一个进程在内存中占有2个连续的区域。
代码(I空间):一对界
数据(D空间):一对界

实现:硬件需提供两对寄存器。代码区域首址寄存器和限长寄存器,数据区域首址寄存器和限长寄存器。硬件能够识别逻辑地址的所属空间。
注:代码区域可以被多个进程所共享,数据区域则为进程所独享。

交换技术(swapping)与重定位

例:UNIX 交换进程sched (#0)
交换原则:外存 SRUN 状态进程内存
(1)内存有空间,直接移入;
(2)内存空间不够,移出SWAIT, SSTOP状态进程;
(3)如果还不够,移出SSLEEP, SRUN状态进程,
条件:在外时间3秒;在内时间2秒。

覆盖技术: 将较大程序装入较小进程空间的技术.

只将全局代码和数据静态装入内存, 其它部分动态装入.
后装入的成分重复使用先装入成分所使用的存储区, 即覆盖先装入的成分.
特点:
最大限度地提高内存空间的利用率;

分页式存储管理

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述逻辑页号理解为进程空间页号
在这里插入图片描述

(Effective Access Time)内存有效访问时间

EAT=快表命中率*(快表访问时间+内存访问时间)+(1-快表命中率)*(快表访问时间+2 *内存访问时间) ns
98%(20+100)+2% (20+200)ns =122ns

多级页表
在这里插入图片描述

反置页表

传统页表面向进程空间
每个进程逻辑页面有一表项
当进程空间很大时,页表很大
反置页表面向内存空间
对每个内存页框设置一个表项,表项的序号为物理页框号f,表项的内容为进程标识pid 与逻辑页号p的有序对。
页表大小固定
整个系统一个反置页表,为所有进程所共用。

在这里插入图片描述
反置页表查找
由表头起始,平均为表长度的一半
对于不存在的页需要查找到尾,速度慢
解决方案-杂凑(hash)技术 散列技术
在反置页表前增加一级杂凑表(冲突计数和空闲标志)。
在进行地址映射时,由hash(pid,p)计算得到反置页表入口地址,从入口地址开始向下探 查找到对应的表项,位移f为对应的页框号。
查找杂凑表与反置页表至少需要两次访问内存
为进一步提高速度,快表缓冲

优点
消除了外部碎片
缺点
一个进程的长度通常并不恰好为页面长度的整数倍,产生页内零头

一个进程的页内零头的长度为半页

分段式存储管理

在这里插入图片描述
进程空间划分:若干段,每段一个程序单位。段内连续,断间不连续在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

段的共享

共享段表
为了实现对段的共享和保护,系统中需要提供共享段表,该表记录着所有的共享段
进程段表(n)共享段表(1)共享段(1)
当一个共享段被初次使用时,被登记在共享段表中,共享计数为1
以后其它进程访问此段时,共享计数加1
当一个进程结束对某一共享段的访问时,其共享计数减1

当共享计数减到0时,表示没有进程再使用该段,可以释放所占用的存储空间
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

段页式存储管理

便于共享和保护 消除“碎片”问题

基本原理
1. 内存空间划分:(同页式)
静态等长,2i, 称为一页框。
物理地址=(页框号,页内地址)=(f,d)
2. 进程空间划分:
一个进程<–>若干个段
一个段<–>若干个页
逻辑地址=(段号, 逻辑页号, 页内地址)=(s,p,d)在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值