| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> 操作系统丨(四)存储管理 -> 正文阅读 |
|
[系统运维]操作系统丨(四)存储管理 |
1. 内存分配1.1 单一连续分配
特点:
缺点:
1.2 固定分区分配
1.3 动态分区分配
1.3.1 数据结构空闲分区表空闲分区链1.3.2 分区算法[1] 首次适应算法 FF
[2] 循环首次适应算法
[3] 最佳适应算法 BF
[4] 最坏适应算法
1.4 可重定位分区分配拼接技术
可重定位分区分配技术
2. 内存回收[1] 回收分区r上面邻接一个空闲分区 [2] 回收分区r下面邻接一个空闲分区 [3] 回收分区r上面、下面各邻接一个空闲分区 [4] 回收分区r不与任何空闲分区相邻
3. 分页存储管理3.1 思想
3.2 解析逻辑地址A,页面大小为L,则:
如:A = 3000, L = 2K 则:P = 1, W = 952 3.3 页表及存储块表3.4 基本地址变换机构页表寄存器
程序未执行时,页表的起始地址和长度存放在PCB中; 当程序执行时,才将页表起始地址和长度存放在页表寄存器中。 地址变换过程3.5 具有快表的地址变换机构3.6 多级页表和反置页表为了什么页表太大,连续空间存放不现实。采用多级页表和反置页表:
多级页表[1] 页表结构 [2] 地址变换 反向页表
4. 分段存储管理
分段与分页的区别
5. 段页式存储管理
5.1 思想先段后页
5.2 结构5.3 地址变换6. 虚拟内存6.1 局部性原理
6.2 特性
6.3 物质基础
6.4 实现方案
6.5 请求分页存储管理6.5.1 实现思想
6.5.2 支持机构
[页表]
[缺页中断和地址变换]6.5.3 页面分配和置换策略进程运行所需的最少物理块数
页面分配策略
页面置换策略
[1] 固定分配局部置换
[2] 可变分配全局置换
[3] 可变分配局部置换
6.6.4 物理块的分配算法[1] 平均分配算法[2] 按比例分配算法
[3] 按优先级分配算法6.6.5 页面置换算法[最佳置换算法 OPT]
[先进先出置换算法 FIFO]
Belady 现象
原因:
[最近最久未使用置换算法 LRU]
特点:
2 种方法实现 LRU 算法 ① 链表法
当分配给进程的物理块未用完时,则将进程装入内存的页面按先后顺序构成一个链表 当进程访问的页面在内存时,将页面从链表中移出放到表尾 当进程访问的页面不在内存时,则发生缺页中断,将表头页面置换 ② 计数器法
利用 8 位寄存器记录 8 个页面访问情况如下: 从上表可以看出页面 7 是最近最久未使用的页面。 [第二次机会算法]该算计将 FIFO 算法与页表中的”引用位“结合起来使用。 当选择页面置换时,先检查 FIFO 页面队列中的队首页面(这是最早进入主存的页面)
[简单时钟算法]△ 上述算法的出队入队很浪费,所以这个算法弄成循环列表,不需要出入队,就是移动指针而已。注意:简单时钟算法在遇到1的时候,不需要把它移动到最后。 将页面排成一个循环队列,类似于时钟表面,并使用一个置换指针。 当发生缺页时,检查指针指向的页面,
最后指针停留在被置换页的下一页上。 如果不需要置换,则指针位置不变。 [改进的时钟算法]△ 简单时钟算法中淘汰的时候只考虑了页面的访问情况,没有考虑被淘汰页面的修改情况,因为淘汰一个修改过的页面还需要写磁盘,开销很大。所以改变的时钟算法就顾及到这两个方面了。 设 R 为页面的访问位,U 为页面的修改位,则有四种情况:
特点:减少了磁盘I/O次数,但算法本身开销增加。 [最不常用算法]
[页面缓冲算法]
当需要访问一个页面时,若该页在上述两个队列中,则只要将该页面从队列中移出,否则用空闲链的第一个物理块装入该页。当修改链中的页面数达到一定值时,再将它们一次写回磁盘,然后将它们加入空闲页面链表中。 7. Linux 存储管理7.1 Buddy 内存管理算法7.2 Linux 交换空间概念
查看交换空间 —— top作用
交换空间与虚拟内存 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/28 3:46:20- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |