一台逻辑计算机,利用特殊的虚拟化技术,通过隐藏特定计算平台的实际物理特性,为用户提供抽象的、统一的、模拟的计算环境。
有两个虚拟化方法:
1.第一类虚拟机管理程序
第一类虚拟机管理程序就像一个操作系统。因为它是唯一一个运行在最高特权级的程序。它在裸机上运行并具备多道程序功能。虚拟机管理程序向上提供若干台虚拟机,这些虚拟机都是裸机硬件的复制品。由于每台虚拟机与裸机相同,所以在不同的虚拟机上面可以运行任何不同的操作系统。
虚拟机作为用户态的一个进程运行,不允许执行敏感指令。然而,虚拟机上的操作系统认为自己运行在内核态(实际上是用户态),我们把这个状态称为虚拟内核态。虚拟机中的用户进程认为自己运行在用户态。当虚拟操作系统执行了一条只有CPU处于内核态才允许被执行的指令的时候,会陷入虚拟机管理程序。虚拟机程序管理我们需要按照CPU是否支持虚拟化来进行划分:
在支持虚拟化的CPU上,虚拟机管理程序会检查这条指令是由虚拟机中的操作系统执行的还是由用户程序执行的。如果是虚拟机中的操作系统,虚拟机管理程序将安排这条指令功能的正确执行,如果是用户程序执行的,虚拟机管理程序将模拟真实硬件面对用户态执行敏感指令时的行为。
在不支持虚拟化的CPU上,真实硬件不会直接执行虚拟机中的敏感指令,这些敏感指令会被转为对虚拟机管理程序的调用,由虚拟机管理程序模拟这些指令的功能。
2.第二类虚拟机管理程序
第二类虚拟机管理程序是一个依赖于Windows,Linux等操作系统分配和调度资源的程序,很像一个普通的进程。第二类虚拟机管理程序仍然伪装成具有CPU和各类设备的完整计算机。VMware是首个X86平台上的第二类虚拟机管理程序。
首次启动第二类虚拟机管理程序的时候,第二类虚拟机管理程序像一台刚启动的计算机那样运转,期望找到的驱动器可以是虚拟设备。然后将操作系统安装到虚拟磁盘上面(其实知识宿主操作系统中的一个文件)。客户操作系统安装完成后,就能启动并运行。
运行在上述两个种类的虚拟机管理程序上的操作系统都被称为客户操作系统。对于第二类虚拟机管理程序,运行在底层硬件上的操作系统被称为宿主操作系统。
注:有的教材将第一类虚拟化技术称为裸金属架构,将第二类虚拟化技术称为寄居架构
操作系统第一章操作系统概述疑难点
1.特权指令与非特权指令
特权指令指的是有特殊权限的指令,这类指令权限最大,使用不当将导致整个系统崩溃,所以不是所有的程序都能使用这些指令。为了保证系统安全,这类指令只有操作系统活其他系统软件能用,不直接提供给用户使用。也就是说,特权指令必须再核心态执行。核心态下的CPU可以使用所有的指令,而用户态下的CPU只能使用非特权指令
在用户态下使用特权指令的时候,将产生中断来组织用户使用特权指令。把用户程序放在用户态下运行,而操作系统中必须使用特权指令的那个部分程序放在核心态下运行,保证了操作系统的安全可靠。从用户态转换为核心态的唯一途径是中断或异常(外中断或内中断)
2.访管指令和访管中断
访管指令是一条在用户状态下执行的指令,其作用场景如下:用户程序使用访管指令,从而产生一个中断事件(用户程序主动调用指令,主动产生中断,也就是自愿中断)将操作系统转换为核心态。我们将使用访管指令产生的中断事件称为访管中断。操作系统完成服务后,退出中断,返回到用户程序断点继续执行。
3.定义微内核结构OS的四个方面
足够小的内核
基于客户/服务器模式
应用“机制与策略分离”原理。机制只实现某一功能的具体执行机构。策略则实在机制的基础上借助于某些参数和算法来实现该功能的优化,或达到不同的功能目标。
采用面向对象技术。
上一篇:MQ面试题
下一篇:CSAPP第九章 虚拟内存