Java教程

OS学习笔记-虚拟存储器

本文主要是介绍OS学习笔记-虚拟存储器,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

5.1 虚拟存储器

引言

非虚拟存储器有2种情况,
1⃣️作业很大,超过内存容量,作业不能全部装入内存,该作业无法正常运行
2⃣️大量的作业需要运行,需要的内存超过了内存容量,只能让少数作业调入内存,其他作业在外存上等待

常规存储器管理方式的特征

1⃣️一次性,作业必须一次性全部调入内存中才能正常运行,导致大作业无法在小内存中运行
2⃣️ 驻留性,作业被装入内存后,整个作业一直在内存上,任何部分不会被换出,但是有时候进程会有IO阻塞,但是他们仍然占用宝贵的内存

局部性原理

较短时间内,程序的执行局限于某个部分,他所访问的存储空间也局限于某个区域。
论点:
1⃣️程序的执行,除了少数的转移和过程调用指令(goto和调用函数)
,大多数情况下是顺序执行
2⃣️过程调用将会使程序的执行由一部分转移到另外一部分。
3⃣️程序中包括循环结构,将被多次执行
4⃣️包含对数据结构的处理,对数组进行操作,局限于很小的范围
局限性的两个方面

时间局限性

由于循环操作,所以某条指令被执行,不久之后可能再次执行
某数据被访问,不久后可能再次被访问

空间局限性

程序访问了某个单元,不久后,其附近的存储单元也可能被访问
典型情况是程序的顺序执行

虚拟存储器的基本工作情况

仅将少数需要运行的页面先装入内存,如果他所访问的页面
1⃣️已经存在,则继续执行
2⃣️不存在,则发出缺页中断,OS利用请求调页功能调入内存,如果内存已满,则发生页(段)的置换,把暂时不用的页调至盘上,再把访问的页调入内存,使得并发继续。

虚拟存储器的定义和特征

具有请求调页和置换功能,能从逻辑上扩充内存的一种存储器系统。
逻辑容量 = 内存容量 + 外存容量,运行速度约等于内存速度

最大容量 由CPU地址长度决定
实际容量由内外存容量之和决定

虚拟存储器的特征
1⃣️多次性,允许作业被分成多次调入内存*,虚拟存储器的最重要特征,逻辑上扩容*

2⃣️对换性 允许作业吧暂时不用的程序和数据放到外存,需要时再调入,
3⃣️虚拟性,逻辑上扩充内存容量,提高内存利用率,提高并发度,系统吞吐量

虚拟性以多次性和对换性为基础

这篇关于OS学习笔记-虚拟存储器的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!