本文主要是介绍计算机操作系统(慕课版)第五章学习笔记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
第五章 存储器管理
1.1 存储器的层次结构
- 存储器的层次结构
- 速度由快到慢
- 容量由小到大
- 寄存器和主存掉电后存储的信息不再存在
- 辅存的信息长期保存
1.2
物理地址(绝对地址)
物理内存的地址,内存以字节为单位编址
物理地址空间:所有物理地址的集合
逻辑地址(虚拟地址、相对地址)
由CPU产生的地址,即程序编译后使用的相对于0字节的地址
逻辑地址空间:由程序所生成的所有逻辑地址的集合
1.3 可重定位装入方式(静态重定位)
- 一次性实现逻辑地址到物理地址的转换,以后不再转换。
- 重定位:逻辑地址转换为物理地址的过程,也称为地址变换
- 在装入时,完成重定位
- 需硬件支持
- 缺点:一个程序通常需要占用连续的内存空间,程序装入内存后不能移动。不易实现共享。
重定位:把作业地址空间中使用的逻辑地址变换成内存空间中的物理地址的过程。又称地址映射。
物理地址=逻辑地址+程序在内存的起始地址
2.1 连续分配存储管理方式
连续分配方式: 指为一个用户程序分配一片连续的内存空间。
单一连续分配,固定分区分配 ,动态分区分配,动态可重定位分区分配
2.2 单一连续分配
分配方式:单道程序环境下,仅装有一道用户程序,即整个内存的用户空间由该程序独占。
- 优点:管理简单。
- 缺点:不支持多道;内存空间浪费大,各类资源的利用率也不高;
存储管理方法:通过增加界限寄存器,划分os区与用户区。
采用静态链接、静态重定位方式装入。
作业一旦进入内存,就要等待它运行结束后才能释放内存。
2.3 分区分配方式存储管理
将内存分成若干个分区(大小相等/不相等),除OS占一区外,其余的每一个分区容纳一个用户程序。
按分区的变化情况,可将分区存储管理进一步分为:
- 固定分区
- 动态分区
(1)固定分区分配 - 实现原理:
- 预先把可分配的主存储器空间分割成若干个连续区域,称为一个分区。
- 分区的大小可以相等,也可以不等,但分区大小固定不变,每个分区装一个且只能装一个作业。
- 数据结构:系统需建立一张分区说明表或使用表
- 主要特点:管理简单,但因作业的大小并不一定与某个分区大小相等,从而使一部分存储空间被浪费。所以主存的利用率不高。
例如:
在某系统中,采用固定分区分配管理方式,内存分区(单位字节)情况如图所示,现有大小为1K、9K、33K、121K的多个作业要求进入内存,试画出它们进入内存后的空间分配情况,并说明主存浪费多大?
解答:
主存浪费空间=(8-1)+(32-9)+(120-33)+(331-121)=7+23+87+210=327(k)
(2)动态分区分配方式
- 又称为可变分区分配,根据进程的实际需要,动态地为之分配内存空间。
- 实现原理:
- 在作业进入内存时,根据作业的大小动态地建立分区,并使分区的大小正好适应作业的需要。
- 因此系统中分区的大小是可变的,分区的数目也是可变的。
- 数据结构:空闲分区表、空闲分区链
- 分配算法:顺序式分配算法、索引式分配算法
3.1 分配算法
这篇关于计算机操作系统(慕课版)第五章学习笔记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!