考研计算机组成原理总结(7)

news2024/9/22 5:34:28

一.虚拟存储器

1.基本知识

主存和辅存共同构成了虚拟存储器,二者在硬件和系统软件的共同管理下工作。对于应用程序员而言,虚拟存储器是透明的。虚拟存储器具有主存的速度和辅存的容量。

2.基本概念

虚拟存储器将主存或辅存的地址空间统一编址, 形成个庞 大的地址空间,在这个空间内,用户可以自由编程,而不必在乎 实际的主存容量和程序在主存中实际的存放位置。
用户编程允许涉及的地址称为虚地址逻辑地址,虚地址对应的存储空间称为虚拟空间或程序空间。实际的主存单元地址称为实地址物理地址,实地址对应的是主存地址空间,也称实地址空间。虚地址比实地址要大很多。

3.结构图和分类

jFHO.jpg
分类:

  • 页式存储器
  • 段式存储器
  • 段页式存储器

二.补充知识点

1.说明

本来这里是针对三种虚拟存储器技术进行详细介绍的,但是这三种虚拟存储器各自内容比较少,也很容易理解,这里就不一一列出,补充一个知识点即可。

2.补充

同时具有虚拟页式存储器(含TLB)和Cache系统访问顺序:TLB > 页表 > Cache > 主存 > 外存。

三.经典例题

  1. 为使虚拟存储系统有效地发挥其预期的作用,所运行程序应具有的特性是( )
    A.不应含有过多的IO操作
    B. 大小不应小于实际的内存容量
    C.应具有较好的局部性
    D.顺序执行的指令不应过多
    解析:C。Cache和虚拟存储器技术的工作原理都是基于程序的局部性原理,提起特性,程序应当具备较好的局部性。

  2. 虚拟存储管理系统的基础是程序访问的局部性原理,此理论的基本含义是( )
    A.在程序的执行过程中,程序对主存的访问是不均匀的
    B.空间局部性
    C.时间局部性
    D.代码的顺序执行
    解析:A。局部性原理的含义是在一个程序的执行过程中,其大部分情况下是顺序执行的,某条指令或数据使用后,在最近一段时间内有较大的可能再次被访问 (时间局部性):某条指令或数据使用后,其邻近的指令或数据可能在近期被使用(空间局部性)。在虚拟存储管理系统中,程序只能访问主存获得指令和数据,所以选项A正确,选项B、C、D均是局部性原理的一个方面而已。

  3. 关于虚拟存储器,下列说法中正确的是( )
    I. 虚拟存储器利用了局部性原理V
    II. 页式虚拟存储器的页面若很小,主存中存放的页面数较多, 导致缺页频率较低,换页次数减少,最终可以提升操作速度
    III.页式虚拟存储器的页面若很大,主存中存放的页面数较少,导致页面调度频率较高,换页次数增加,降低操作速度
    IV.段式虚规存储器中,段具有逻辑独立性,易于实现程序的编译、管理和保护,也便于多道程序共享
    A. I、II、IV
    B. I、II、 III
    C. I、II、IV
    D. I、III 、IV
    解析:A。页式虚拟存储器中,页面若很小, 虚拟存储器中包含的页面数就会过多,使得页表的体积过大,导致页表本身占据的存储空间过大, 使操作速度变慢,因此II错误。
    当页面很大时,虚报存储器中的页面数会变少,由于主存的容量比虚报存储器的容量小,主存中的页面数会更少,每次页面装人的时间会变长,每当需要较入新的页面时, 速度公交慢,因此III正确。
    段式虚拟存储器是按照程序的逻辑性来设计的,具有易于实现程序的编译、 管理和保护,也便于多道程序共享的优点,因此IV正确。

  4. 某计算机主存地址空间大小为256MB按字节编址。虚拟地址空间大小为4GB,采用页式存储管理页面大小为4KB),TLB (快表)采用全相联映射,有4个页表项, 内容如下表所示。
    jH19.jpg
    则对虚地地址 03FF F180H进行实地址变换的结果是( )
    A. 015 3180H
    B.003 518OB
    C. TLB缺失
    D.缺页
    解析:A。按字节编址,页面大小为4KB,页内地址共12位。地址空间大小为4GB.虚拟地址共32位,前20位为页号。虚拟地址为03FF F180H,因此页号为03 FFH页内地址为180H。查找页标记03FFFH所对应的页表项,页框号为0153H,页框号与页内地址拼接即为物理地址015 3180H。
    理解:这题才是今天的重点,理解这道题你虚拟存储器(计算机组成原理)这一块就理解了,操作系统中更详细,但现在只谈计算机组成原理。

四.虚拟存储器和Cache的比较

1.相同之处

  • 最终目标都是为了提高系统性能,两者都有容量、速度、价格的梯度。
  • 都把数据划分为小信息块,并作为基本的传递单位,成存系统的有真块更大
  • 都有地址的映射、替换算法、更新策略等问题。
  • 依据程序的局部性原理应用“快速缓存的思想”,将活跃的数据放在相对高速的部件中。

2.不同之处

  • Cache主要解决系统速度,而虚拟存储器却是为了解决主存容量。
  • Cache完全由硬件实现,是硬件存储器,对所有程序员透明;而虚拟存储器由OS和硬件共同实现,是逻辑上的存储器, 对系经程许员不透明,但对应用程序员透明
  • 对于不命中性能影响,因为CPU的速度的为Cade的10倍。主存的道度为硬盘的100倍以上,因此虚拟存储器系统不命中时对系统性能影响更大。
  • CPU与Cache和主存都建立了直接访间的通路,面辅存与CPU没有直接道路,也就是说在Cache不命中时主存能和CPU直接通信,同时将数据调入Cache;而虚拟存储器系统不命中时,只能先由硬盘调入主存,而不能直接和CPU通信。

五.优缺点

5.1优点

  • 提高内存利用率:虚拟存储器允许多个进程共享同一块物理内存,使得物理内存得到更有效的利用。

  • 允许多道程序并发执行:通过虚拟存储器,可以将一部分不常用的数据存储到辅助存储器上,从而允许多个进程并发执行,并且每个进程都可以使用较大的虚拟内存空间。

  • 提供了内存保护机制:通过在页表中设置相关标志位,操作系统可以实现对进程内存的保护,防止进程越界访问或者修改其他进程的内存。

  • 支持内存共享:虚拟存储器允许多个进程共享同一块物理内存,这在IPC(进程间通信)中非常有用。

5.2缺点

  • 增加了访问开销:因为虚拟存储器需要进行地址映射和磁盘I/O操作,所以访问虚拟内存的速度比访问物理内存慢。

  • 可能导致频繁的磁盘读写:如果虚拟内存中的页面频繁被置换到磁盘上,就会导致频繁的磁盘读写操作,降低了系统性能。

  • 需要复杂的页表管理:由于虚拟内存需要进行地址映射,所以操作系统需要维护一个复杂的页表结构来实现虚拟内存到物理内存的映射,这增加了操作系统的开销。

  • 页面置换算法影响性能:虚拟存储器的性能很大程度上取决于页面置换算法的效率,不同的算法对应不同的优缺点,而且算法的选择也会受到特定应用程序的影响。

六.情况说明

本文和上一篇博客Cache技术存在许多相似的地方,可以一起理解,效果更佳!
高速缓存(Cache)知识点

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

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

相关文章

如何提高图片清晰度?三种方法来帮你!

如何提高图片清晰度?图片在上传到网络后会被压缩,导致图片变得模糊。今天,我将分享三种方法,帮助您提高图片的清晰度。 方法一:使用记灵在线工具 工具地址:记灵在线工具 - 更专注于发现工具的实用性 该工…

[Linux 命令] ls 显示目录内容列表

ls 显示目录内容列表 思维导图 补充说明 ls命令 就是list的缩写,用来显示目标列表,在Linux中是使用率较高的命令。ls命令的输出信息可以进行彩色加亮显示,以分区不同类型的文件。 语法 ls [选项] [文件名...][-1abcdfgiklmnopqrstuxABCD…

Node.js下载安装与简单使用

一、下载Node.js 打开链接:Node.js 的官网首页(https://nodejs.org/en/) 选择左边的 LTS 版本和 Current 版本的不同 1.LTS 为长期稳定版,对于追求稳定性的企业级项目来说,推荐安装 LTS 版本的 Node.js。 2.Current …

【系统集成项目管理工程师】项目质量管理

💥十大知识领域:项目质量管理 项目质量管理包括以下 3 个过程: 规划质量管理实施质量保证质量控制 一、规划质量管理 规划质量管理是识别项目及其可交付成果的质量要求和标准,并准备对策确保符合质量要求的过程 这部分重点主要是工具与技术 1…

C语言从入门到精通第8天(分支结构if、else、switch的使用)

分支结构if、else、switch的使用 if语句if...else语句if...else嵌套if...else if...else语句switch语句 if语句 语法: if(表达式){ 语句; } 如果表达式为真,则执行{}里面的语句。如果为假,则不执行。示例代码: int m…

春秋云镜:CVE-2022-25488(SQL报错注入)

目录 一、题目 二、sqlmap梭哈查flag 一、题目 介绍: Atom CMS v2.0存在sql注入漏洞在/admin/ajax/avatar.php页面 进入题目; 发现是Not Found页面 一开始以为打开的问题: 一想 我们要访问的是/admin/ajax/avatar.php 访问后是空白页面&#xff1a…

进程树pstree介绍

进程树(pstree)是一个Linux/Unix命令,用于显示系统中所有进程的层次结构。它可以将进程展示为树形结构,其中每个进程都是一个节点,而每个节点下面的子节点是该进程的子进程。pstree可以按照进程的父子关系显示进程&…

[架构之路-172]-《软考-系统分析师》-5-数据库系统-5- 数据库设计与建模(逻辑设计-实体关系图ER图-关系图、物理设计)

目录 5 . 5 数据库设计与建模 5.5.1数据库设计阶段 1 . 规划:为什么做?能不能做? 2 . 需求分析:做成什么样子? 3 . 概念设计:怎么做 - 概念 (用户) 4 . 逻辑设计:怎…

p66 内网安全-域横向批量atschtasksimpacket

数据来源 本文仅用于信息安全的学习,请遵守相关法律法规,严禁用于非法途径。若观众因此作出任何危害网络安全的行为,后果自负,与本人无关。 基本概念 DMZ区域:称为“隔离区”,也称‘’非军事化区/停火区…

C语言入门篇——数据篇

目录 1、变量与常量 1.1变量 1.2常量 1.2.1#define 定义的标识符常量 1.2.2枚举常量 2、数据类型关键字 3、整数 4、浮点数 5、基本数据类型 5.1、int型数据 5.2、char型数据 5.3、_Bool类型 5.4、float、double和long double 5.5、复数和虚数类型 6、总结 1、变…

Preempt-RT实时系统下IGH主站安装

文章目录 1. 安装环境2. 确定网卡类型3. 下载IGH安装包4. 配置安装5. 启动测试6. 扫描从站7. 设置环境变量 1. 安装环境 ubuntu18.04内核版本:4.19.72-rt25 2. 确定网卡类型 查看网卡驱动 lspci -v可以看到我的网卡驱动主要有e1000e和igb两种类型,其…

localhost与本机IP IPtables匹配顺序

localhost&host IPtables iptables链匹配顺序 ping localhost 当前实验网络为IPV4模式通过tcpdump抓包,我们可以发现ping localhost的流量最终发送到lo网卡了通过iptables pkts数据计数我们可知,ping localhost的iptables过滤流程为:应…

npm install 卡住 不动弹

npm install时如果卡住,不动弹,可以试试以下几种方式。 设置注册中心,使用淘宝注册中心。 这种主要解决因为网络问题引起的下载失败,npm config set registry https://registry.npmmirror.com,设置完后使用npm config…

阻止or关闭Win10自动更新

阻止or关闭Win10自动更新 https://baijiahao.baidu.com/s?id1732432888882246429&wfrspider&forpc 一、禁用Windows Update服务 1、同时按下键盘 Win R,打开运行对话框,然后输入命令 services.msc ,点击下方的“确定”打开服务。…

轻松掌握k8s的kubectl使用命令行操作Service知识点02

1、Service将同类型一组应用统一IP访问 将一组 Pods 网络服务的抽象方法。统一Ip后,默认就实现了负载均衡。 1、只在Pod内部任意机器访问的ClusterIp类型 在命令行操作生成一个ClusterIp地址。这种ClusterIp只能在Pod内部访问。 生成了ClusterIp之后&#xff0…

Git的安装和学习使用(一)

本篇文章旨在分享本人在学习Git时的随笔记🤩 文章目录 一、Git 快速入门1.1 Git 概述1.2 SCM概述1.3 Git 安装1.3.1 软件下载1.3.2 软件安装1.3.3 软件测试 二、Git 基础使用2.1 Git 概念2.1.1 版本控制2.1.2 分布式2.1.3 系统2.1.4 区域 2.2 Git 基础指令2.2.1 Lin…

UTC时间、GMT时间、CST时间(北京时间)、时间戳

一、几个时间相关的概念。 GMT时间:Greenwich Mean Time,格林尼治平时,又称格林尼治平均时间或格林尼治标准时间。是指位于英国伦敦郊区的皇家格林尼治天文台的标准时间。 GMT存在较大误差,因此现在已不再被作为标准时间使用。现…

【C++入门学习:基本语法】为了缩短学习周期,只记录部分不懂的语法

文章目录 一、程序结构二、定义变量和声明变量三、变量作用域四、定义常量五、类型限定符号六、存储类七、运算符八、函数九、指针与引用十、C 的基本输入输出十一、“结构成员”和“类变量”引用 一、程序结构 #include <iostream> // C 语言定义了一些头文件&#xff…

[CoderChef复盘] START86 div4 20230419】

[CoderChef复盘] START86 div4 20230419 一、本周周赛总结P1 CodeChef Learn Problem Solving1. 题目描述2. 思路分析3. 代码实现 P2、Cricket Match2. 思路分析3. 代码实现 P3 Chef and Battery1. 题目描述2. 思路分析3. 代码实现 P4 Maximise Score1. 题目描述2. 思路分析3.…

HummerRisk V1.0 :架构升级说明

升级前须知 HummerRisk v1.0.0 版本与 HummerRisk v0.10.0 以及之前版本存在一定的差异。 HummerRisk v1.0.0 增加了一些新功能&#xff0c;也同时删除了一些功能&#xff0c;另外也对部分功能进行了重构和修复。 整体架构 功能原理 工作流程 组件说明 Vue&#xff1a;使用…