操作系统——内存管理

3.内存管理

3.1概述

(1)什么是内存管理?存储管理有哪些功能?

操作系统对内存的划分与动态分配

在这里插入图片描述

内存分配与回收:由操作系统完成主存储空间的分配和管理

地址映射:把逻辑地址转换为相应的物理地址

内存共享:允许多个进程访问内存的同一部分

存储保护:保证各道作业在各自的存储空间内运行,互不干扰

内存扩充:利用虚拟存储技术或自动覆盖技术,从逻辑上扩充内存

(2)物理地址和逻辑地址的概念?

物理地址(绝对地址):主存储器中每个存储单元的地址,信息在存储器中的实际存放地址

逻辑地址(相对地址):允许在程序中编排的地址

(3)程序的编译、链接和装入

在这里插入图片描述

编译:由编译程序将用户源代码编译成若按目标模块

链接:由链接程序将编译后形成的一组目标模块及他们所需的库函数链接在一起,形成一个完整的装入模块

静态链接:在程序运行之前,先将各目标模块及他们所需要的库函数连接成一个完整的可执行文件(装入模块),之后不再拆开

装入时动态链接:将各目标模块装入内存时,边装入边链接

运行时动态链接:在程序执行过程中需要该目标模块时,才对他进行链接

装入(重定位):由装入程序将装入模块装入内存中运行,一个经过编译链接的程序存在于自己的虚拟地址空间中,当要运行时才把他装入自己的内存空间中,这时需要将程序中的逻辑地址转换成主存中侧物理地址,这个转换过程即为重定位技术

绝对装入:程序中的逻辑地址和实际内存地址完全相同,不需对程序和数据的地址进行修改,只适用于单道程序运行环境

可重定位装入:地址变换通常在进程装入时一次完成,一个作业装入内存时,必须分配其要求的全部内存空间,如果没有足够的内存就不能装入该作业,作业一旦进入内存后,在运行期间就不能再移动,也不能再申请内存空间

动态运行时重定位:在程序装入时保留逻辑地址不变,在程序执行过程中,CPU执行到具体的指令时,才将要访问指令的逻辑地址转换为物理地址

3.2分区分页分段管理技术

在这里插入图片描述

什么是连续分配方式和非连续分配方式

连续分配:为用户进程分配的必须是一个连续的内存空间

非连续分配::为用户进程分配的可以是一些分散的内存空间

分区存储管理

(1)什么是外碎片和内碎片?

外碎片:指还没有被分配出去,但是由于太小了无法分配给申请内存空间的新进程的内存空闲区域

内碎片:指已经分配出去,但是没有被利用的内存空间

(2)固定分区分配的特点

分区大小相等:缺乏灵活性,但很适合用于一台计算机控制多个相同对象的场合

分区大小不等

优点:实现简单,无外部碎片

缺点:当用户程序太大时,可能所有的分区都不能满足要求,需要采用覆盖技术解决,会降低性能

(3)动态分区分配的特点及其中的算法

动态分区分配:在装入程序时按其初始要求分配,或在其执行过程中通过系统调用进行分配或改变分区大小

动态分区的分配算法

首次适应算法(First fit)

循环首次适应算法(Next Fit)

最佳适应算法(Best Fit)

最坏适应算法(Worst Fit)

在这里插入图片描述

(4)覆盖与对换的概念

覆盖:把一个程序划分为一系列功能相对独立的程序段,让执行时不要求同时装入内存的程序段组成一组(称覆盖段),共享主存的同一个区域。

对换:把内存中暂时不能运行的进程或者暂时不用的程序和数据调出到外存上,以便腾出足够内存空间,再把已具备运行条件的进程和进程所需要的程序和数据调入内存

(5)进程的换入和换出规则

外存分为文件区对换区

文件区用于存放文件,采用离散分配方式

对换区用于存放从内存换出的进程,进程在对换区中驻留的时间是短暂的,采用连续分配方式

换出:选择处于阻塞状态且优先级最低的进程作为换出进程,然后启动盘块,将该进程的程序和数据传送到磁盘对换区上

换入:系统检查所有进程的状态,从中找出就绪状态但已换出的进程,将其换出时间最久的进程作为换入进程

(6)分页的概念

把进程的逻辑地址空间分为若干个大小相等的片,称为页面或页,相应的也把内存空间划分为大小相等的存储块,称为块或页框,在为进程分配内存时,以块为单位将进程中的若干页分别装入到多个可以不相邻的物理块中

分页存储器的逻辑地址:(页号,页内地址)

(7)什么是页内碎片?页面太大太小有什么特点?

页内碎片:进程的最后一页装不满而形成的不可利用的碎片

页面太大,可减少页表长度,提高页面换进换出速度,却会使页内碎片增大

页面太小,可使页内碎片减小。但会使每个进程占用更多页面,从而导致页表过长,占用大量内存,还会降低页面换进换出的效率

(8)页表的概念和组成

在这里插入图片描述

给定逻辑地址A,页面大小为L,页号P = INT[A/L],偏移量A % L

(9)分页存储地址变换机构

地址变换机构任务:将逻辑地址转换为内存中的物理地址

在系统中通常设置一个页表寄存器(PTR),存放页表在内存中的起始地址及页表长度

在这里插入图片描述

若页表全部放在内存中,则存取一条数据或指令至少要访问两次内存,第一次是访问页表,确定所存取数据或指令的物理地址,第二次是根据得到的物理地址存取指令或数据

存在的问题

(1)每次访存操作都需要进行逻辑地址导物理地址的转换,影响计算机处理速度

(2)每个进程引入页表用于存储映射机制,页表不能太大,否则内存利用率低

(10)引入快表的地址变换机构

快表:访问速度比内存块很多的高速缓冲存储器

在这里插入图片描述

单级页表存在的问题

(1)页表必须连续存放,因此当页表很大时,需要占用很多个连续的页框

(2)没有必要让整个页表常驻内存,因为进程在一段时间内可能只需要访问某几个特定的页面

(11)两级页表的概念和地址变换机构

​ 将页表在内存中离散存储,为离散分配的页表再建立一张页表,称为页目录表(外层页表,顶层页表)

在这里插入图片描述

(12)基本分段存储管理的概念

分段系统中逻辑地址结构是二维的(段号S,段内偏移W)

在这里插入图片描述

(13)段页式管理

在段页式系统中,作业的地址空间首先被分成若干个逻辑段,每段都有自己的段号,然后将每段分成若干大小固定的页

注意!:在一个进程中,段表只能有一个,而页表可以有多个

在这里插入图片描述

(14)分页和分段的区别和联系

相同点

  • 都采用离散分配方式
  • 都要通过地址映射机构来实现地址变换

区别

  • 分页是出于系统管理的需要,分段是出于用户应用的需要
  • 页大小是系统固定的,段大小通常不固定
  • 分页逻辑地址表示是一维的,分段是二维的
  • 通常段比页大,因而段表比页表短,可以缩短查找时间,提高访问速度
  • 分段比分页更容易实现信息的共享和保护

3.3虚拟内存技术

(1)什么是虚拟存储器?

具有请求调入功能和置换功能,能从逻辑上对内存容量加以扩充的一种存储器系统

(2)虚拟内存容量问题

虚拟内存的最大容量是由CPU寻址范围确定的

虚拟内存实际容量 = min(内存外存容量之和,CPU寻址范围)

:某计算机地址结构为32位,内存大小512MB,外存大小2GB

虚拟内存最大容量为
2 32 = 4 G B 2^{32} = 4GB 232=4GB
虚拟内存实际容量=min(4GB,512MB+2GB) = 512MB+2GB

(3)虚拟存储器的特征

  • 多次性
  • 对换性
  • 虚拟性
  • 离散分配,部分安装

(4)虚拟内存的实现

在这里插入图片描述

页表机制:

请求页表数据结构

页号内存块号状态位访问字段修改位外存地址

缺页中断:因为当前执行的指令想要访问的目标页面未调入内存而产生的,属于内中断

在这里插入图片描述

(5)调入策略

在这里插入图片描述

(6)什么是局部性原理?

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

时间局部性:如果执行了程序中的某条指令,那么不久后这条指令很有可能再次执行,如果某个数据被访问过,不久之后该数据可能被再次访问

空间局部性:一旦程序访问了某个存储单元,在不久之后,其附近的存储单元很有可能被再次访问

(7)什么是抖动?产生抖动的原因是什么?

抖动(颠簸):刚刚换出的界面马上就要换入内存,刚刚换入的页面马上就要换出内存,这种频繁的页面调度行为

主要原因:进程频繁访问的页面数目高于可用的物理块数(分配给进程的物理块不够)

为进程分配的物理块太少,会使进程发生抖动现象

为进程分配的物理块太多,会降低系统整体的并发度,降低某些资源的利用率

(8)驻留集和工作集

驻留集:请求分页存储管理中给进程分配的内存块的集合

工作集:指在某段时间间隔里,进程实际访问页面的集合

驻留集的大小不能小于工作集的大小,否则进程运行过程中将频繁缺页

(9)页面分配、置换和清除策略

在这里插入图片描述

(10)页面置换算法

在这里插入图片描述

(11)Belady异常

当为进程分配的物理块数增大时,缺页次数不减反增的异常现象

只有FIFO算法会产生Belady异常

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张先森啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值