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

  • 一次性及驻留性在程序运行时是否是必须的?
    NO。程序运行有局部性。
    2)局部性原理
    程序在执行时将呈现出局部性规律:
    在一较短的时间内
    程序的执行仅局限于某个部分;
    相应地,所访问的存储空间也局限于某个区域。

程序执行的特点:
多数情况下仍是顺序执行。
少部分的转移和过程调用指令会使程序执行由一部分区域转至另一部分区域(但研究表明调用深度多数情况下不超过5)
许多由少数指令构成的循环结构会多次执行。
对许多数据结构的处理(如数组)往往局限于很小的范围内。

所有上述情况都表现出程序执行的局部性:
时间局部性(temporal locality)
被引用过一次的存储器位置很可能在不远的将来再被多次引用。
空间局部性(spatial locality)
如果一个存储器位置被引用了一次,那么程序很可能在不远的将来引用附近的一个存储器位置。

关于局部性的讨论
有良好局部性的程序运行速度更快;
计算机系统的各个层次都利用了局部性:
Cache;
主存:缓存磁盘文件系统最近使用的磁盘块;
Web浏览器将最近被引用的文档放在本地磁盘上;
Web服务器将最近被请求的文档放在前端磁盘高速缓存中。

重复引用同一个变量的程序有良好的时间局部性;
对于使用数组等数据结构的程序,a[1],a[2]……数据的使用可看做具有步长k=1的引用模式,步长越小,空间局部性越好;数组按行访问和按列访问其局部性不同。

对于取指令来说,循环有好的时间和空间局部性;

循环体越小,循环迭代次数越多,局部性越好。

基于局部性原理
程序运行前,不需全部装入内存(打破一次性)
仅装入当前要运行的部分页面或段即可运行,其余部分暂留在外存上。
缺页/段的情况:要访问的页(段) 尚未调入内存。程序应利用OS所提供的请求调页(段)功能,将它们调入内存,使程序继续执行。
调入需要的页/段时,如果内存已满,无法再装入新页(段),通过置换功能将内存中暂时不用的页(段)调至外存,腾出足够的内存空间。(不总驻留)

交换技术与虚存使用的调入调出技术有何相同和不同之处?

  • 主要相同点是都要在内存与外存之间交换信息;
  • 主要区别在于交换技术换出换进一般是整个进程(proc结构和共享正文段除外),因此一个进程的大小受物理存储器的限制;
  • 而虚存中使用的调入调出技术在内存与外存之间来回传递的是存储页或存储段,而不是整个进程,从而使得进程映射具有了更大的灵活性,且允许进程的大小比可用的物理存储空间大的多 。

3)虚拟存储器的定义
所谓“虚拟存储器”,是指具有请求调入功能和置换功能,能从逻辑上对内存容量加以扩充的一种存储器系统。
虚拟存储管理下
内存逻辑容量由内存容量和外存容量之和所决定
运行速度接近于内存速度
每位的成本却接近于外存。

4)虚拟存储器的实现
虚拟存储管理:
允许将一个作业分多次调入内存。
若采用连续分配方式,需申请足够空间,再分多次装入,造成内存资源浪费,并不能从逻辑上扩大内存容量。
虚拟的实现建立在离散分配存储管理基础上
方式:请求分页/请求分段系统
细节:分页/段机构、中断机构、地址变换机构、软件支持

5)虚拟存储器的特征
离散分配方式是基础
多次性:一个作业被分成多次调入内存运行
对换性:允许在作业的运行过程中进行换进、换出。(进程整体对换不算虚拟)
最终体现虚拟性:能够从逻辑上扩充内存容量,使用户所看到的内存容量远大于实际内存容量。





3.页面置换算法




计算机操作系统感悟随笔--虚拟存储管理相关推荐

  1. 计算机操作系统感悟随笔--声明

    声明 此次博客用于学习计算机操作系统一课的感悟随笔. 内容涉及笔记,实例题讨论.

  2. 计算机操作系统感悟随笔--引论

    OS引论笔记 1.操作系统的目标 方便性.有效性.可扩充性和开放性 2. 使用计算机三种方式 图形窗口方式.命令.系统调用 3.操作系统作用 ①OS作为用户与计算机硬件系统之间的接口 ②OS作为计算机 ...

  3. 计算机操作系统感悟随笔--内存空间管理

    1.单一连续分配 内存分为系统区和用户区两部分: 系统区:仅提供给OS使用,通常放在内存低址部分 用户区:除系统区以外的全部内存空间,提供给用户使用. 最简单的一种存储管理方式,只能用于单用户.单任务 ...

  4. 计算机操作系统感悟随笔--进程通信

    一.进程通信是指进程之间的信息交换 1.低级通信--进程之间的互斥和同步 信号量机制是有效的同步工具,但作为通信工具缺点如下: (1)效率低(通信量少) (2)通信对用户不透明(程序员实现,操作系统只 ...

  5. 计算机操作系统感悟随笔--文件和文件系统

    一.文件和文件系统 文件管理:把所管理的程序和数据组织成一系列的文件,并能进行合理的存储.使用等操作. 1 )基本概念 数据项:描述对象某种属性的字符集:是数据组织中可以命名的最小逻辑数据单位. 记录 ...

  6. 计算机操作系统感悟随笔--设备管理 IO

    I/O设备 I/O设备可以分为存储设备或输入输出设备:块设备或字符设备:低速中速高速设备. I/O设备不是直接和cpu进行通信,而是通过设备控制器和cpu进行间接通信,cpu通过设备控制器去控制一个或 ...

  7. 计算机操作系统感悟随笔--实例思考

    关于C++多线程实例 引用自https://www.cnblogs.com/codingmengmeng/p/5913068.html的C++多线程入门实例 首先是最初实例代码: #include & ...

  8. 计算机操作系统感悟随笔--进程描述与控制

    进程描述与控制 1.前趋图 指一个有向无循环图,用于描述进程之间执行的先后顺序 2.程序顺序执行时的特征 (1) 顺序性 处理机的操作严格按程序规定顺序执行 (2) 封闭性 程序一旦开始执行,其计算结 ...

  9. 计算机操作系统感悟随笔--程序编译连接

    高速缓存 一种速度比内存快的存储设备,一般同寄存器一样集成在CPU中. 存放内存的部分拷贝,把常用的数据放这里可以提高速度. 将短时间内经常访问的部分数据从内存放到高速缓存中,减少CPU访问内存的时间 ...

最新文章

  1. eclipse 源码设置UTF-8 (eclipse可以为JSP HTML 等各种文件不同编码格式设置) 在windows - preference- general-workspace
  2. Facebook表示将不会默认开启人脸识别功能,被罚怕了?
  3. 欢迎使用CSDN-markdown编辑器!!!
  4. NPOI 教程 - 3.2 打印相关设置
  5. matlab没有pso工具箱,MATLAB-PSO工具箱
  6. 【LeetCode】【HOT】49. 字母异位词分组(递归)
  7. lz0-007 读书笔记03
  8. es6基础(4)--字符串扩展
  9. mysql自学完整_MySQL自学篇_MySQL
  10. 使用idea导入远程git版本库项目
  11. Python爬虫【一】爬取移动版“微博辟谣”账号内容(API接口)
  12. 推荐一款限时下载应用(听心字典)
  13. 软测—直播教学 黑盒测试
  14. JAVA实现雪花飘落
  15. Ubuntu rEFInd 引导双系统界面美化
  16. 数据结构和算法:圣诞老人分礼物
  17. android pppoe 源码,android移植pppoe拨号上网的全过程
  18. 新书推荐:最强 iOS 安全黑宝书
  19. php cms建站,Phpcms v9 建站教程-网站基本设置
  20. Boost(2):boost.python库介绍及简单示例

热门文章

  1. 高新技术企业有什么好处
  2. (11)Are you a giver or a taker?
  3. Android 设置apk之间不覆盖安装,7.0版本问题
  4. 计算机网络——MAC地址
  5. 基于Multisim的八路抢答器的设计与仿真-设计资料
  6. 不重复订单号生成的方法
  7. Java基础教程3-Java中注释写法
  8. 青龙面板搭建+QQ机器人,安装中遇到的各种问题的处理
  9. 在git上建立自己的博客
  10. css中position(absolute)与margin同时使用的情况