考研408--操作系统--day6--内存&内存管理&连续分配管理方式

(以下内容全部出自上述课程)

目录

  • 内存的基础知识
    • [1. 什么是内存,有何作用](#1. 什么是内存,有何作用)
    • [2. 指令的工作原理](#2. 指令的工作原理)
    • [3. 装入的三种方式](#3. 装入的三种方式)
      • [3.1 绝对装入](#3.1 绝对装入)
      • [3.2 可重定位装入](#3.2 可重定位装入)
      • [3.3 动态重定位](#3.3 动态重定位)
    • [4. 从写程序到程序运行](#4. 从写程序到程序运行)
    • [5. 链接的三种方式](#5. 链接的三种方式)
    • [6. 小结](#6. 小结)
  • 内存管理的概念(熟悉)
    • [1. 内存空间的分配与回收](#1. 内存空间的分配与回收)
    • [2. 内存空间的扩展](#2. 内存空间的扩展)
    • [3. 地址转换](#3. 地址转换)
    • [4. 内存保护](#4. 内存保护)
    • [5. 小结](#5. 小结)
  • 进程的内存映像
  • 连续分配管理方式
    • [1. 单一连续分配](#1. 单一连续分配)
    • [2. 固定分区分配](#2. 固定分区分配)
    • [3. 动态分区分配](#3. 动态分区分配)
    • [4. 小结](#4. 小结)
  • 动态分区分配算法
    • [1. 首次适应算法](#1. 首次适应算法)
    • [2. 最佳适应算法](#2. 最佳适应算法)
    • [3. 最坏适应算法](#3. 最坏适应算法)
    • [4. 邻近适应算法](#4. 邻近适应算法)
    • [5. 小结](#5. 小结)

内存的基础知识

1. 什么是内存,有何作用

例子:

8GB-->内存 64GB-->外存

房屋是人类的家,那么,内存就是数据的家。

1个存储单元=(存储单元是房子,下面的就是房子的大小)

  • 1个字节=8个字(按字节编址)-->有钱人,按栋买房子
  • 1个字=XX字长=XX个二进制(按字编址)-->普通人,按个买房子

    按字节编址,最后就需要用字节表示存储单元的大小。
    按字编址,最后就需要用字或者多少位的二进制表示存储单元的大小。

2. 指令的工作原理

准备工作:先把所有指令全部存入内存的程序段中,将需要的数据存入数据段中

指令1 --传入--> CPU --执行--> 将10赋值给寄存器中的存储单元(注意地址编号)

指令2 --传入--> CPU --执行--> 寄存器中的10进行加1操作

指令3 --传入--> CPU --执行--> 将寄存器中的数字传回地址为...的存储单元内。

如上图所说,我们进行指令操作时,都是直接用的给出的固定地址,那如果地址是随便儿分配的,指令还能正常执行么?

这里就引出了逻辑地址,也叫做相对地址,比如小明坐在一排一位、小红坐在一排二位,有具体编号的,这是绝对地址

如果我们说,小红坐在小明的右边,和别人比对了一下,通过别人找到这个人,这就是相对地址 ,也就是逻辑地址

将上述的指令的地址转换为逻辑地址的话,我们的思路就是,将这个数值放在某某指令下面,距离这个指令多少多少距离。

但是在内存中我们只能存放物理地址,不能存放逻辑地址,所以我们就要考虑怎样才能把左侧的可执行文件(就是上面的所有指令打包起来,类似于带main的可执行Java代码,纯类比,逻辑并不严谨)中的逻辑地址,在装入内存后转换为内存中的物理地址。

3. 装入的三种方式

3.1 绝对装入

这个是提前知道自己的位置,然后在装入前直接改好 ,再进行装入。

3.2 可重定位装入

这个是在装入过程中直接边装入边修改 地址。

3.3 动态重定位

这个是装入就直接装入,装入的还是逻辑地址,等到运行的时候 才会修改,转换为物理地址。

4. 从写程序到程序运行

5. 链接的三种方式

和装入的三种方式类似,都是前中的分类。

静态:运行前连接。

动态:边XX边连接。

6. 小结

内存管理的概念(熟悉)

1. 内存空间的分配与回收

2. 内存空间的扩展

3. 地址转换

就是上面的装入的三种方式。

4. 内存保护



5. 小结

进程的内存映像


连续分配管理方式

1. 单一连续分配

内存-->一个小区

系统区-->物业

用户区-->可以住人的地方

进程-->买房的客户

内部碎片-->好比我这个房子买来收租的,有个房间没租出去,这就是内部碎片

外部碎片-->这个小区有房子一直没卖出去

单一连续分配就是,这个小区每次只卖给一个人一个房子,这个人走了才会卖给另外一个人。

怎么这么像招了一个小区门卫(误)

2. 固定分区分配

就是这个小区里的房子的大小都一模一样。

想要小房子的人只能买这个适中大小的房子,想要大房子的也只能买这个大小的房子。

3. 动态分区分配

定制化卖房,户主想要多大的房子到时候就直接定制化施工。









4. 小结

动态分区分配算法

1. 首次适应算法

顺序:地址从低到高,找第一个。

2. 最佳适应算法

顺序:容量从低到高,找第一个。

3. 最坏适应算法

顺序:容量由高到低,找第一个。

4. 邻近适应算法

变为循环链表,依次查找。

5. 小结

相关推荐
怀民民民1 小时前
双通道点光源追踪系统
单片机·嵌入式硬件·开源·操作系统·串口·硬件·frtos
元亓亓亓15 小时前
考研408--计算机网络--day12--网络应用模型&DNS&FTP
服务器·计算机网络·考研·408
imbackneverdie17 小时前
更经济实惠的润色方法,告别“中式英文”!
人工智能·考研·ai·自然语言处理·ai写作·研究生·ai工具
蒙奇D索大1 天前
【数据结构】排序算法精讲|折半插入排序全解:高效优化、性能对比、实战剖析
数据结构·学习·考研·算法·排序算法·改行学it
imbackneverdie1 天前
如何用AI工具,把文献综述从“耗时费力”变成“高效产出”?
人工智能·经验分享·考研·自然语言处理·aigc·ai写作
LBJ辉2 天前
第 4 章 串
数据结构·考研
你要飞2 天前
第一课:英语简单句的构成与运用
笔记·考研
想做后端的小C2 天前
操作系统:SPOOLing(假脱机技术)
操作系统·假脱机技术
元亓亓亓2 天前
考研408--组成原理--day11--微程序控制器&微指令&指令流水
考研·408·组成原理·微程序
小林up2 天前
【MIT-OS6.S081作业5.1】Lab5-lazy page allocation-Eliminate allocation from sbrk()
操作系统·xv6