存储管理

  • 操作系统将外存的文件调入到内存中,以便CPU调用,如果调用的内容不在内存中,则会产生缺页中断;
  • 产生缺页中断后,这事需要从外存调数据到内存中,然后CPU接着从断点继续调用内存中的数据;
  • 在外存调入内存的过程中,是超大的文件,需要对超大文件的一些内容切割之后分散放置到内存中;
  • 根据切割方式的不同,会有不同的存储和调用方式;

页式存储

  • 分页存储管理就是页式存储的过程;
  • 它会将文件和内存划分成相同大小的一些区域,这些区域称为:页或者块;
  • 把用户程序和内存中文件之间的映射关系用一个表来记录,这个表就是页表;
  • 页表中记录着用户程序中的页号,也叫做逻辑页号,用户程序的地址也叫做逻辑地址;
  • 页表中记录着内存中文件切割后分散存放的块号,也叫做物理块号(页帧号),在内存中的地址也叫做物理地址;
  • 根据用户程序中的逻辑地址查页表,从而得到内存中的物理地址;
  • 逻辑地址和物理地址之间转换关系:
    • 所有的地址划分成2个部分:页内的具体地址(页内地址,偏移量,相对位置),页外的页号编号(记录页内对应关系[记录在页表中](相对位置)的编号);
    • 逻辑地址 = 页号 + 页内地址;
    • 物理地址 = 百帧号(物理块号) + 页内地址;
    • 页内地址保存不变,变化的只有页内的对应关系(逻辑地址中是页号、物理地址中是百帧号(物理块号));
    • 完整的逻辑地址和物理地址可以用二进制、十六进制、十进制表示;

计算页内地址、页号、百帧号(物理块号)

  • 涉及页面大小的定义;
  • 页面大小转化为B,例如上图的4KB = 4096B = 2^12,那么页内地址的长度就是12位,上图中,二进制逻辑地址:10 1100 1101
    1110,从低位到高位12位就是页内地址,此外就是页号10,10转换成十进制就是2,所以在页表中查询对应的百帧号就是6,十进制6转换为二进制110,页内地址保持不变,所以通过二进制逻辑地址:10
    1100 1101 1110,和页内地址的长度12位,还有页表找到的物理地址就是:110 1100 1101 1110;

抖动现象
操作系统的抖动,又叫颠簸。颠簸是不作处理的计算机活动,通常是因为内存或其他资源耗尽或有限而无法完成所要执行的操作。当上述情况发生时,程序就会通过操作系统发出请求,操作系统就试图从其他程序中拿来所需的资源。

  • 当内存不足时,需要淘汰其他在内存中进程的资源;
  • 状态位记录进程是否在内存中,淘汰时无需考虑不在内存中的进程资源(不考虑状态位:0);
  • 其次,访问位记录着是否最近被访问过,优先考虑最近访问过的,最近未访问的优先淘汰;
  • 然后,修改位记录着内容最近是否被修改过,最近未修改过的先于修改过的被淘汰;
  • 不考虑状态位:0 ----> 先淘汰访问位:0 ----> 再考虑淘汰修改位:0;

段式存储

  • 页式存储从大小考虑文件在内存中,并没从需要切割的超大文件内容的逻辑连贯性去考虑划分;比如代码的连贯性;
  • 从超大文件内容的逻辑连贯性去考虑划分,在内存中的存储,就有了段式存储;
  • 按逻辑划分为不同大小的段,每段的起始位置就是段内偏移量;
  • 段表中存有段号(每个自然段的开始位置),段长(每个自然段的大小不同,段的长度),基址(每段在内存中存储的开始位置);

  • 逻辑地址:(段号,段内偏移量);
  • 通过段号查段表得到基址,基址+偏移量就是在内存中的地址;
  • 合法段地址就是要段号对应的内存地址中不溢出不能越界,该段的基址+偏移量没超过该段在内存存储的大小;
  • 非法段地址:逻辑地址到物理地址转换时地址越界;

段页式存储

  • 将段式存储管理和页式存储管理结合;

  • 页内地址长度固定大小(上图有8-0+1的长度,所以有2^9个页内地址);
  • 页号长度不固定(最多有:13-9+1的长度,所以有2^5个页号),大小不确定,大小不固定,可变长;
  • 段号长度不固定(最多有:16-14+1的长度,所以有2^3个段号),大小不确定,大小不固定,可变长;

操作系统---存储管理相关推荐

  1. 操作系统——存储管理:分区、分页、分段、请求式分页和虚拟内存

    操作系统--存储管理:分区.分页.分段.请求式分页和虚拟内存 1. 综述 突然把这么多概念弄到一起,让人有点儿困惑.自己的一些理解: 分区式管理:最简单直观的方式,在内存中分配一个区,将整个进程放入这 ...

  2. 2.3.1操作系统-存储管理:页式存储、逻辑地址、物理地址、物理地址逻辑地址之间的地址关系、页面大小与页内地址长度的关系、缺页中断、内存淘汰规则

    2.3.1操作系统-存储管理:页式存储.逻辑地址.物理地址.物理地址逻辑地址之间的地址关系.页面大小与页内地址长度的关系.缺页中断.内存淘汰规则 页式存储 逻辑地址.物理地址 如何判断物理地址和逻辑地 ...

  3. 操作系统存储管理实验课程设计报告

    操作系统报告 存储管理 姓名:郑兆涵 专业:计算机科学与技术(嵌入式方向) 一.设计目的.意义 本次实验针对:(1)存储管理实验,(2)主存储器空间的分配和回收实验,两个实验进行学习. (1)存储管理 ...

  4. 操作系统——存储管理

    文章目录 1.存储管理概述 1.1存储层次结构 1.2存储器管理的功能 1.2.1内存分配 1.2.2地址映射 1.2.3存储保护 1.2.4内存扩充 1.3地址重定位 1.3.1名字空间.地址空间和 ...

  5. 计算机操作系统--存储管理

    基本概念 1. 存储器的结构 存储器顾名思义,就是用来保存数据的东西.随着科技的进步,存储器正朝着高速度.大容量.小体积方向发展.一般情况下,存储器的结构有如下两类: 寄存器-主存-外存 寄存器-缓存 ...

  6. 计算机操作系统存储管理实验报告,《操作系统》存储管理实验报告

    <操作系统>存储管理实验报告 ____大学____学院实验报告课程名称: 计算机操作系统 实验名称: 存储管理实验 实验日期: 班级: 姓名: 学号: 仪器编号: XX 实验报告要求:1. ...

  7. 操作系统存储管理练习题

    **这是笔者在whut操作系统课程存储管理章节的练习题.** 1.假定某请求页式存储管理系统中,为一进程分配了内存物理块3块,考虑以下的页面引用串: 4.3.2.1.4.3.5.4.3.2.1.5 问 ...

  8. 请求页式存储管理中页面置换算法的模拟设计_操作系统-存储管理与文件管理-笔记...

    存储管理 一.页式存储 将各进程的虚拟空间划分成若干个长度相等的页,页式管理把内存空间按页的大小划分成片或者页面,然后把页式虚拟地址与内存地址建立一一对应页表,并用相应的硬件地址变换机构,来解决离散地 ...

  9. java 动态分区 链表_大二作业——操作系统实验——C语言用双向链表,模拟实现动态分区式存储管理...

    实验:动态分区式存储管理 实验内容: 编写程序模拟完成动态分区存储管理方式的内存分配和回收.实验具体包括:首先确定内存空闲分配表:然后采用最佳适应算法完成内存空间的分配和回收:最后编写主函数对所做工作 ...

最新文章

  1. Oracle Spatial构建自定义投影坐标系
  2. 替换软连接导致的问题
  3. 深入理解 Git 的实现原理
  4. Docker 部署应用、jar 工程 docker 方式部署
  5. 1.零基础Java基础教程9天入门
  6. HDU 1042 N!( 高精度乘法水 )
  7. sql执行遇到汉字会停止执行吗_(数据)产品经理应该学会的SQL优化和进阶技巧...
  8. “华为”云桌面终端CT3200+显示器、键盘和鼠标
  9. 冥王星P的编曲日志《时光的眼泪》
  10. SourceTree Push 代码报错:remote: Support for password authentication was removed on April 26, 2022....
  11. echarts图表给柱形图的每个柱子设置不同颜色(包括每个柱子设置渐变颜色)
  12. 【Linux集群教程】09 集群监控 - 监控简介和Cacti搭建
  13. 职场新人如何发公司内部邮件
  14. TP-Link家用路由器上网与防蹭网
  15. 你了解这么多万兆以太网规范吗?
  16. 《C程序设计快速进阶大学教程》第8章编程题
  17. SVPWM算法理解(二)——关于非零基本矢量幅值和线电压幅值的解释
  18. 计算机领域牛人顶会期刊论文实验室高校整理
  19. 教育叙事计算机学科,信息技术教师教育叙事
  20. Android 触摸事件(Touch)的传递机制

热门文章

  1. 计算机视觉中的多视图几何<Part0—基础知识:射影几何、变换和估计>(1)
  2. (C语言)学生管理系统
  3. 技术管理者对知识组织的认识
  4. HTML5期末大作业:个人网站设计——拾艺客个人设计工作室(6个页面) HTML+CSS+JavaScript...
  5. (¥1011)-(一千零一拾一元整)输出
  6. Linux创建用户和删除用户
  7. 实验二 CPU 部件实现之 ALU 和寄存器堆
  8. 加索引如何避免锁表?
  9. ERP系统有哪些品牌?哪个品牌值得推荐?
  10. 性能测试 - - 常见的性能测试指标