操作系统——存储管理

一、存储管理

1、存储层次

cpu寄存器
主存
辅存

细分:
寄存器、高速缓存、主存储器、磁盘缓存、辅存储设备(固定磁盘、可移动存储介质)

2、寄存器

1-解释

中央处理器的组成部分。访问速度快与cpu协调工作。
一般以字为单位

2-用途

暂存执行算数及逻辑运算的数据
用于寻址,存于寄存器地址可用来指向内存中的某个位置
来读写数据计算机的外围设备

3、主存储器

1、定义
内存或者主存,用于保存当前进程运行的程序和数据;
2、单位
字节

4、高速缓存

介于中央处理器和主存储器之间的高速小容量存储器,大于寄存器小于主存储器,访问速度快于主存储器低于寄存器。

5、存储器的任务和功能

存储空间的应用和回收

  • 地址转换
    将用户程序全部装入内存空间,实现逻辑地址到物理地址的映射,这种吧逻辑地址转换成物理地址的过程称作重定位或者地址映射
    主存空间的共享
    主存空间的保护
    主存空间的扩充
  • 对换
    内存和外存之间的进程对换

6、存储管理的方式

连续分配方式
单一连续分配
分区式分配
离散分配方式
分页
分段
段页
虚拟存储系统
分页
分段
段页

7、分页存储管理

(1)定义

为了将进程分散地装入到许多不相邻姐的内存分区中,系统会把用户程序的地址空间划分为若干个大小相等的区域,每个区域称作一个页面或者页,每页有一个编号叫做页号。也把内存空间划分为若干个和页大小相等的物理块,这些物理块叫帧或者内存块;

(2)页内碎片

分配内存时,将系统进程的若干个页装入到若干个块中,由于最后一页装不满一块,导致不可利用的碎片,称之为页内碎片;
业内碎片大小要适中,过小,能够提高内存的利用率,但是,增加页表的长度,消耗更多的内存,同时增加换进换出的效率;过大呢,虽然减少了换进换出的频率,但是会增加页内碎片的大小;

(3)解释

分页系统中,页面的大小由硬件地址结构来决定。机器确定,页面大小确定,一般来说是2的n次幂512B-16M不等;

(4)地址结构

1)逻辑地址

页号p
页内偏移(页内地址)w

2)计算

页内逻辑地址2^M , 页的大小2^N, 逻辑地址的高m-n位就是页号,低n位就是页内偏移;

(5)页表

为保证程序的正常运行,能在内存中找到每个面所对应的物理块,系统为每个进程创建了一个页面映射表,称为页表;
每个页在页表中占有一个页表项,记录了该页的物理块号;
作用:
实现页号到物理块号的地址映射;

(6)地址映射

直接地址映射
每个进程都有一个页表,页表在内存中;
进程未执行时,将页表的初始地址和页表的长度放进PCB中
调度进程时,将两个数据装入页表寄存器中。
进程访问逻辑地址中的指令或者数据,分页系统地址变换机自动将效地址分为页号和页内地址;
以页号检索,超出越界报错;
否则找到物理块号,将其装入物理地址寄存器中。
同时将页内地址送入物理寄存器中的块内地址字段中。
地址寄存器中就是拼接的实际内存地址,从而实现逻辑地址到物理地址的转换;

cpu取一个数据或者指令,至少要访问两次内存;
第一次:访问内存中的内标;
第二次:根据实际地址取数据或者指令;
具有块表的地址映射
提高速度,将页表放入寄存器中,由于寄存器比较昂贵,所以不可取;
地址变换结构增设一个具有并行查询能力的特殊高速缓存器,或称作高速联想存储器,或者快表;

(7)页表结构

两级页表
增加外层页表,
多级页表

页表 内存 页的大小计算
逻辑地址大小 / 页的大小 = 页表条目
页表条目 * 条目大小 = 页表占用大小
页面大小 * 2 ^(页表项大小)=操作系统最大支持内存大小(虚拟内存)

(8)页面的共享

实际应用中,会出现一个逻辑功能独立的程序模块包含多个页面,或者一个页面包含不同的逻辑功能模块;在一定程度上实现程序模块的共享和保护;
因此提出了分段存储管理;

8、分段存储管理

(1)优势

方便编程
方便共享
方便保护

(2)定义

程序按照内容或过程(函数)关系划分为若干个段,每个段定义一个逻辑信息,都有自己的名字;

(3)理解

一个作业所包含的段对应一个二维线性虚拟空间,也就是一个二维虚拟存储器;
段式管理程序以段为单位进行内存的分配,然后通过地址映射机构把段式虚拟地址转成物理地址;

(4)构成

段号(s)
段内地址(w)
类比
分页存储系统中的存储结构,分页管理系统中页号和页号之间是顺序递增的,但是分段系统中,段号和段号之间没有任何关系;
分页系统中的页长是固定的,但是分段系统中的长度是不固定的;
每个段上有一组完整的程序或者数据;
每一个段是一个首地址为零、连续的一维线性空间。
根据需要,段是可以动态增长的。

(5)段表

在系统中为每个进程建立一张段映射表,简称段表;
每个段表中占有一个表项,其中记录该段在内存中的起始位置(基质)和段的长度;
分区式管理:最先适应算法、最佳适应算法、最坏适应算法 -----> 空闲区分配;

(6)地址转换

系统中设置段表寄存器,用于存放起始地址和段长度TL,当进程要访问某个逻辑地址中的指令或者数据,地址变换机构将逻辑地址分为段号和段内地址两部分,首先根据段表寄存器中的内容找到段表,然后系统根据逻辑地址中的段号与段表长度进行比较;
若段号> 段表长度,越界;
否则,取出段内地址,
若段内地址>段长,越界;
否则段内地址+该段的内存起始地址,就是物理地址;

分页系统中访问两次内存,分段中同样,处理方法相同;都是增加一个快表;
分页和分段的区别
分页是物理单位,分段是逻辑单位。分页是实现离散分配,减少内存碎片,提高内存利用率,分页是系统要求;f分段是逻辑单位,组内含有相对完整的信息,段长度不固定,取决于用户编写的程序,是为了更好的用户编程,以及信息的共享和保护;
页大小是系统决定的,段是用户决定的
分页进程地址空间是一维的;分段的地址空间是二维的;

9、虚拟存储器

(1)定义

具有层次结构存储器的计算机系统中,具有请求调入和交换功能,为用户提供一个比实际物理内存容量大得多的可寻址的一种存储器系统,在逻辑上进行内存容量的扩充;

(2)限制

指令中表示地址的字长
外存的容量

(3)缺页中断

一种特殊的中断,一般中断是指令执行完成后执行,缺页中断有可能在指令运行过程中,进行中断,并且可能中断多次;
经历:保护cpu环境,分析中断原因、转入缺页中断处理程序进行处理、恢复cpu环境;

(4)页面换出算法

最佳置换算法
置换掉后续中不经常使用的数据,和最晚使用的数据;
先进先出置换算法
先入列的先删除;
最近最久未使用置换算法(LRU)
最近使用的不淘汰,最近最久未使用的进行删除置换;
使用计数器或者栈来进行数据的记录
LRU近似算法
简单时钟算法
是对访问数据增加标记位,如果循环无此位,置零,若全部为0位,则替换最久为访问的数据;
改进型时钟算法
在标记位基础上,在增加一个修改位,按照访问和修改的双重标准进行淘汰机制;
最少使用(LFU)置换
计数器,一段时间内清空,最小计数器被淘汰;

(5)请求分页系统内存块的分配

最小物理块的确定
内存块的分配策略
分配算法

(6)抖动

页面频繁的换进换出,不能完成有效的工作,这种现象称之为抖动(簸箕);
防止抖动的方法:
采用局部置换策略防止抖动的传播
利用工作集模型预防抖动
通过挂起进程解决抖动问题

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值