首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >3.2.1虚拟内存的基本概念

3.2.1虚拟内存的基本概念

作者头像
week
发布2018-08-27 09:31:36
7540
发布2018-08-27 09:31:36
举报
文章被收录于专栏:用户画像用户画像
1、传统存储管理方式的特征

各种内存管理策略都是为了同时将多个进程保证在内存中以便允许多道程序设计。

它们都具有以下两个共同的特征:

1)一次性:作业必须一次性全部装入内存后,方能开始运行。这会导致两种情况发生:

①当作业很大,不能全部被装入内存时,将使该作业无法运行。

②当大量作业要求运行时,由于内存不足以容纳所有作业,只能使少数作业先运行,导致多道程序度的下降。

2)驻留性:作业被装入内存后,就一直驻留在内存中,其任何部分都不会被换出,直至作业运行结束,运行中的进程,会因等待I/O而被阻塞,可能处于长期等待状态。

由以上分析可知,很多程序运行中不用或暂时不用的程序(数据)占据了大量的内存空间,而一些需要运行的内存又无法装入运行,显然浪费了宝贵的内存资源。

2.局部性原理

要真正理解虚拟内存技术的思想,首先必须了解计算机中著名的局部性原理。著名的Bill Joy(SUN公司CEO)说过:”在研究所的时候,我经常开玩笑地说高速缓存是计算机科学中唯一重要的思想。事实上,高速缓存技术确实极大地影响了计算机系统的设计。”快表、页高速缓存以及虚拟内存技术从广义上讲,都是属于高速缓存技术。这个技术所依赖的原理就是局部性原理。局部性原理既适用于程序结构,也使用与数据结构(更远地将,Dijkstra著名的关于“goto语句有害”的论文也是出于对程序局部性原理的深刻认识和理解)。 局部性原理表现在以下两个方面: 1)时间局部性:如果程序中的某条指令一旦执行,不久以后该指令可能再次执行;如果某数据被访问过,不久以后该数据可能再次被访问。产生时间局部性的典型原因是由于在程序中存在着大量的循环操作。 2)空间局部性:一旦程序访问了某个存储单元,在不久之后,其附近的存储单元也将被访问,即程序在一段时间内所访问的地址,可能集中在一定的范围以内,这是因为指令通常是顺序存放,顺序执行的,数据也一般是以向量、数组、表等形式簇聚存储的。 时间局部性是通过将近来使用的指令和数据保存到高速缓存存储器中,并使用高速缓存的层级结构中实现。 空间局部性通常是使用较大的高速缓存,并将预存机制集中到高速缓存控制逻辑中实现。 虚拟内存技术实际上就是建立了“内存——外存”的两级存储器的结构,利用局部性原理实现高速缓存。

3.虚拟存储器的定义和特征

基于局部性原理,在程序装入时,可以将程序的一部分装入内存,而将其余部分留在外存,就可以启动程序执行。在程序执行过程中,当所访问的信息不在内存时,由操作系统将所需要的部分调入内存,然后继续执行程序。另一方面,操作系统将内存中暂时不使用的内容换出到外存上,从而腾出空间存放将要调入内存的信息。这样,系统好像为用户提供了一个比实际内存大得多的存储器,称为虚拟存储器。 之所以将其称为虚拟存储器,是因为这种存储器实际上并不存在,只是由于系统提供了部分装入、请求调入和置换功能后(对用户完全透明),给用户的感觉是好像在一个比实际物理内存大得多的存储器。虚拟存储器的大小由计算机的地址结构决定, 并非是内存和外存的简单相加。 虚拟存储器有三个主要特征: 1)多次性,是指无需在作业运行时一次性地全部装入内存,而是允许被分成多次调入内存运行。 2)对换性,是指无需在作业运行时一直常驻内存,而是允许在作业的运行过程中,进行换进和换出。 3)虚拟性,是指从逻辑上扩充内存的容量,使用户所看到的内存容量,远大于实际的内存容量。

4.虚拟内存技术的实现

虚拟内存中,允许将一个作业分多次调入内存。采用连续分配方式时,会使相当一部分内存空间都处于暂时或“永久”的空闲状态,造成内存资源的严重浪费,而且也无法从逻辑上扩大内存容量。因此,虚拟内存的实现需要建立在离散分配的内存管理方式的基础上。 虚拟内存的实现有以下三种方式: - 请求分页存储管理。 - 请求分段存储管理。 - 请求段页式存储管理。 不管哪种方式,都需要一定的硬件支持。一般需要的支持有以下几个方面: - 一定容量的内存和外存。 页表机制(或段表机制),作为主要的数据结构。 - 中断机构,当用户程序要访问的部分尚未调入内存,则产生中断。 - 地址变换机构,逻辑地址到物理地址的变换。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016年07月19日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、传统存储管理方式的特征
  • 2.局部性原理
  • 3.虚拟存储器的定义和特征
  • 4.虚拟内存技术的实现
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档