OS存储器管理(一)
存储器的层次:
分为寄存器、主存(内存)和 辅存(外存)三个层次。
主存:高速缓冲存储器、主存储器、磁盘缓冲存储器,
主存又称为可执行存储器;
辅存:固定磁盘存储器、可移动的外部存储器;
其可长期保存数据,但不能被处理器直接访问。
此处针对的是在OS层面上对主存(内存)的管理。
内(主)存储器管理的主要功能:① 逻辑地址到物理地址的转换 ② 内存(主存)空间的分配与回收 ③ 内存信息(数据)的共享与保护 ④ 内存的逻辑扩充(虚拟存储器的实现)
②固定分区分配
③可变(动态)分区分配
④可重定位分区分配
①单分区分配方法(Single-partition allocation)
重定位寄存器方案用来保护用户进程之间,用户进程与操作系统之间不会相互修改代码与数据
重定位寄存器包含了最小的物理地址;界限寄存器包含了逻辑地址的范围,每个逻辑地址必须小于界限寄存器
分区号 |
分区大小 |
起始地址 |
状态 |
1 |
12k |
20k |
已分配 |
2 |
32k |
32k |
已分配 |
3 |
64k |
64k |
已分配 |
4 |
128k |
128k |
空闲 |
5 |
分配:查分区说明表,找到一个足够大的空闲分区分配之;
回收:将回收分区对应的分区说明表状态改为“空闲”。
优点:内存可同时装入多道作业代码,算法实现简单;
缺点:存在浪费(分区一次性全部分配出去);会产生内部碎片。
③动态存储分配问题
算法思想:事先不划分分区,待作业需要分配内存时,再按需分配划分分区(分区的大小及个数不固定)。
数据结构:
空闲分区表或空闲分区链表 ----> 记录空闲分区的大小、地址等
空闲分区链表状况:
分配:查空闲分区链表,找到第一个足够大的分区,将其一分为二分配之;
分配策略(算法):首次适应算法,循环首次适应算法,最佳适应算法,最差适应算法
回收:先将回收分区与相邻空闲分区合并再修改空闲分区链表。
回收算法:前邻接合并,后邻接合并,前、后邻接合并,不邻接处理
* 优、缺点
按需分配,可解决浪费问题;
分配算法复杂,会产生外部碎片;
邻接合并系统开销大。
* 碎片问题
碎片:可变分区分配过程中形成的若干个非常小的无法再利用的小分区,形成外部碎片
碎片分为外部碎片和内部碎片。
处理碎片的方法:
1.紧缩(compaction,拼接):用来降低外部碎片移动内存内容,以便所有空闲空间合并成一整块。
如果重定位是动态的,是在运行时进行的,那么就能采用紧缩
2.另一种可能解决外部碎片问题的方法是允许物理地址空间为非连续,这样只要有物理内存就可为进程分配:分页或分段
④可重定位分区分配
* 算法思想
在可变分区分配算法的基础上,采用动态重定位方式装入程序(数据)。当无足够大的分区供分配时,若总的空闲存储容量够用,则将各分区中的内容向内存一端移动(紧凑),使另一端形成一个大的空闲分区,然后再分配。
例:前例若要为作业10分配120k的存储空间,因无足够大分区(总空闲容量290k),则先进行合并处理:
内存的离散分配方式见下篇。
转载于:https://www.cnblogs.com/z941030/p/5154483.html
OS存储器管理(一)相关推荐
- 操作系统(4)存储器管理
一.存储器的层次结构 对于通用计算机而言,存储层次至少应具有三级:最高层为 CPU 寄存器,中间为主存,最底层是辅存. 在较高档的计算机中,还可以根据具体的功能分工细划为寄存器.高速缓存.主存储器.磁 ...
- ======第四章存储器管理======
目录 4.1 存储器的层次结构 4.1.1 多级存储器结构 4.1.2 主存储器与寄存器 4.1.3 高速缓存和磁盘缓存 4.2 程序的装入和链接 4.2.1 程序的装入 4.2.2 程序的链接 4. ...
- 计算机操作系统——(第四章) 存储器管理/内存管理
目录 Previously on OS... 存储器的层次结构 操作系统的内存管理 程序运行的步骤 地址绑定 Previously on Experiment 内核的编译 gdb调试[1] Stopp ...
- 操作系统——存储器管理
操作系统--存储器管理 程序的装入和链接 用户程序想要在系统中运行,必须先将他装入内存,然后再将其转变为一个可执行的程序,步骤: 编译-->链接-->装入 程序的装入: 绝对装入方式:(只 ...
- 【第五章 | 存储器管理】《操作系统 慕课版》课后答案 + 复习
文章目录 [第五章]存储器管理 | 本章概念 1.存储器的层次结构 2.程序的装入和链接 3.对换 4.覆盖 5.连续分配存储管理方式相关概念 6.分页存储管理方式相关概念 7.分段存储管理方式相关概 ...
- 操作系统—存储器管理
存储器管理 1 存储器的层次结构 计算机执行时,几乎每条指令都涉及对存储器的访问.因此要求对存储器的访问速度跟得上处理机的运行速度.考虑到价格和现实因素,如今的计算机大都采用了多层结构的存储器系统 ...
- 操作系统——存储器管理(连续分配存储管理方式)
文章目录 一.单一连续分配 二.固定分区分配 1. 划分分区的方法 2. 内存分配 三.动态分区分配 1. 动态分区分配中的数据结构 2. 动态分区分配算法 3. 分区分配操作 四.基于顺序搜索的动态 ...
- 操作系统之存储器管理方式
存储器管理 文章目录 存储器管理 存储器的层次结构 存储器设计为层次结构的原因 常见存储器层次划分 程序的装入和链接 程序的装入 绝对装入方式 可重定位装入方式(也称为静态重定位) 动态运行时装入 程 ...
- 操作系统12————存储器管理之对换
操作系统12----存储器管理之对换 一.目录 文章目录 操作系统12----存储器管理之对换 一.目录 二.概述 三.多道程序环境下的对换技术 1.对换的引入 2.对换的类型 四.对换空间的管理 1 ...
最新文章
- 十六届智能车全向组硬件开源 | 上海海事大学全向行进组
- matlab未定义函数lp,matlab未定义函数或变量(附上源代码)
- nodemailer 附件_如何使用Nodemailer发送带有附件的电子邮件。 Node.js
- FragmentTabHost切换Fragment时保存状态,避免切换Fragment走onCreateView和onDestroyView方法;...
- 视频教程-excel VBA编程番外篇(字典+正则表达式+FSO)-Office/WPS
- 计算机的启动盘,做win7启动盘制作方法
- 大学数学新生入门学习数学方法导引 by Ph.D.王小龙
- linux跟单片机的区别,树莓派和单片机的区别
- Android 图片虚化
- 码栈开发手册(四)---编码方式开发(其他功能函数)
- 快速应对面试--分门别类--6.链表
- 深拷⻉浅拷⻉的区别?如何实现一个深拷贝?
- JDE910笔记2--OMW项目建立及简单使用[转]
- 2021年N1叉车司机免费试题及N1叉车司机考试总结
- DCC - Photoshop - Nvidia NormalMapFilter - 法线生成工具 - 顺便测试 Unity URP 12.1 中的 Decal System
- 动物识别Python
- 智能蜂箱管理系统——物联网工程专业软硬结合课设 计算机专业课程设计 大作业 项目(安卓,Springboot后端,网页数据展示前端,ESP8266传输数据,MQTT服务器)
- Java Agent入门教程
- 友盟+高吞吐、极速高并发智能推送服务,赋能值得买科技的精准化用户运营
- CISSP 第五章 物理和环境安全