考研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. 小结

相关推荐
酉鬼女又兒13 小时前
零基础入门计算机组成原理:控制器章节全考点汇总 | 寄存器 + 控制存储器 + 微指令
考研·职场和发展·计算机外设
fakerth1 天前
【OpenHarmony】startup_init 模块
操作系统·openharmony
如君愿1 天前
考研复习 Day 39 | 密码学--第四章 分组密码(上)
考研·密码学
大熊猫侯佩1 天前
升级到 macOS26.5 后看视频会自动息屏的解决
macos·操作系统
daanpdf2 天前
考研英语一历年真题及答案解析PDF(2010-2026)百度网盘
考研·pdf
05候补工程师2 天前
【408狂飙·数据结构】核心考点深度复盘:数组地址计算、特殊矩阵压缩存储与树的五大性质解题直觉
数据结构·笔记·线性代数·考研·算法·矩阵
daanpdf2 天前
历年考研数学一、数学二、数学三真题试卷及答案PDF
考研·pdf
如君愿3 天前
考研复习 Day 38 | 密码学--第三章 古典密码
考研·密码学·课后习题
sulikey3 天前
个人Linux操作系统学习笔记2 - gcc与库的理解
linux·笔记·学习·操作系统·gcc·
蒟蒻的贤3 天前
编译原理里的冲突到底是什么?
考研·算法