外存资源管理

外存空间划分
静态等长,2i, 称为一块(block),块是外存分配的基本单位,也是IO传输的基本单位。
如果需求不足一个完整块,会形成块内“零头”。由于外存空间很大,块内零头忽略。
外存空间分配
空闲块链(慢):所有空闲块连成一个链
空闲块表(UNIX):相连的空闲块记录在同一表项中

字位映像图:用1位表示一个块的状态

界地址
每进程占一组外存连续块;
每进程占二组外存连续块(双对界)。
页式
内存一页,外存一块。内存页与外存块长度相同。
段式
每段占外存若干连续块,进程的多个段之间在外存可以不连续。
段页式

内存一页,外存一块。内存页与外存块长度相同。段内多页所对应的外存块可以不连续,一个进程的多段可以分散在外存的不同区域中。

虚拟存储系统

虚拟存储
进程部分装入内存,部分(或全部)装入外存,运行时访问在外存部分动态调入,内存不够淘汰。

虚拟页式存储管理

进程运行前:
      部分(全部)装入外存,部分装入内存。
进程运行时:
   访问页不在内存,发生缺页中断,中断处理程序:
        找到访问页在外存的地址;
        在内存找一空闲页面;
              如没有,按淘汰算法淘汰一个;
             如需要,将淘汰页面写回外存,修改页表和总页表;
       读入所需页面(切换进程);
       重新启动中断指令。

内存页框分配策略(静态策略)

1. 平均分配:将内存中的所有物理页框等分给进入系统中的进程。如内存128页,进程25个,每个进程5个页框

2. 按进程长度比例分配:按程序长度的比例确定分配内存的物理页框数。

pi共si个页面;S=si;内存共m个页框
         分配给进程pi的物理页框数ai=(si/S)*m
例:内存物理页框62,系统2个进程,p1逻辑页面127,p2逻辑页面10,则p1分得57个物理页框,p2分得5个物理页框。

3. 按进程优先级比例分配:根据优先级别按比例分配内存物理页面。方法2中si表示进程pi的优先级。    
4. 按进程长度和优先级别比例分配:方法2和方法3的结合。此时,方法2中si为进程pi逻辑页面数与优先级之和。

以上4种方法都是静态的,静态策略没有反映:
  (1)程序结构;
  (2)程序在不同时刻的行为特性。

外存块的分配策略

1. 静态分配:
            外存保持进程的全部页面, 当某一外存页面被调入内
            存,所占用的外存页面并不释放:
            优点:速度快--淘汰时不必写回(未修改情况)
            缺点:外存浪费
    2. 动态分配
            外存仅保持进程不在内存的页面,当某一外存页面被调
            入内存,将释放所占用的外存页面:
            优点:节省外存
            缺点:速度慢--淘汰时必须写回

页面调入时机

1.  请调(demand paging)
         upon page fault, 发生缺页中断时调入。
         缺点:从缺页中断到所需页面被调入内存,期间对应的进
         程需要等待,将影响进程的推进速度。
    2.  预调(prepaging)
         before page fault, 将要访问时调入(根据程序顺序行为,
         不一定准)。预调可以节省因页故障而等待的时间。
         当访问预先未调入内存的页面时,会发生缺页中断,因此
         预调必须辅以请调。

置换算法(replacement algorithm)

最佳淘汰算法(OPT--optimal):淘汰以后不再需要的或者在最长时间以后才会用到的页面。

先进先出(FIFO):淘汰最先调入内存的页面。
         依据: 先进入的可能已经使用完毕。
         实现:将所有页面按照进入内存的次序排成一个队列,当一个页面由外存调入内存时排入队尾,当需要淘汰时取队头页面。

使用过最久的先淘汰(LRU)
         淘汰最近一次访问时间距离当前时间间隔最长的页面。stack
      当一页面被访问时,如在栈中,取出压到栈顶;否则直接压入栈顶,满时淘汰栈底。
最近不用的先淘汰(not used recently,NUR):淘汰最近一段时间未用过的页面。
在实现时,为每一个页面增加两个硬件位,分别为
①引用位=0,此页未被访问过;
②引用位=1,此页曾被访问过;
③修改位=0,此页未被修改过;
④修改位=1,此页曾被修改过。

一个页面由外存调入内存时,其引用位和修改位均为0.当对某页面执行写操作时,其引用位和修改位均为1;当对某页执行读操作时,其引用位为1;每隔固定时间将所有引用位清零。

最不经常使用的先淘汰(LFU):  淘汰使用次数最少的。

依据: 活跃访问页面应有较大的访问次数.

最经常使用的先淘汰(MFU)

淘汰使用次数最多的。

二次机会:淘汰装入最久且最近未被访问的页面。

实现时:采用拉链数据结构。

时钟算法:将页面组织成环形,有一个指针指向当前位置。每次需要淘汰页面时,从指针所指的页面开始检查。如果当前页面的访问位为0,即从上次检测到目前,该页没有访问过,则将该页替换。如果当前页面的访问位为1,则将其清0,并顺时针移动指针到下一个位置。重复上述步骤直至找到一个访问位为0的页面。

考虑修改标志m
r=0, m=0:最佳
r=0, m=1:次佳,淘汰前回写
r=1, m=0:再次
r=1, m=1:最后,淘汰前写回

改进时钟算法:

步骤1:
由指针当前位置开始扫描,选择最佳淘汰页面,不改变引用位,将第一个遇到的r=0且m=0的页面作为淘汰页面;
步骤2:
如步骤1失败,再次从原位置开始,找r=0且m=1的页面,将第一个满足上述要求的页面作为淘汰页面,同时将扫描过页面的r位清0;
步骤3:
若步骤2失败,指针再次回到原位置,重新执行步骤1。若还失败再次执行步骤2,此时定能找到。

颠簸(thrashing)

页面在内存与外存之间频繁换入换出。
    原因: (1) 分给进程物理页架过少;
                (2) 淘汰算法不合理;
                (3) 程序结构不好。
    处理:(1) 增加分给进程物理页架数;
    (2) 改进淘汰算法;
    (3) 改善程序结构。
在某些虚拟页式存储管理系统中,内存中总保持一个空闲的物理页框,这样做有什么好处?
       答:在内存没有空闲页框的情况下,需要按照置换算法淘汰一个内存页框,然后读入所缺页面,缺页进程一般需要 等待两次I/O传输。

若内存总保持一个空闲页框,当发生页故障时,所缺页面可以被立即调入内存,缺页进程只需等待一次I/O传输时间。读入后立即淘汰一个内存页面,此时可能也需执行一次I/O传输,但对缺页进程来说不需等待,因而提高了响应速度。

工作集模型:进程在一段时间内所访问页面的集合。

与时间和窗口尺寸有关

页故障率反馈模型

PFFB(Page Fault Feed Back):动态调整页面的分配
页故障率高(达到某上界阈值):内存页框少,增加。
页故障率低(达到某下界阈值):内存页框多,减少。

虚拟段式存储系统

进程运行前,主程序段装入内存,其它段装入外存,访问段不再内存时,发生缺段中断。
若内存空间不够
紧凑:将内存中的所有空闲区合并
淘汰:将内存中的某段移至外存

段的动态连接

动态连接 vs. 静态连接
静态连接:运行前连接,由link完成(对程序库进行扫描,将整个程序涉及到的目标模块逐个调入内存并连接在一起);一个程序共有多少个段是确定的,因而link可以为每一个段分配一个段号;
动态连接:运行时连接,由OS完成.(在程序运行过程中需要某一个段时才将该段连接上);一个程序共有多少个段是不确定的,因而段名到段号的转换需要由操作系统来完成的。

动态连接与共享的矛盾

动态连接:修改连接字(代码)
段的共享:要求纯代码(pure code)
解决方法
共享代码分为“纯段”和“杂段”
纯段共享,
杂段私用。

虚拟段页式存储系统

一个段对应一个程序单位,是二维地址
方便存储共享和保护
可以实现段长度的动态变化,以及段间的动态连接

但对存储空间的分配和去配较复杂,可能形成碎片

中断处理:

连接中断  缺页中断   越界中断  (段号,段内页号)  越权中断

分页对用户是透明的,分段对用户是可见的

外存及虚拟存储器管理相关推荐

  1. 虚拟存储页面置换算法c语言,虚拟存储器管理页面置换算法模拟实验.doc

    虚拟存储器管理页面置换算法模拟实验 淮海工学院计算机工程学院 实验报告书 课程名:< 操作系统原理A > 题 目: 虚拟存储器管理 页面置换算法模拟实验 班 级: 软件*** 学 号: 2 ...

  2. 虚拟存储器管理c语言_内存管理;虚拟内存

    内存管理 内存管理 操作系统的内存管理主要是做什么? 操作系统的内存管理主要负责内存的分配与回收(malloc 函数:申请内存,free 函数:释放内存),另外地址转换也就是将逻辑地址转换成相应的物理 ...

  3. 虚拟存储器管理(C++实现)

    算法思想: 请求分页虚拟存储管理技术,是把作业地址空间的全部信息存放在磁盘上.当作业被选中运行时,先把作业的开始几页装入主存,并启动运行.为此,在为作业建立页表时,应说明哪些页已在主存,哪些页不在主存 ...

  4. java 最少使用(lru)置换算法_[内附完整源码和文档] 基于C#的可视化虚拟存储器管理(LUR算法)...

    一.目的要求 理解虚拟存储器概念,并掌握分页式存储管理地址转换和缺页中断的处理过程.用高级语言模拟请求分页式虚拟存储器的工作过程和页面置换算法LRU. 二.准备知识 2.1 分页式存储管理原理 在存储 ...

  5. MAC地址修改,注册表版

    无线网卡的mac地址在出厂时就被烧录好,在全球是唯一的代表着它的身份.但是我们可以通过修改它的mac地址来规避一些网络限制.一般笔记本有两个mac地址:有线和无线,其它的一般都是虚拟物理地址(描述中含 ...

  6. 【Computer Organization笔记22】虚拟存储器:段式存储,页式存储

    本次笔记内容: P43 计算机组成原理(43) P44 计算机组成原理(44) 我的计组笔记汇总:计算机组原理成笔记 视频地址:计算机组成原理 清华大学刘卫东 全58讲 国家精品课程 1080P 更完 ...

  7. 第5章 虚拟存储器

    虚拟存储器的基本概念 引入.实现.特征 分析常规存储器管理不足的原因: 1)常规存储器管理方式的特征 一次性:作业在运行前一次性地全部装入内存 驻留性:作业装入内存后,便一直驻留在内存中,直至作业运行 ...

  8. 操作系统—虚拟存储器

    虚拟存储器 1 虚拟存储器概述 1.1 常规存储管理方式的特征 (1)常规存储管理方式的特征 ① 一次性:作业在运行前需一次性地全部装入内存 ② 驻留性:作业装入内存后,便一直驻留内存,直至作业运行结 ...

  9. 操作系统——虚拟存储器

    文章目录 一.虚拟存储器概述 1. 常规存储管理方式的特征和局部性原理 2. 虚拟存储器的定义和特征 3. 虚拟存储器的实现方法 二.请求分页存储管理方式 1. 请求分页的硬件支持 2. 请求分页中的 ...

最新文章

  1. java循环练习:水仙花数
  2. 086_访问html元素
  3. crontab详解-如何让脚本自动定时运行,设置、启动 linux定时器
  4. 2020河南工业大学计算机考研科目,你知道2020年河南工业大学硕士研究生考研有哪些复试科目...
  5. leetcode690. 员工的重要性(bfs)
  6. 圆与平面的接触面积_视频:5.3RJ六年级上册圆的面积例题+习题讲解
  7. HOG + SVM 实现图片分类(python3)
  8. 设计模式——工厂方法
  9. python细胞自动机及微分计算
  10. c++头文件中的防卫式声明
  11. 2013-04《信息资源管理 02378》真卷解析,逐题解析+背诵技巧
  12. 概率机器人(Probability Robotics)笔记 Chapter 9: 占据栅格建图(Occupancy Grid Mapping)
  13. Git生成密钥(ssh)
  14. U盘盘符显示不出来了,纠结(已解决)
  15. php懒惰模式,PHP正则贪婪/懒惰匹配模式
  16. 作业十: 坦克对战游戏 AI 设计
  17. 用python和matplotlib画双坐标系曲线
  18. vue-PhotoSwipe插件填坑
  19. Windows Phone 使用FlurrySdk
  20. PB中读取地磅称量数据

热门文章

  1. 用Xftp和Xshell本地链接华为云主机
  2. PDF to Word Document Converter for Mac(PDF文档转换器)
  3. (附源码)计算机毕业设计SSM旅游足迹分享系统
  4. Docker部署mysql主从模式
  5. HTML 5 音频与视频标签
  6. COB,COF,COG区别
  7. 海尔智家罗马尼亚冰箱工厂将投产;长沙世茂希尔顿酒店今夏揭幕​;现代与LG新能源打造环保汽车电池 | 美通企业周刊...
  8. ant design vue做导入导出excel
  9. html语言加图片,html代码——给图片加边框代码
  10. react:制作新页面