操作系统(4)---虚拟机

虚拟机又叫虚拟机管理程序或者虚拟机监控程序(Virtual Machine Monitor/Hypervisor,VMM),使用虚拟化技术,将一台物理机器虚拟化为多台虚拟机器 (Virtual Machine,VM),每个虚拟机器都可以独立运行一个操作系统。

VMM分为两类:

第一类直接运行在硬件上,一个硬件资源上可以安装多台虚拟机器。若硬件为单核CPU,那么该CPU会被分为多个事件片,每个虚拟机器分配几个时间片,但在上层看来,每个自己都占有独立CPU。

只有虚拟机管理程序运行在内核态,所以上层的操作系统不能使用特权指令,若上层操作系统想要使用特权指令,那么其就会将特权指令传到虚拟机管理程序,管理程序就会对该指令进行等价转换。

第二类VMM,运行在宿主操作系统上

虚拟机管理程序运行在宿主操作系统上,若虚拟机管理程序想要给操作系统分配资源,就要先向宿主操作系统申请硬件资源,再做分配。

第二类虚拟机管理程序总需要通过宿主操作系统为中介进行映射,性能比第一类更差。


 

两类虚拟机管理程序的对比

这里的最高特权级指的是CPU分的更多指令等级

分更多级别是有好处的,对于第一类虚拟机管理程序,若上层操作系统想要使用特权指令,那么其就会将特权指令传到虚拟机管理程序,管理程序就会对该指令进行等价转换。但是分更多类别, 就可以使上层用户空间使用Ring1,Ring2时管理程序不用介入,直接可以执行,除非执行少数的Ring0,才需要介入。

这就相当于将原本的特权指令进行细分,将特权指令中的敏感指令设为Ring0。这样虚拟机管理程序不用检查每一条特权指令,只会检查敏感指令Ring0

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

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

相关文章

C语言中各种类型指针所能访问的字节

其实学习语言的最简单的方法就是学习代码&#xff0c;所以下面来看一段代码就明白了&#xff1a; #define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h> int main() {int a 0x11223344;int* pa &a;char* pc &a;double* pd &a;printf("%p\n", …

TiDB中Table映射到KV

TiDB 对每个表分配一个 TableID&#xff0c;每一个索引都会分配一个 IndexID&#xff0c;每一行分配一个 RowID&#xff08;如果表有整数型的 Primary Key&#xff0c;那么会用 Primary Key 的值当做 RowID&#xff09;&#xff0c;其中 TableID 在整个集群内唯一&#xff0c;I…

数据结构——链式二叉树(2)

目录 &#x1f341;一、二叉树的销毁 &#x1f341;二、在二叉树中查找某个数&#xff0c;并返回该结点 &#x1f341;三、LeetCode——检查两棵二叉树是否相等 &#x1f315;&#xff08;一&#xff09;、题目链接&#xff1a;100. 相同的树 - 力扣&#xff08;LeetCode&a…

《动手学深度学习(PyTorch版)》笔记3.3

注&#xff1a;书中对代码的讲解并不详细&#xff0c;本文对很多细节做了详细注释。另外&#xff0c;书上的源代码是在Jupyter Notebook上运行的&#xff0c;较为分散&#xff0c;本文将代码集中起来&#xff0c;并加以完善&#xff0c;全部用vscode在python 3.9.18下测试通过。…

【干货】【常用电子元器件介绍】【电阻】(二)--敏感电阻器

声明&#xff1a;本人水平有限&#xff0c;博客可能存在部分错误的地方&#xff0c;请广大读者谅解并向本人反馈错误。   电子电路中除了采用普通电阻器外&#xff0c;还有一些敏感电阻器&#xff08;如热敏电阻器、压敏电阻器、光敏电阻器等&#xff09;也被广泛地应用。然而…

C# 使用 SapNwRfc 调用SAP RFC

好久没写过相关代码&#xff0c;今天又来贡献一篇 C# 使用 SapNwRfc 调用SAP RFC。用VS2022的WINFORM应用程序&#xff0c;使用NuGet中的SapNwRfc类库&#xff0c;call SAP系统中的RFC&#xff0c;传入7个参数&#xff0c;得到RFC返回的2张表的数据。 一、VS2022中新建WINFORM…

Nodejs前端学习Day1_补档

我给day1搞没了&#xff0c;还是觉得该补一个&#xff0c;有用 文章目录 前言一、学习目标二、学习目录三、为什么JavaScript代码可以在浏览器中运行四、为什么JavaScript可以操作DOM和BOM五、浏览器中的JavaScript运行环境总结 前言 补档 一、学习目标 二、学习目录 三、为什…

CentOS 7 上使用 wget 安装 Nginx 并设置开机自启

在 CentOS 7 上使用 wget 安装 Nginx 并设置开机自启&#xff0c;你可以按照以下步骤进行操作&#xff1a; 首先&#xff0c;确保你已经以 root 用户或者具有 sudo 权限的用户身份登录到 CentOS 7。 安装 Nginx 所需的依赖包。在终端中运行以下命令&#xff1a; sudo yum inst…

RustDesk私有化部署,自建远程桌面搭建教程

以linux操作系统为例&#xff1a; 解压安装 # 使用wget进行下载1.1.8-2版本&#xff08;最新版本可以看上述发布地址&#xff09; wget https://github.com/rustdesk/rustdesk-server/releases/download/1.1.8-2/rustdesk-server-linux-amd64.zip # 使用unzip解压 unzip rust…

Hive3.1.3基础

参考B站尚硅谷 目录 什么是HiveHive架构原理 Hive安装Hive安装地址Hive安装部署安装Hive启动并使用Hive MySQL安装安装MySQL配置MySQL 配置Hive元数据存储到MySQL配置元数据到MySQL Hive服务部署hiveserver2服务metastore服务编写Hive服务启动脚本&#xff08;了解&#xff09…

EventSource 长链接执行

EventSource 说明文档MDN 其他参考文档 一、利用node启服务 import fs from fs import express from express const app express() // eventSource 仅支持 get 方法 // 服务器端发送的数据必须是纯文本格式&#xff0c;不能是二进制数据。 app.get(/api, (req, res) > …

table用position: sticky固定多层表头,滑动滚动条border边框透明解决方法

问题&#xff1a;我们发现&#xff0c;只要设置了border边框&#xff0c;这个位置滑动有内容经过就会出现如图的情况。 解决的方法&#xff1a;用outline&#xff08;轮廓&#xff09;替代border,以达到我们想要的样式。 table thead tr {border: none;outline-color: #fff;ou…

Impala依赖组件的客户端源码下载

Impala编译时默认依赖CDH/CDP组件&#xff0c;这些组件跟开源Apache组件的源码可能有差异&#xff0c;但对应的客户端源码也是开源的&#xff0c;可以从S3下载。 比如Impala-4.3.0依赖的CDP_BUILD_NUMBER是44206393&#xff0c;在bin/impala-config.sh中也列出了组件版本&…

Redis(八)哨兵机制(sentinel)

文章目录 哨兵机制案例认识异常 哨兵运行流程及选举原理主观下线(Subjectively Down)ODown客观下线(Objectively Down)选举出领导者哨兵选出新master过程 哨兵使用建议 哨兵机制 吹哨人巡查监控后台master主机是否故障&#xff0c;如果故障了根据投票数自动将某一个从库转换为新…

excel 设置密码保户

目录 前言设置打开密码设置编辑密码 前言 保户自己的数据不被泄漏是时常有必要的&#xff0c;例如财务数据中最典型员工工资表&#xff0c;如果不设置密码后果可想而知&#xff0c;下面我们一起来设置excel查看密码和编辑密码。我用的是wps,其它版本类似&#xff0c;可自行查资…

已经安装了CUDA,但是cmd执行nvcc -V报错:nvcc不是内部或外部命令,也不是可运行的程序或批处理文件

请注意&#xff0c;查看版本的指令是nvcc --version或nvcc -V&#xff0c;注意区分大小写 如果还是不能输出版本信息&#xff0c;那这个原因可能是由于没有在系统环境变量里添加CUDA。 先来看看CUDA是否安装成功&#xff1a; 在CUDA的安装路径下找到bandwidthTest.exe 和 devi…

一种通过增强的面部边界实现精确面部表示的多级人脸超分辨率

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 摘要Abstract文献阅读&#xff1a;一种通过增强的面部边界实现精确面部表示的多级人脸超分辨率二、使用步骤1、研究背景2、方法提出3、相关方法3.1、FSR网络结构3.2…

26.各品类中商品价格的中位数(ceil与floor函数)

题目&#xff1a; 题解&#xff1a; --这道题主要考察中位数的取法 SELECT category_id,cast(sum(price)/count(1) as DECIMAL(16,2)) medprice from( SELECTcategory_id,price,rn,max(rn)over(partition by category_id) max_rn from(SELECTcategory_id,price,row_number() …

18-数组-数组拆分

这是数组的第18篇&#xff0c;力扣链接。 给定长度为 2n 的整数数组 nums &#xff0c;你的任务是将这些数分成 n 对, 例如 (a1, b1), (a2, b2), ..., (an, bn) &#xff0c;使得从 1 到 n 的 min(ai, bi) 总和最大。 返回该 最大总和 。 示例 1&#xff1a; 输入&#xff1a;n…

Emergent Abilities of Large Language Models 机翻mark

摘要 证明通过扩大语言模型可以可靠地提高性能和样本效率在广泛的下游任务。相反&#xff0c;本文讨论了我们称之为大型语言模型的新兴能力的一种不可预测的现象。我们认为如果一个能力不存在于较小的模型中&#xff0c;但在较大的模型中存在&#xff0c;则该能力就是新兴的。…