《计算机体系结构量化研究方法》 B.4 虚拟存储器 笔记

news2024/12/27 12:53:14

B.4 虚拟存储器

一、基本概念

1、虚拟存储器把物理存储器划分成块以后分配给不同的进程;采用一种保护机制来限制各个进程,使其仅能访问属于自己的块。

2、重定位机制允许同一程序在物理存储器中的任意位置运行。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qz9begbE-1674138117658)(D:\A_WHJ\Computer Science\typora图片\image-20230117161723504.png)]

3、用于块,缺页错误地址错误用于缺失。存储器映射地址变换:处理器生成虚拟地址,由软硬件组合方式转换成物理地址,再访问主存储器。

4、缓存vs虚拟存储器

(1)缓存缺失主要由硬件控制,虚拟存储器替换主要由操作系统控制。

(2)处理器地址空间大小决定虚拟存储器大小,但是缓存大小与处理器地址空间大小无关。

(3)辅助存储不仅用于充当主存储器的后援存储,还用于文件系统,事实上文件系统占用了大部分辅助存储。

5、虚拟存储器系统的两类:采用固定大小块的页和采用可变大小块的段。

页:寻址方式有一个固定大小的地址,分为页编号和业内偏移量。

段:一个字表示段号,一个字表示段内偏移量。

二、四个问题

(1)一个块可以放在主存储器什么位置?

为了降低缺失代价(旋转磁存储缺失代价高昂),因此操作系统允许块放在主存储器的任何地方。可以标记为全相联

(2)如果一个块在主存储器中,怎么找到它?

依靠一种按照段号或者页号索引的数据结构(含有块的地址)。分段会将偏移量加到相关的物理地址中获得最终地址;分页则只是被联系到这一物理页地址。物理页地址通常采用页表的数据结构,通过虚拟页号进行索引,大小就是虚拟空间的页数。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8k4c5JW1-1674138117659)(D:\A_WHJ\Computer Science\typora图片\image-20230117165845528.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kxXto44m-1674138117659)(D:\A_WHJ\Computer Science\typora图片\image-20230117165853909.png)]

(3)在虚拟存储器缺失时应该替换哪个块?

操作系统最高指导准则是将缺页错误降到最低。应该尝试替换最近最少使用(LRU)的块。

为了班助操作系统评估LRU,很多处理器提供了一个使用位参考位,一般情况下在发生缓冲区缺失时对其置位(在逻辑上只要访问一个页就对其置位)。操作系统定期清除这些使用位,之后再记录它们,判读一个特定时间段用了哪一些页。

(4)在写入时发生了什么?

采用写回策略,由于对第一级的非必要访问成本太高,所以虚拟存储系统通常包含一个脏位,可以仅将上次读取磁盘后修改过的块写至磁盘。

三、快速地址变换技术

分页意味着每次存储器访问在逻辑上至少要分两次进行,第一次是获得物理地址第二次是为了获得数据。我们可以通过局部性来避免增加存储器的访问次数。变换(旁路)缓冲区(TLB/TB):将地址变换局限在一个特殊缓存中,存储器访问就很少再需要第二次访问来转换数据,这一特殊地址变换缓存就是变换(旁路)缓冲区(TLB/TB)。

TLB项好像是缓存中的一个条目,其中的标记保存了虚拟地址部分,数据部分保存了物理页帧编号、保护字段、有效位,通常还有一个使用位和脏位。如果要改变页表中某一项的物理页帧编号或保护字段,操作系统必须确认旧项不在TLB中,否则系统不会正常运行。(注:此处的脏位表示对应的页曾经被改写过而不是TLB地址变换或数据缓存中的这些特殊块经过改写;操作系统通过改变页表中的值,然后使TLB项失效来重置这些位;在从页表加载该项时,TLB会获得这些位的准确副本)。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xzQtHyMZ-1674138117660)(D:\A_WHJ\Computer Science\typora图片\image-20230118161855042.png)]

图中描述的是Opteron数据TLB组织方式。

步骤1、2:变换首先向所有的标记发送虚拟地址(这些标签必须标记为有效以允许匹配),第二步还需要根据TLB中的保护信息检查存储器访问的类型是否违规。

步骤3:匹配成功的标记通过一个40选1多路选择器发送相应的物理地址。

步骤4:将业内偏移量和物理页帧合并,生成一个完整的大小为40位的物理地址。

四、选择页面大小

(1)页表的大小与页面大小成反比,因此,增大页面大小可以节省存储器(或其他用于存储器映射的资源)。
 (2)B.3节曾经提到,页面较大时,缓存可以更大,缓存命中时间可以更短。
 (3)与传递较小的页面相比,从(向)辅助存储传递较大页面(有可能通过网络)的效率更高一些。
 (4)TLB条目的数量有限,所以页面较大意味着可以高效地映射更多存储器,从而减少TLB缺失数量。
  由于最后这个原因,近来的微处理器决定支持多种页面大小。对于一些程序,TLB缺失对CPI的影响可能与缓存缺失一样大。
  采用较小页面的主要目的是节省存储。当虚拟存储器的连续区域的大小不等于页面大小的整数倍时,采用较小的页面可以减少存储的浪费。表示页面中这种未使用存储器的术语是内部碎片化。假定每个进程有3个主要段(文本、堆和栈),每个进程的平均浪费存储量为页面大小的1.5倍。对于有数百MiB存储器、页面大小为4-8 KiB的计算机来说,这点数量是可以忽略的。当然,当页面非常大(超过32KiB)时,就可能浪费存储(主存储器和辅助存储器)和I/O带宽了。最后一个问题是进程启动时间,许多进程很小,所以较大的页面可能会延长调用一个进程的时间。

五、总结

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lMdqDRBw-1674138117660)(D:\A_WHJ\Computer Science\typora图片\image-20230119220104264.png)]

(1)64位的虚拟地址在逻辑上被划分成了虚拟页号和页内偏移量。前者被发送到TLB并且被转换为物理地址,后者的高位被发送到L1缓存,充当索引。

(2)如果TLB缓存命中,那么就会将物理页号发送到L1缓存标记,检查是否匹配。

(3)如果匹配,则是L1缓存命中。块偏移随后为处理器选择该字。如果L1缓存核对为缺失,则使用物理地址尝试L2缓存。

(4)如果L1缓存核对显示为缺失,则使用物理地址尝试L2缓存。物理地址的中间部分用作4MiB L2缓存的索引。将所得到的L2缓存标记与物理地址的上半部分对比,以检查是否匹配。如果匹配,我们得到一次L2缓存命中,数据被送往处理器,处理器使用块偏移量来选择所需字。在发生L2缺失时,会使用物理地址从存储器获取该块。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/173334.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SSM框架整合入门案例

文章目录SSM整合案例1,SSM整合1.1 流程分析1.2 整合配置步骤1:创建Maven的web项目步骤2:添加依赖步骤3:创建项目包结构步骤4:创建SpringConfig配置类步骤5:创建JdbcConfig配置类步骤6:创建MybatisConfig配置类步骤7:创建jdbc.properties步骤8:创建Spring…

《Buildozer打包实战指南》第七节 常见的打包问题

目录 无法访问xxx网址,连接超时 目标路径xxx已经存在,并且不是一个空目录 每次打包时间都要很久 待更新 在打包过程中难免会碰到一些问题,在本节,笔者会把自己碰到的一些问题的解决方案写出来,好让读者节省时间。 …

KaiwuDB CTO 魏可伟:1.0 时序数据库技术解读

大家好,首先非常感谢大家参与本次 KaiwuDB 1.0 系列产品发布会。作为国内数据库新生品牌力量,KaiwuDB 是浪潮集团控股的数据库企业,我们聚焦在工业物联网、数字能源、交通车联网、智慧产业等快速发展的重要领域,希望为各大行业客户…

06技术太卷我学APEX-技术太卷我学APEX

06技术太卷我学APEX-技术太卷我学APEX 0 概述 自学APEX第7天,用APEX做了一个自学的笔记APP,名称就叫《技术太卷我学APEX》 1 登录页面 登录页面设置:就改了下名称和加上了测试账号。 登录页面效果: 这个是 APEX功能页面之一…

前端面试题合集-第一篇

前端面试题合集-第一篇 🔔每周不定时更新! ⛄️不要让自己失去竞争力! ☀️哪里都不是避风港,保持竞争力! 1. CSS选择器的优先级 !important>内联>id选择器>类选择器>标签选择器>通配符选择器>继承 在同一…

Java IO流补充 - Properties - IO流框架commons-io

文章目录IO流补充知识Properties结合IO流集合IO流框架IO流补充知识 Properties结合IO流集合 我们先来认识Properties属性集对象 Properties其实就是一个Map集合,但是我们一般不会当集合使用,因为HashMap更好用。 Properties核心作用: 属性文件&#xf…

设计模式_行为型模式 -《观察者模式》

设计模式_行为型模式 -《观察者模式》 笔记整理自 黑马程序员Java设计模式详解, 23种Java设计模式(图解框架源码分析实战) 概述 定义 观察者模式,又被称为发布-订阅(Publish / Subscribe)模式&#xff0c…

RSA与证书

这篇文章详细讲述一下RSA与证书的相关内容。内容有点多,但都是干货。 一、RSA算法 1.1简介 RSA算法是由美国三位科学家Rivest、Shamir和Adleman于1976年提出并在1978年正式发表的公开密码算 法,其命名取自三位创始人名字的首字母缩写。该算法基于数论…

CSS 计数器

CSS 计数器 CSS 计数器可让你根据内容在文档中的位置调整其显示的外观。例如,你可以使用计数器自动为网页中的标题编号,或者更改有序列表的编号。 本质上 CSS 计数器是由 CSS 维护的变量,这些变量可能根据 CSS 规则跟踪使用次数以递增或递减…

【Git】利用 GIT 做版本控制

目录 写在前面 备份方法 效果展示 写在前面 在做项目开发时,不免需要进行版本更替或者使增加新功能等,这时很重要的环节是对版本进行备份,以便在新版本开发过程中出现问题,而当工程文件过大时,在对文件备份时需要占…

Java——多线程01(创建和启动,优先级调度,守护线程,出让/礼让线程,插队/插入线程)

目录1.多线程的创建和启动方式1.线程第一种启动方式(继承Thread类)2.多线程的第二种启动方式实现Runnable接口3.多线程的第三种启动方式实现Callable接口2.Thread多线程中的方法1.getName(), setName(),currentThread(),sleep2.Thread优先级调度方法3.守…

【手把手教你学会51单片机】数码管的动态显示

注:本文章转载自《手把手教你学习51单片机》!因转载需要原文链接,故无法选择转载! 如若侵权,请联系我进行删除!上传至网络博客目的为了记录自己学习的过程的同时,同时能够帮助其他一同学习的小伙…

类的初始化2023018

类的初始化: 第一次使用某个类,例如Person类,系统通常会在第一次使用Person类时加载这个类并初始化这个类。在类的准备阶段,系统将会为该类的类变量分配内存空间,并指定默认初始值。当Person类初始化完成后&#xff0c…

高并发系统设计-Feed流系统设计

有两种实现方式:push和pull实现,首先讨论push模式 概念 我们在讲如何设计Feed流系统之前,先来看一下Feed流中的一些概念: Feed:Feed流中的每一条状态或者消息都是Feed,比如朋友圈中的一个状态就是一个Fe…

布隆过滤器算法

目录布隆过滤器主要有下面的参数:结论举例布隆过滤器主要有下面的参数: 1.假设数据量为n,预期的失误率为p(布隆过滤器大小和每个样本的大小无关)。 2.根据n和p,算出BloomFilter一共需要多少个bit位&#x…

【年度总结 | 2022】想干什么就去干吧,少年

🤵‍♂️ 个人主页: 计算机魔术师 👨‍💻 作者简介:CSDN内容合伙人,全栈领域优质创作者。 程序人生专栏 | 年度总结 ( 2022 ) 作者: 计算机魔术师 版本: 1.0 &#xff08…

关于性能测试需要知道的

随着各企业的业务发展、用户量以及数据量的不断增加,系统承载的压力也会随之增加,服务系统的性能好坏又严重影响企业的利益。因此,性能测试重要性与需求越来越强烈。 常见的性能测试目的 性能测试是确定系统在特定工作负载下的稳定性和响应…

JAVA 基础语法——(HelloWorld案例编写,Notepad软件的安装和使用,注释,关键字,常量,变量,计算机存储单元,数据类型,标识符,类型转换)

目录 HelloWorld案例的编写 Notepad软件的安装和使用 注释 关键字 常量 变量 计算机存储单元 数据类型概述 标识符 类型转换 HelloWorld案例的编写 首先定义一个类——–public class 类名在类定义后加上一对大括号 {}在大括号中间添加一个主(main)方法/函数——–publi…

详解Curl各参数的含义

详解Curl各参数的含义1. Introduction2. Detail2.1 参数-k2.2 参数-X2.3 参数-x2.4 参数-w %{http_code}2.5 参数-d2.6 参数-H2.7 参数-F2.8 参数-O2.9 参数-o2.10 参数-u2.11 参数-b2.12 参数-G3. Awakening1. Introduction [rootnolan ~]# curl -h Usage: curl [options...]…

如何快速部署一款小程序

小程序现在大家都不陌生,微信,qq,抖音,支付宝等等都有小程序,今天给的大家带有通用的小程序,如何快速部署两种方式:自己纯手工开发,或者找别人开发不管哪种方式,今天我带…