操作系统第三章 内存管理·3.1.内存管理概念 3.2.虚拟内存管理

王道计算机考研 操作系统 —— 课程链接

3.1.内存管理概念

3.1_1_内存的基础知识

在这里插入图片描述

内存的概念与作用

在这里插入图片描述
平常,各种软件都存放在外存(或附存)里,如电脑中的硬盘,但硬盘是一种慢速设备,CPU是一种超快速设备,所以如果CPU要处理的程序数据直接从外存中存取,CPU会花费大量的时间等待外存的存取操作的完成。所以显然,CPU直接与慢速的外存进行数据交互是会有速度的矛盾的,因此,我们引入了内存这种部件,它是一种更快速的存放数据的硬件,来缓和外存与CPU的速度矛盾。
在这里插入图片描述

进程运行的基本原理

在这里插入图片描述

逻辑地址、物理地址

在这里插入图片描述
在这里插入图片描述
从逻辑地址到物理地址的转换,应该是“装入”这一步需要解决的问题
在这里插入图片描述
如果内存地址也是从0开始,那么逻辑地址和物理地址就是相同的
在这里插入图片描述
装入模块中的指令地址指的是“相对地址”,即相对于开始地址而言的地址(又称逻辑地址)
装入模块装入内存时,需要对指令中的地址进行处理,将它转换为物理地址

装入的三种方式

绝对装入

在这里插入图片描述
使用绝对装入,需要保证在编译时就能知道装入模块最终会被放在内存中的什么位置
绝对装入只适用于单道程序环境,因为在单道程序环境中,内存中同一时刻下只会有一个程序正在运行,每个程序要从什么位置开始存放可以在一开始就预定好。
绝对装入是由编译器完成的(单道程序阶段还没有产生操作系统)

静态重定位(可重定位装入)

在装入时对地址进行“重定位”,可根据内存的当前情况,将装入模块装入到内存的适当位置。
在这里插入图片描述
静态重定位的特点是在一个作业装入内存时,必须分配其要求的全部内存空间如果没有足够的内存,就不能装入该作业
作业一旦进入内存后,在运行期间就不能再移动,也不能再申请内存空间。

动态重定位(动态运行时装入)

现代操作系统一般都使用动态重定位
装入程序把装入模块装入内存后,并不会立即把逻辑地址转换为物理地址,而是把地址转换推迟到程序真正要执行时(指令运行时)才进行
在这里插入图片描述

如果要移动程序再内存中的位置,只需要改变重定位寄存器的值,不会影响之后的访存操作

优点:

  1. 可将程序分配到不连续的存储区中(分页存储、分段存储);
  2. 在程序运行前只需装入它的部分代码即可投入运行,然后在程序运行期间,根据需要动态申请分配内存;
  3. 便于程序段的共享,可以向用户提供一个比存储空间大得多的地址空间

链接的三种方式

静态链接

在链接的过程中,需要将各个目标模块独立的逻辑地址合并为一个完整的逻辑地址
在这里插入图片描述

动态链接

在这里插入图片描述

运行时动态链接

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

3.1_2_内存管理的概念

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
内存保护,是指保证各进程在各自存储空间内运行,互不干扰
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.1.7 基本地址变换机构

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

3.1.11 段页式管理

在这里插入图片描述
分段必须连续地存放,因此可能会产生许多难以利用的内存碎片
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
段式管理的地址结构是二维的,分页管理的地址结构是一维的

在这里插入图片描述
在这里插入图片描述
各个段的长度不相等,因此需要检查页号是否越界
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Asio otus

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

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

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

打赏作者

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

抵扣说明:

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

余额充值