其他分享
首页 > 其他分享> > 主存管理

主存管理

作者:互联网

主存管理概述

存储组织

存储器的功能是保存数据,存储器的发展方向是高速、大容量和小体积。存储组织是指在存储技术和CPU寻址技术许可的范围内组织合理的存储结构。

主存共享方式

程序的逻辑组织

主存管理的功能

几个概念

主存管理功能

实现逻辑地址到物理地址的映射;主存分配;存储保护;主存扩充。

什么是地址映射

将程序地址空间中使用的逻辑地址变换成主存中的物理地址的过程,称为地址映射。

地址映射的时机和类别

主存分配

构造分配用的数据结构

主存资源信息块:等待队列;空闲区队列;主存分配程序

制定策略
实施主存分配和回收

主存扩充

可行性

程序局部性原理:程序在执行过程中的一个较短时间内,所执行的指令地址或操作数地址分别局限于一定的存储区域中。

实现方法
虚拟存储器

定义:由操作系统和硬件相配合来完成主存和辅存之间的信息的动态调度。这样的计算机系统好像为用户提供了一个其存储容量比实际主存大得多的存储器,这个存储器称为虚拟存储器。

虚拟存储器的核心

实现虚拟存储器的物质基础

虚拟存储器的概念图

存储保护

什么是存储保护

在多用户环境中,主存储器按区分配给各用户程序使用。为了互不影响,必须由硬件(软件配合)保证各用户程序只能在给定的存储区域内活动,这种措施叫做存储保护。

实现方法——界地址保护
上下界防护

基地址、限长防护

分区存储管理

动态分区分配

什么是动态分区分配

在处理程序的过程中,建立分区,依用户请求的大小分配分区。

动态分区的分配、回收过程
分区分配数据结构

分区的分配与回收

分区分配思路
分区回收思路

放置策略

什么是放置策略

选择空闲区的策略,称为放置策略。常用的放置策略有:首次匹配(首次适应算法)、最佳匹配(最佳适应算法)、最坏匹配(最坏适应算法)。

首次适应算法
最佳适应算法
最坏适应算法

碎片问题及拼接技术

什么是碎片问题

在已分配区之间存在着的一些没有被充分利用的空闲区。

什么是拼接技术

所谓拼接技术是指移动存储器中某些已分配区中的信息,使本来分散的空闲区连成一个大的空闲区。

拼接技术的缺点

页式存储管理

背景:分区存储管理简单,但有碎片问题,内存使用效率低,接收的作业数有限。造成这种问题的主要原因是用户程序装入内存时是整体装入的,一般分配较大的连续内存区,为解决这个问题,提出了分页存储管理技术。

页式系统的基本概念

页面

程序的地址空间被等分成大小相等的片,称为页面,又称为虚页。

主存块

主存被等分成大小相等的片,称为主存块,又称为实页。

页面与主存块的关系

为了方便实现动态地址变换,主存的块和页面大小相等且为2的幂次。

页表

定义:为了实现从地址空间到物理主存的映像,系统建立的记录页与内存块之间对应关系的地址变换的机构称为页面映像表,简称页表。

页表的组成:

分页映像存储的示例

页式地址变换

页表

程序的虚地址空间划分为若干页,这些连续的页面在主存中可能占用不连续的主存块。为了保证程序能正确运行,必须在执行每条指令时将程序中的逻辑地址变换为实际的物理地址,即进行动态重定位。记录页与块之间对应关系的地址变换的机构称为页面映像表,简称页表。

虚地址结构

当CPU给出的虚地址长度为32位,页面大小为1KB时,在分页系统中地址结构的格式如下:

上图中,机器的地址长度为32位,则每当CPU给出一个虚地址时,这个地址中的高20位表示该地址所在的页号,而低12位表示该地址在这页内的相对位移。分页系统中具有这种特征的地址结构称为分页机构。

页式地址变换

由上图展示的地址变换过程可知,在分页系统环境下,程序员编制的程序,或由编译程序给出的目标程序,经过装配链接后形成一个连续的地址空间,其地址空间的分页由系统自动完成,而地址变换规则通过页表自动、连续地进行,系统的这些功能对用户或程序员来说是透明的。正因为在分页系统中,地址变换过程主要是通过页表来实现的,因此人们称页表为地址变换表或地址映像表。

采用联想存储器加快查表速度

背景:在地址变换过程中,若页表全部由主存实现,那么存取一个数据(或一条指令)至少要访问两次主存:一次是访问页表,确定所要取数据(或指令)的物理地址;第二次才根据物理地址取数(或指令)。也就是说若采用存放在主存的页表进行地址变换,指令执行速度要下降\(100\%\) 。为了提高查表速度,可以采用高速缓冲存储器作为页表。

什么是联想存储器:高速、小容量半导体存储部件,又称缓冲存储器

快表:在缓冲存储器中存放正在运行的进程当前用到的页号和对应的块号,又称为块表。

利用块表进行地址映射:

采用相联存储器的地址转换

假定访问主存时间为\(100\)毫微秒,访问相联存储器时间为\(20\)毫微秒,相联存储器为\(32\)个单元时快表命中率可达\(90\%\),按逻辑地址存取的平均时间为:

\[(100 + 20) \times 90\% + (100 + 100 + 20) \times (1 - 90\%) = 130 \]

两次访问主存的时间为:

\[100 \times 2 = 200 \]

两种页式系统

简单页式系统

将程序的逻辑地址空间和物理内存划分为固定大小的页或页面,程序加载时,分配其所需的所有页,这些页不必连续。

优点

缺点:程序必须全部装入内存。

请求页式系统

原理

需要解决的问题

扩充页表功能

淘汰机制与策略

什么是淘汰策略

用来选择淘汰那一页的规则叫做置换策略,或称淘汰算法。

扩充页表功能

颠簸

颠簸又称抖动,简单来讲就是导致系统效率急剧下降的主存和辅存之间的频繁页面置换现象。

缺页中断率

假定程序\(p\)共有\(n\)页,系统分配\(m\)块,有\(1\leq m \leq n\);若程序\(p\)在运行中:成功的访问次数为\(s\),不成功的访问次数为\(f\);则缺页中断率为:

\[f' = \frac{f}{s + f}\\ f' = f(r , m , p) \]

\(r\):置换算法,\(m\):系统分配的块数,\(p\):程序特征

常用的置换算法

最佳算法(OPT算法)

当要调入一新页而必须先淘汰一旧页时,所淘汰的那一页应是以后不再要用的,或者是在最长的时间以后才会用到的那页。

先进先出淘汰算法(FIFO算法)

定义:总是选择在主存中居留时间最长(即最早进入主存)的一页淘汰。

实现:建立一个页面进入主存的先后次序表;建立一个替换指针,指向最早进入主存的页面;当需要置换一页时,选择替换指向的那一页,然后调整替换指针的内容。

页号表:页号表记录页面进入主存的先后次序

最久未使用淘汰算法(LRU算法)

定义:总是选择最长时间未被使用的那一页淘汰。

实现:用引用位考察页面的使用情况;当访问页面时,将引用位置1,并计时;当要淘汰一页时,选择时间最长的一页淘汰。要精确实现很困难,硬件方法:采用计数器;软件方法:采用页号栈。

软件方法:采用页号栈示例

缺页处理练习:计算缺页次数

段页式存储管理

段式地址空间

什么是段

分段是程序中自然划分的一组逻辑意义完整从信息集合。分段的例子:代码分段、数据分段、栈段页。

程序地址空间

由若干个逻辑分段组成,每个分段有自己的名字,对于一个分段而言,它是一个连续的地址区。

段式地址结构

段式地址变换

段式地址变换步骤:

页式系统与段式系统的区别

用户地址空间的区别
分段和页面的区别
分段 页面
信息的逻辑划分 信息的物理划分
段长是可变的 页的大小是固定的
用户可见 用户不可见
w字段的溢出将产生越界中断 w字段的溢出自动加入到页号中
段页式系统

在段式存储管理中结合分页存储管理技术,在一个分段内划分页面,就形成了段式存储管理。

段页式地址结构的程序地址空间:

段页式系统中段表、页表与主存的关系

标签:管理,主存,程序,地址,空闲,地址变换,页面
来源: https://www.cnblogs.com/cherish-/p/15759256.html