存储器管理|操作系统

一.内存的基础知识

在这里插入图片描述
编译:由编译程序将用户源代码编译成若干目标模块(编译就是把高级语言翻译成机器语言).c->.o
链接:由链接程序将编译后形成的一组目标模块,以及所需要的函数链接在一起,形成一个完整的装入模块.o->.exe
装入(装载):由装入程序将装入模块装入内存运行。(由逻辑地址变成物理地址)

装入的三种方式

方式逻辑地址到物理地址的转换
绝对装入编译时将逻辑地址转换成物理地址
静态重定位装入时将逻辑地址转换成物理地址
动态重定位运行时将逻辑地址转换为物理地址,需要设置一个重定位寄存器

装入程序属于操作系统

方式负责
绝对装入编译器
静态重定位操作系统
动态重定位操作系统

绝对装入

在这里插入图片描述
所以在.o文件(机器语言)中的地址就已经是物理地址。

缺点
  • 绝对装入只适用于单道程序环境
  • 程序中使用的绝对地址可以在编译或者汇编的时候给出,也可以由程序员直接赋予。

静态重定位

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

缺点
  • 一个作业装入内存时,必须分配其要求的全部内存空间。如果没有足够的内存,就不能装入作业。
  • 作业一旦装入内存后,在运行期间就不能移动,也不能再申请内存。

动态重定位

在这里插入图片描述
在运行时,物理地址是重定位寄存器中的值加上逻辑地址

优点
  • 可以将程序分配到不连续的存储区中
  • 在运行前只需要装入部分代码就可以投入运行
  • 在程序运行期间,根据需要,动态申请分配内存
  • 允许程序在内存中发生移动

装入的三种方式

静态链接

在这里插入图片描述

装入时动态链接

在这里插入图片描述

运行时动态链接

在这里插入图片描述

二、内存管理的概念

在这里插入图片描述

三、覆盖与交换

在这里插入图片描述

覆盖交换
对于同一程序或者进程不同进程(作业)之间

覆盖技术

思想:将程序分成多个段,常用的段常驻内存,不常用的段在需要时调入内存。

固定区覆盖区
常驻的内存放在固定区,调入后不再调出需要用到时调入内存

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

交换技术

思想:内存空间紧张时,系统将内存中某些进程暂时换出外存,把外存中某些已经具备运行条件的进程换入内存(中级调度:进程在内存与磁盘间的动态调度)
PCB会常驻内存,不会被换出。

四、连续分配管理方式

在这里插入图片描述
连续分配:指为一个进程分配的必须是一个连续的内存空间

1.单一连续分配

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

2.固定分区分配

在这里插入图片描述

1)分区大小相等

在这里插入图片描述

2)分区大小不相等

在这里插入图片描述

3.动态分区分配

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
每次都分配第一个空前区(第一个最大,都无法满足的话,后面的都没有办法满足)

在这里插入图片描述

4.碎片

内碎片外碎片
分配给某进程的内存区域中,有些部分没有用上内存中的某些空闲分区由于太小而难以利用

四、非连续分配管理方式

在这里插入图片描述

1.基本分页存储管理

在这里插入图片描述

1)如何实现地址转换

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

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

2)基本地址的变换

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

3)局部性原理

时间局部性空间局部性
如果执行了程序的某条指令,那么不久之后这条指令很可能会被再次执行;如果某个数据被访问过,不久之后该数据可能再次被访问。(程序中存在大量循环)一旦程序访问了某个存储单元,在不久之后,其附近的存储单元也很可能被访问。(很多数据在内存中连续存放)

在这里插入图片描述

4)快表(TLB)

在这里插入图片描述

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

5)两级页表

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

1.基本分段存储管理

方便程序员
在这里插入图片描述

1)段表

页表段表
建立各个逻辑页面到实际的页框中的关系记录各个逻辑段到实际物理内存中的存放位置

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

3.段页式

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

1 实验目标 存储管理的主要功能之一是合理地分配空间 请求页式管理是一种常用的虚拟存储管理技术 本实验的目的是通过请求页式存储管理中页面置换算法模拟设计 了解虚拟存储技术的特点 掌握请求页式管理的页面置换算法 2 实验要求 1 通过随机数产生一个指令序列 共320条指令 指令的地址按下述原则生成: 50%的指令是顺序执行的; 25%的指令是均匀分布在前地址部分 25%的指令是均匀分布在后地址部分 具体的实施办法是: 在[0 319]的指令地址之间随机选取一点m; 顺序执行一条指令 即执行地址为m+1的指令; 在前地址[0 m+1]中随机选取一条指令并执行 该指令的地址为m’; 顺序执行一条指令 其地址为m’+1; 在后地址[m’+2 319]中随机选取一条指令并执行; 重复上述步骤 直到执行320次指令 2 将指令序列变换成页地址流 设: 页面大小为1K; 用户内存容量为4页到32页; 用户虚存容量为32K; 在用户虚存中 按每K存放10条指令排列虚存地址 即320条指令在虚存中的存放方式为: 第0条 9条指令为第0页(对应虚存地址为[0 9]); 第10条 第19条指令为第一页(对应虚存地址为[10 19]); 第310条 第319条指令为第31页(对应虚存地址为[310 319]); 按以上方式 用户指令可组成32页 3 计算并输出下述各种算法在不同内存容量下的命中率 先进先出的算法(FIFO); 最近最少使用算法(LRR); 最佳淘汰算法(OPT);先淘汰最不常用的页地址; 命中率 1 页面失效次数 页地址流长度 在本实验中 页地址流长度为320 页面失效次数为每次访问相应指令时 该指令所对应的页不在内存的次数 ">1 实验目标 存储管理的主要功能之一是合理地分配空间 请求页式管理是一种常用的虚拟存储管理技术 本实验的目的是通过请求页式存储管理中页面置换算法模拟设计 了解虚拟存储技术的特点 掌握请求页式管理的页 [更多]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值