第一章 操作系统概述
思考:
- 操作系统的功能有哪些?
- 操作系统有哪些特征?最基本的特征是什么?
- 什么是批处理系统?单道批处理系统与多道批处理系统的区别?
- 什么是硬实时任务和软实时任务?
- 在交互性、及时性以及可靠性方面,分时系统与实时系统有什么区别?
- CPU有哪些运行模式?什么事情会导致用户态转为内核态?
- 什么是特权指令和非特权指令?有哪些常见的特权指令?
- 发生中断或异常应该如何处理?
- 系统调用的过程是怎样的?
1.1 操作系统的基本概念
1.1.1 操作系统的概念
操作系统是指控制和管理整个计算机系统的硬件与软件资源,合理的组织、调度计算机的工作与资源的分配,进而为用户和其他软件提供方便接口与环境的程序集合。 操作系统是最基本的系统软件。
主要作用:对整个计算机系统的软硬件资源进行管理和控制,提高资源的利用率和系统的吞吐量,并对计算机的工作和资源的分配进行合理的组织和调度,为用户和应用程序提供方便访问的接口。
操作系统位于用户层和硬件层之间,向上提供服务,向下管理资源。
牢记一句话:操作系统是管理计算机资源的软件
举例:操作系统关心什么不关心什么
第2题看图就能看出来。解释源程序为什么不是操作系统管理:操作系统关心文件放在哪,不关心这是什么文件
1.1.2 操作系统的特征
并发(操作系统最基本特征)
- 并发是指两个或多个事件在同一时间间隔内发生。
- 操作系统的并行性是指计算机系统中同时存在多个运行的程序。
- 并发(交替):同一时间间隔; 并行(同时):同一时刻
- 单核处理器使用并发,多核处理器使用并行。
- 程序并发性体现在两个方面:
- 用户程序与用户程序之间的并发执行
- 用户程序与操作系统程序之间的并发执行
共享(操作系统最基本特征)
资源共享(资源复用)即共享,是指系统中的资源可供内存中多个并发执行的进程共同使用。
- 互斥共享方式
- 在一段时间内只允许一个进程访问该资源。
- 在一段时间内只允许一个进程访问的资源称为临界资源或独占资源。
- 临界资源:栈、变量和表格。
- 同时访问方式
- 另一类资源允许在一段时间内由多个进程"同时"访问。
- 这里的"同时"是宏观说法,在微观上,这些进程是交替进行访问的。
并发和共享是操作系统两个最基本的特征。
两者之间互为存在的条件:
- 资源共享是以程序的并发为条件的,若系统不允许程序并发执行,则自然不存在资源共享问题。
- 若系统不能对资源共享实施有效的管理,则必将影响到程序的并发执行,甚至根本无法并发执行。
虚拟
虚拟是把一个物理上的实体变为若干逻辑上的对应物。用于实现虚拟的技术,称为虚拟技术。
- 利用多道程序设计技术把一个物理上的 CPU 虚拟为多个逻辑上的 CPU,称为虚拟处理器。
- 采用虚拟存储器技术将一台机器的物理存储器变为虚拟存储器,把用户感觉到的(但实际不存在的)存储器称为虚拟存储器。
- 采用虚拟设备技术将一台物理 I/O 设备虚拟为多台逻辑上的 I/O 设备,使原来仅允许在一段时间内由一个用户访问的设备变为在一段时间内允许多个用户同时访问的共享设备。
操作系统的虚拟技术:
- 时分复用技术:通过减少处理器和 I/O
设备的空闲时间,来提高计算机资源的利用率,如处理器的分时共享;
- 虚拟处理器技术:将一个物理上的处理器虚拟为多台逻辑上的处理器,用户说感觉到的处理器称为虚拟处理器。
- 虚拟设备技术:通过虚拟设备技术将一台物理上的 I/O 设备虚拟为多台逻辑上的 I/O 设备。
- 空分复用技术:利用存储器的空闲空间区域存放和运行其他的多道程序,以此来提高内存的利用率,如虚拟存储器。
- 虚拟磁盘技术:通过虚拟磁盘技术将一台硬盘虚拟为多台虚拟硬盘。
- 虚拟存储器技术:将内存分成很多个区域,每个区域存放不同进程,提高内存利用率。
异步
多道程序环境允许多个程序并发执行,但由于资源有限,进程的执行并不是一贯到底的,而是走走停停的,它以不可预知的速度向前推进,这就是进程的异步性。
1.1.3 操作系统的目标和功能
操作系统应该具有以下几个功能:
- 处理机管理
- 存储器管理
- 设备管理
- 文件管理
同时操作系统可以用来扩充机器,以提供更方便的服务、更高的资源利用率。
操作系统作为计算机系统资源的管理者
处理机管理
处理机的分配和运行都以进程(或线程)为基本单位。
主要功能:进程控制、进程同步、进程通信、死锁处理、处理机调度
存储器管理
存储器管理是为了给多道程序的运行提供良好环境,方便用户使用及提高内存的利用率。
主要功能:内存分配与回收、地址映射、内存保护与共享、内存扩充
文件管理
计算机中的信息都是以文件的形式存在的,操作系统中负责文件管理的部分称为文件系统。
主要功能:文件存储空间的管理、目录管理、文件读写管理和保护
设备管理
设备管理的主要任务是完成用户的 I/O 请求,方便用户使用各种设备。
主要功能:缓冲管理、设备分配、设备处理和虚拟设备
操作系统作为用户与计算机硬件系统之间的接口
操作系统提供的接口主要分为两类:
一类是命令接口,用户利用这些操作命令来组织和控制作业的执行。
另一类是程序接口,编程人员可以用它们来请求操作系统服务。
命令接口 两种方式进行作业控制:联机控制方式和脱机控制方式。 按作业控制方式不同,可分为:联机命令接口和脱机命令接口。
- 联机命令接口(交互式命令接口),适用于分时或实时系统的接口。
- 脱机命令接口(批处理命令接口),适用于批处理系统。
程序接口(也叫系统调用)
程序接口由一组系统调用(也称广义指令)组成。
是操作系统为应用程序使用内核功能所提供的接口。最常见的是GUI图形窗口
是操作系统提供给编程人员的接口
目的是请求系统服务
只能通过用户程序间接使用
举例:
题1
题2
操作系统与用户通信的接口是命令接口和程序接口(系统调用)
A:shell,命令解析器,属于命令接口
B:命令解释器,命令接口
C:广义指令,就是系统调用命令
D:操作系统不提供管理系统缓存的系统调用
操作系统实现了对计算机资源的扩充
没有任何软件支持的计算机称为裸机。
把覆盖了软件的机器称为扩充机器或虚拟机。
1.2 操作系统的发展历程
1.2.1 手工操作阶段
此阶段无操作系统,所有的工作都需要人工干预。
两个缺点(人机矛盾):
- 用户独占全机,所有计算机资源在一段时间内只能被一个用户使用。
- CPU 需要等待人工操作,这造成 CPU 和内存资源大部分时间处于空闲状态。
1.2.2 批处理操作系统
单道批处理系统
利用脱机输入输出的方式,在监督程序的控制下实现连续工作。
特征:
- 自动性。磁带上的一批作业能自动地逐个运行,无需人工干预。
- 顺序性。先调入内存的作业先完成。
- 单道性(封闭性) 。监督程序每次从磁带上只调入一道程序进入内存运行,当程序完成或异常时,才切换后继程序继续运行。
优点:解决了人机矛盾和 CPU 与 I/O 设备速度不匹配的问题,提高系统资源的利用率和系统吞吐率。
缺点:每次只能运行一道程序,不能充分利用系统资源。
多道批处理系统
多道程序设计技术允许多个程序同时进入内存并允许它们在 CPU 中交替地运行,这些程序共享系统中的各种软硬件资源。
特点:
- 多道。计算机内存中同时存放多道互相独立的程序。
- 宏观上并行。同时进入系统的多道程序都处于运行过程中。
- 微观上串行。内存中的多道程序轮流占有 CPU,交替执行。
举例:
多道相对于单道失去了单道的顺序性和封闭性
实现多道程序设计技术需要解决下列问题:
- 如何分配处理器
- 多道程序的内存分配问题
- I/O 设备如何分配
- 如何组织和存放大量的程序和数据,以方便用户使用并保证其安全性与一致性
在批处理系统中采用多道程序设计技术就形成了多道批处理操作系统。
优点:系统利用率高,多道程序共享计算机资源;系统吞吐量大,CPU 和其他资源保持忙碌状态。
缺点:用户响应的时间较长;没有人机交互功能。
❗无论是单道批处理系统还是多道批处理系统,用户一旦把作业提交给系统后,直至作业完成,用户都不能与自己的作业进行交互,这对修改和调试程序是极不方便的。
举例:
题1
A:脱机技术,对应知识点是1.1.3操作系统作为用户与计算机硬件之间的接口中的命令接口里的脱机命令接口。用于解决独占设备的问题。
B:虚拟技术,以多道程序设计技术为前提
C:交换技术,以多道程序设计技术为前提
D:同时在主存中运行多个程序,提高利用率
题2 计算利用率
(1)计算一个东西的利用率是将这个东西所画的时间/总时间
(2)多批次常画图(甘特图)
(3)甘特图中不同形状的线表示不同的任务,相同的任务就是相同形状的线
1.2.3 分时操作系统
分时技术:把处理器的运行时间分成很短的时间片,按时间片轮流把处理器分配给各联机作业使用。
关于时间片举例:
分时操作系统:多个用户通过终端同时共享一台主机,这些终端连接在主机上,用户可以同时与主机进行交互操作而互不干扰。所以分时操作系统追求的目标是快速响应用户
多道批处理是实现作业自动控制而无需人工干预的系统,分时系统是实现人机交互的系统。
分时系统的特征:
- 同时性(多路性):一台计算机与若干台终端相连接,终端上的这些用户可以同时或基本同时使用计算机。
- 交互性:用户能够方便地与系统进行人机对话。
- 独立性:系统中多个用户可以彼此独立地进行操作,互不干扰。
- 及时性:用户请求能在很短时间内获得响应。
1.2.4 实时操作系统
实时系统:系统能够及时地对外部请求作出相应,并在规定的时间处理该事件,让所有实时任务协调一致的运行。
软实时系统:可以允许或容忍偶尔出现某一事件没在规定时间内完成处理。
硬实时系统:任何时刻都要绝对保证某个事件在规定的时刻得到处理和响应。
实时操作系统具有以下特征:(说白了就是一要快,二要可靠)
- 多路性:系统周期性地采集多路现场的信息,以及同时控制多个对象和执行机构。
- 独立性:系统在采集信息和控制对象的时候都是互不影响、彼此独立的。
- 实时性:系统的实时性是严格根据控制对象所规定的截止时间来确定的。
- 交互性:用户通过和程序直接交互来控制它的运行。
- 可靠性:实时系统要求高度可靠,因为任何差错都会产生无法预料的灾难性后果。
实时操作系统的进程调度通常采用抢占式的优先级高者优先
1.2.5 其他操作系统
网络操作系统:网络环境下管理和控制网络资源的操作系统,其建立在网络中不同计算机的单机操作系统之上,为用户提供了使用网络资源的接口。
分布式操作系统:配置在分布式系统上的操作系统,可以直接对分布式系统中的各种资源进行动态分配。分布式操作系统管理若干计算机,使它们协调配合完成同一个任务。
小结
允许多个用户以交互的方式使用计算机的操作系统,叫分时操作系统
允许多个用户将若干作业提交给计算机系统几种处理的操作系统,叫批处理操作系统
能及时处理由过程控制反馈的数据的操作系统,叫实时操作系统
1.3 操作系统运行环境
1.3.1 处理器运行模式
CPU 通常执行两种不同性质的程序:一种是操作系统内核程序,一种是用户自编程序(即应用程序)。
其中内核程序是应用程序的“管理者”,因此内核程序要执行一些特权命令,而应用程序处于安全考虑不能执行这些指令:
- 特权指令:指不允许用户直接使用的指令。
- 非特权指令:指允许用户直接使用的指令。
用户程序调用系统 API 函数称为系统调用,一旦发生了系统调用,将暂停用户程序的运行,转而执行内核代码,访问内核空间,这称为内核模式(即内核态)。从用户态到核心态是通过硬件完成。执行的是“访管”指令
当在用户空间执行应用程序自己的代码时,称为用户模式(即用户态)。
举例
- 题1:核心态指令
1:批处理的缺点是交互性不足
2:输出/输出需要中断,中断就必须在核心态下执行
3:多道程序设计是为了提高利用率
4:记着就行
- 题2:核心态指令
ACD都可以通过汇编语言实现,即用户态。而置时钟指令可以这么理解,如果用户可以直接调用,那一个用户可以通过修改自己的时间从而一直占用时间片。
注意区分“调用”和“执行”,用户程序可以调用系统调用指令,但系统调用指令一定执行在核心态
- 题3:用户态指令
缺页处理和时钟中断都是中断,都在核心态下执行。
进程调度用户更管不着,也在核心态下执行
命令解释属于命令接口,能面对用户
- 题4:用户态指令,注意与上一题区别
A:系统调用就是操作系统留给用户程序的接口。系统调用发生在用户态,被调用程序在核心态下运行
B:外部中断是用户态到核心态的“门”,发生在用户态,在核心态下完成中断过程
C:进程切换是系统调用发生过程中的事件
D:缺页在用户态产生,然后进入核心态执行缺页中断服务程序/
- 题5:核心态与用户态之间转换
A:可能发生除0的异常
B:都告诉你中断了
C:用户态就可以
D:可能会缺页异常
操作系统内核有以下几种功能:
- 资源抽象:屏蔽底层的硬件细节,使应用程序独立于实际使用的物理资源。
- 资源分配和回收:将抽象资源分配给应用程序,并在适当的时机进行回收。
- 资源共享:允许进程共享资源,并提供进程同步和互斥机制,以协助多道程序并发执行。
操作系统内核还包括四个方面的内容:
- 时钟管理
- 在计算机的各种部件中,时钟是最关键的设备。
- 时钟的功能:
- 计时:操作系统需要通过时钟管理,向用户提供标准的系统时间。
- 中断管理:实现进程的切换。
- 中断机制
- 中断机制是操作系统各项操作的基础。
- 中断机制中,只有一小部分属于内核,它们负责保护和恢复中断现场的信息,转移控制权到相关的处理程序。这样可以减少中断的处理时间,提高系统的并行处理能力。
- 原语
- 把具有以下特点的程序称为原语:
- 处于操作系统的最底层,是最接近硬件的部分。
- 这些程序的运行具有原子性,其操作只能一气呵成。
- 这些程序的运行时间都较短,而且调用频繁。
- 定义原语的方法:关闭中断,让其所有动作都不可分割地完成后再打开中断。
- 把具有以下特点的程序称为原语:
- 系统控制的数据结构及处理
- 系统常见的操作:
- 进程管理。
- 存储器管理。
- 设备管理。
- 系统常见的操作:
1.3.2 中断和异常的概念
操作系统内核工作在核心态,而用户程序工作在用户态。
发生中断或异常时,运行用户态的 CPU 会立即进入核心态。
中断(外部中断)
中断是一种由 I/O 外部设备触发的异步事件,它与 CPU 正在执行的指令无关,中断提供了外设与 CPU 交流的机制,它也是一种重要的输入输出方式。
可屏蔽中断
可屏蔽中断是指通过 INTR 线发出的中断请求,通过改变屏蔽字可以实现多重中断,从而使得中断处理更加灵活。
不可屏蔽中断
不可屏蔽中断是指通过 NMI 线发出的中断请求,通常是紧急的硬件故障。
异常(内部异常)
异常是 CPU 执行当前指令产生的事件,是同步发生的,与 CPU 正在执行的指令密切相关。
故障(fault)
- 故障是一种可能恢复的异常事件。
- 若可以修复,则 CPU 跳转到引起故障的指令继续进行。
- 若不能修复,则终止当前程序。
陷阱(trap)
陷阱是一种有意安排的异常事件。
陷阱指令也称为访管指令、陷入指令。
举例
用户程序运行特权指令会转成操作系统的核心去运行。其中的中断叫访管中断,属于内部中断
终止(abort)
- 终止是一种无法恢复的异常事件。
中断与异常的处理过程(中断处理是操作系统必须提供的功能)
中断响应过程(都是由硬件CPU执行)
关中断
CPU 首先要关中断,禁止在进行中断处理时又去响应新的中断,防止保存的断点、程序状态字、现场信息被破坏。
保存断点和程序状态字
断点和状态字信息在特殊的寄存器中(PC 和 PSW),CPU 会将这两个寄存器内容压栈。
其中PC的内容由中断隐指令自动保存,PSW通用寄存器内容由操作系统保存
引出中断服务程序
CPU 检测到中断信号后对具体中断源进行识别,以此引出对应的中断服务程序。并将CPU模式修改为内核态
中断处理过程(由软件操作系统完成)
- 保护现场
- 执行中断处理程序
- 恢复现场
举例
- 题1:进入中断处理的程序
无论中断程序是用户还是OS程序,进入中断处理的一定是OS程序
- 题2:中断的保存内容
子程序调用只需要保存断点,即该指令的下一条指令的地址
中断处理不仅要保存断点(PC的内容),还要保存程序状态字寄存器(PSW的内容)
题3:中断的保存内容
题4:中断中由操作系统完成的部分
答案:B
答案:D
小结
类型 | 产生原因 | 同步/异步 | 返回 |
---|---|---|---|
中断 | I/O 设备的请求信号 | 异步 | 返回下一条指令 |
故障 | 可能恢复的异常事件 | 同步 | 可能返回当前指令 |
陷阱 | 有意安排的异常事件 | 同步 | 返回下一条指令 |
终止 | 无法恢复的异常事件 | 同步 | 不会返回 |
1.3.3 系统调用
陷阱是一种有意安排的内部异常事件,这样安排的目的是实现系统调用。
所谓系统调用,是指用户在程序中调用系统所提供的一些子功能,系统调用可视为特殊的公共子程序。
系统调用的功能:
- 设备管理:完成设备的请求和释放,以及设备启动等功能。
- 文件管理:完成文件的读、写、创建及删除等功能。
- 进程控制:完成进程的创建、撤销、阻塞及唤醒等功能。
- 进程通信:完成进程之间的消息传递或信号传递等功能。
- 内存管理:完成内存的分配、回收以及获取作业占用内存区大小及始址等功能。
用户程序可以执行陷入指令来发起系统调用,请求操作系统提供服务。
若程序的运行由用户态转到核心态,则会用到访管指令,访管指令是在用户态使用的,所以它不可能是特权指令。
举例
- 题1
1:系统调用需要触发trap指令
2:程序设计无法形成屏蔽中断指令
3:系统调用的概念
4:操作系统的作用
题2
1:断句,对
2:对
3:linux会和windows一样吗?错
4:对
1.3.4 程序的链接与装入
要使一个程序能在多道程序环境下运行,首先要做的事情是创建进程,而创建进程的首要任务是将程序和数据装入内存。
要将一个用户源程序变为一个可在内存中执行的程序,一般有以下几个步骤:
编译
由编译程序将用户源代码编译成 CPU 可执行的目标代码,产生了若干个目标模块。
链接
由链接程序将编译后形成的一组目标模块,以及它们所需要的库函数链接在一起,形成一个完整的装入模块。
装入
由装入程序将装入模块装入内存。
程序的装入(地址的变换)
绝对装入方式
按照物理内存的位置赋予实际的物理地址。
静态地址重定位(可重定位装入方式)
静态地址重定位是指在程序开始运行前,程序中指令和数据的各个地址均已完成重定位,此时就已经完成了虚拟地址到内存地址的变换,并且以后不再改变。
动态地址重定位(动态运行时装入方式)
动态地址重定位方式是在程序执行过程中进行地址变换。
程序的链接
源程序经过编译后,可得到一组目标模块,再利用链接程序将这组目标模块链接,形成装入模块。
根据链接的时间不同,可把链接分为以下三种:
- 静态链接:在程序运行之前,先将各目标模块及它们所需的库函数,链接成一个完整的装配模块,不再拆开。
- 装入时动态链接:将用户源程序编译后所得到的一组目标模块,在装入内存时,采用边装入边链接的链接方式。
- 运行时动态链接:在程序执行中需要该目标模块时,才对某些目标模块进行链接。
1.3.5 程序运行时的内存映像与地址空间
地址空间:指的是一组非负整数地址的集合。
采用虚拟地址的好处:
- 每个进程的虚拟地址空间是独立的,方便操作系统之上的用户编程,在多道程序并发的情况下,防止其他进程的干扰破坏。
- 所有进程的虚拟地址空间的大小和结构划分是一致的,这简化了操作系统对存储器的管理。
- 将主存看做外部存储器的缓存副本,根据实际运行需要进行信息的交换,可以节省主存空间。
程序运行时的内存映像指的是进程在内存中存放和组织的方式,进程会被映射到一个统一的虚拟地址空间。
只读代码和数据区:进程虚拟地址从此区域开始,该区域存放进程的只读代码和只读数据。
可读/写数据区:该区域存放进程的可读可写数据。
运行时堆:由进程在运行时动态创建,该区域可以动态增长和收缩。
共享库:该区域用于存放公共的共享库代码和数据。
用户栈:该区域用来存放局部变量、返回地址、函数调用参数等信息。
操作系统内核区:该区域是操作系统内核使用的地址空间,包括内核程序、代码、内核栈等信息,这些信息对用户程序不可见。
1.4 操作系统的体系结构
1.4.1 分层结构
特性:内核分多层,每层可单向调用更低一层提供的接口。
优点:
- 便于调试和验证,自底向上逐层调试验证。
- 易扩充和易维护,各层之间调用接口清晰固定。
缺点:
- 仅可调用相邻低层,难以合理定义各层的边界。
- 效率低,不可跨层调用,系统调用执行时间长。
1.4.2 模块化
特性:将内核划分为多个模块,各模块之间相互协作。
- 内核 = 主模块 + 可加载内核模块
- 主模块:只负责核心功能。
- 可加载内核模块:可以动态加载新模块到内核,而无需重新编译整个内核。
优点:
- 模块间逻辑清晰易于维护,确定模块间接口后即可多模块同时开发。
- 支持动态加载新的内核模块,增强OS适应性。
- 任何模块都可以直接调用其他模块,无需采用消息传递进行通信,效率高。
缺点:
- 模块间的接口定义未必合理、实用。
- 模块间相互依赖,更难调试和验证。
1.4.3 宏内核(大内核)
特性:所有的系统功能都放在内核里。
优点:性能高,内核内部各种功能都可以直接相互调用。
缺点:
- 内核庞大功能复杂,难以维护。
- 大内核中某个功能模块出错,就可能导致整个系统崩溃。
1.4.4 微内核
特性:
- 只把中断、原语、进程通信等最核心的功能放入内核。
- 进程管理、文件管理、设备管理等功能以用户进程的形式运行在用户态。
优点:
- 内核小功能少、易于维护,内核可靠性高。
- 内核外的某个功能模块出错不会导致整个系统崩溃。
- 添加系统服务时不必修改内核
缺点:
- 性能低,需要频繁切换用户态和核心态。
- 用户态下的各功能模块不可以直接相互调用,只能通过内核的“消息传递”来间接通信。
1.4.5 外核
特性:内核负责进程调度、进程通信等功能,外核负责为用户进程分配未经抽象的硬件资源,且由外核负责保证资源使用安全。
优点:
- 外核可直接给用户进程分配“不虚拟、不抽象”的硬件资源,使用户进程可以更灵活的使用硬件资源。
- 减少了虚拟硬件资源的“映射层”,提升效率。
缺点:
- 降低了系统的一致性。
- 使系统变得更复杂。
1.5 操作系统引导
基本输入输出系统BIOS是一种固化到计算机内主板上的一个只读存储器芯片内的一种固件。
常见操作系统的引导过程:
- 引导程序位于硬盘中,且只会将硬盘中存储的操作系统内核加入到内存,其他部分仅在需要时才加入
1.6 虚拟机
基本概念:虚拟机是一台逻辑计算机,是指利用特殊的虚拟化技术,通过隐藏特定计算平台的实际物理特性,为用户提供抽象的、统一的、模拟的计算环境。
两类虚拟机管理程序(VMM)的对比
第一类VMM | 第二类VMM | |
---|---|---|
对物理资源的控制权 | 直接运行在硬件之上,能直接控制和分配物理资源 | 运行在Host OS之上,依赖于Host OS为其分配物理资源 |
资源分配方式 | 安装Guest
OS时,VMM在原本的硬盘上自行分配存储空间。 类似于外核,分配未经抽象的物理硬件。 |
GuestOS拥有自己的虚拟磁盘,该盘实际上是Host
OS文件系统中的一个大文件。 GuestOS分配到的内存是虚拟内存。 |
性能 | 性能更好 | 性能更差,需要HostOS作为中介 |
可支持的虚拟机数量 | 更多,不需要和HostOS竞争支援,相同的硬件资源可以支持更多的虚拟机 | 更少,HostOS本身需要使用物理资源,HostOS上运行的其他进程也需要物理资源 |
虚拟机的可迁移性 | 更差 | 更好 |
运行模式 | 运行在最高特权级(Ring0),可以执行最高特权的指令 | 部分运行在用户态,部分运行在内核态。 |
3有迷惑性。这顶多叫并发不是并行。多核处理器才能实现并行