我是靠谱客的博主 大意热狗,最近开发中收集的这篇文章主要介绍[操作系统] 虚拟化虚拟化,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

虚拟化


  • 虚拟化
    • 虚拟化的条件
    • I型管理程序
    • II型管理程序
    • 内存虚拟化
    • IO虚拟化


虚拟化技术允许一台机器存在多台虚拟机,每一台虚拟机可能运行不同的操作系统。

1. 虚拟化的条件

虚拟化存在两种方法:

  1. I型管理程序(虚拟机监控器)

    实质上就是一个操作系统,因为它是惟一一个运行在内核态的程序。它的工作时支持真实硬件的多个副本,也称作虚拟机,与普通操作系统所支持的进程类似。

  2. II型管理程序

    只是一个运行在操作系统平台上,能够解释机器指令集的用户程序。
    管理程序

两种情况下,运行在管理程序上的操作系统称为客户操作系统。在II型管理程序下,运行在硬件上的操作系统称为宿主操作系统。

每个有内核态和用户的处理器都有一组只能在内核态执行的指令集合,被称为敏感指令。还有一些指令如果在用户态下执行会引起陷入,被称为特权指令。

当且仅当敏感指令是特权指令的子集时,机器才是可虚拟化的。简单说,如果想做一些在用户态下不能做的工作,硬件必须陷入。

2. I型管理程序

I型管理程序在裸机上运行,虚拟机在用户态以用户进程的身份运行,因此不允许执行敏感指令。虚拟机内运行着一个客户操作系统,该系统认为自己处于内核态,但实际运行在用户态。这样状态称为虚拟内核态。

当操作系统执行一条敏感指令时,在可支持虚拟化的机器下,会发生到内核的陷入,从而完成要执行的指令。
I型管理程序

3. II型管理程序

VMware就是该类程序,这种软件在宿主操作系统上作为普通用户程序运行。当第一次运行时,就像一个新启动的计算机,在它的虚拟磁盘上(即宿主系统文件)上安装操作系统,就可以运行了。

在这种方法中,VMware首先会浏览代码段以寻找基本块,并把每条敏感指令被替换完相应的VMware过程调用。由此,在执行过程中就不会存在敏感指令,就可以在不可虚拟化的硬件上使用了。

4. 内存虚拟化

假如一个虚拟机A希望将它的虚拟页面1,2,3分别映射到物理页面,7,8,9,且7,8,9可用,那么就直接把物理页面7,8,9分配给这台虚拟机并建立页表。这时第二胎虚拟机B启动,希望将它自己的虚拟页面4,5,6也映射到物理页面7,8,9。管理程序发现物理页面7,8,9不可用。于是找到空闲页面10,11,12分配给B并建立页表。

所以,管理程序为每一台虚拟机创建一个影子页表,用以实现该虚拟机使用的虚拟页面到管理程序分配给它的物理页面的映射。造成的问题是,每次客户操作系统改变页表,管理程序也必须改变其影子页表。

5. I/O虚拟化

管理程序在物理磁盘上为每一个虚拟机创建一个文件区域作为它的物理磁盘,管理程序把需要访问的磁盘块数转换成相对于真正物理磁盘上文件或区域的偏移量。




参考书目:现代操作系统第三版

最后

以上就是大意热狗为你收集整理的[操作系统] 虚拟化虚拟化的全部内容,希望文章能够帮你解决[操作系统] 虚拟化虚拟化所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部