虚拟内存技术的基本概念(局部性原理,特征,实现)

1.传统存储管理方式的特征、缺点

很多暂时用不到的数据也会长期占用内存,导致内存利用率不高。

1.一次性:

作业必须一次性全部装入内存后才能开始运行。

这会造成两个问题:

①作业很大时,不能全部装入内存,导致大作业无法运行 ;

②当大量作业要求运行时,由于内存无法容纳所有作业,因此只有少量作业能运行,导致多道程序并发度下降

2.驻留性:

一旦作业被装入内存,就会一直驻留在内存 中,直至作业运行结束。

事实上,在一个时间段内,只需要访问作业的一小部分数据即可正常运行,这就导致了内存中会驻留大量的、暂时用不到的数据,浪费了宝贵的内存资源。

2.局部性原理

1.时间局部性

如果执行了程序中的某条指令,那么不久后这条指令很有可能再次执行;

如果某个数据被访问过,不久之后该数据很可能再次被访问。(因为程序中存在大量的循环)

2.空间局部性

一旦程序访问了某个存储单元,在不久之后,其附近的存储单元也很有可能被访问。

(因为很多数据在内存中都是连续存放的,并且程序的指令也是顺序地在内存中存放的)

3.高速缓存技术

使用频繁的数据放到更高速的存储器中。

3.虚拟内存的定义和特征

1.定义

  • 基于局部性原理,在程序装入时,可以将程序中很快会用到的部分装入内存,暂时用不到的部分留在外存,就可以让程序开始执行。
  • 在程序执行过程中,当所访问的信息不在内存时,由操作系统负责将所需信息从外存调入内存,然后继续执行程序。
  • 若内存空间不够,由操作系统负责将内存中暂时用不到的信息换出到外存。
    在操作系统的管理下,在用户看来似乎有一个比实际内存大得多的内存,这就是虚拟内存

2.特征

  • 多次性:无需在作业运行时一次性全部装入内存,而是允许被分成多次调入内存。
  • 对换性:在作业运行时无需一直常驻内存,而是允许在作业运行过程中,将作业换入、换出。
  • 虚拟性:从逻辑上扩充了内存的容量,使用户看到的内存容量,远大于实际的容量。

4.如何实现虚拟内存技术

虚拟内存技术,允许一个作业分多次调入内存。

如果采用连续分配方式,会不方便实现。

因此,虚拟内存的实现需要建立在离散分配的内存管理方式基础上。

1.与传统技术的区别

  • 在程序执行过程中,当所访问的信息不在内存时,由操作系统负责将所需信息从外存调入内存,然后继续执行程序。(操作系统要提供请求调页 (或请求调段)功能)
  • 若内存空间不够,由操作系统负责将内存中暂时用不到的信息换出到外存。(操作系统要提供页面置换 (或段置换)的功能)

2.实现

虚拟技术与传统方式相同,对应三种存储管理方式:

  • 请求分页存储管理
  • 请求分段存储管理
  • 请求段页式存储管理
相关推荐
石像鬼₧魂石9 分钟前
内网渗透靶场实操清单(基于 Vulhub+Metasploitable 2)
linux·windows·学习·ubuntu
Danileaf_Guo38 分钟前
256台H100服务器算力中心的带外管理网络建设方案
运维·服务器
橘子真甜~1 小时前
C/C++ Linux网络编程15 - 网络层IP协议
linux·网络·c++·网络协议·tcp/ip·计算机网络·网络层
拾贰_C2 小时前
【Linux | Windows | Terminal Command】 Linux---grep | Windows--- findstr
linux·运维·服务器
阿华hhh3 小时前
Linux系统编程(标准io)
linux·开发语言·c++
虹科网络安全3 小时前
艾体宝洞察 | 利用“隐形字符”的钓鱼邮件:传统防御为何失效,AI安全意识培训如何补上最后一道防线
运维·网络·安全
石像鬼₧魂石4 小时前
Kali Linux 网络端口深度扫描
linux·运维·网络
alengan4 小时前
linux上面写python3日志服务器
linux·运维·服务器
yBmZlQzJ4 小时前
免费内网穿透-端口转发配置介绍
运维·经验分享·docker·容器·1024程序员节
JH30734 小时前
docker 新手入门:10分钟搞定基础使用
运维·docker·容器