mirror of
https://github.com/Penguin-SAMA/2024-Postgraduate-408.git
synced 2026-05-12 11:05:51 +08:00
Complete ch1
This commit is contained in:
BIN
OperatingSystem/ch1/assets/image-20230318174239025.png
Normal file
BIN
OperatingSystem/ch1/assets/image-20230318174239025.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 56 KiB |
BIN
OperatingSystem/ch1/assets/image-20230318174400336.png
Normal file
BIN
OperatingSystem/ch1/assets/image-20230318174400336.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 74 KiB |
@@ -405,8 +405,106 @@ CPU 通常执行两种不同性质的程序:一种是**操作系统内核程
|
||||
|
||||
**共享库**:该区域用于存放公共的共享库代码和数据。
|
||||
|
||||
用户栈:该区域用来存放局部变量、返回地址、函数调用参数等信息。
|
||||
**用户栈**:该区域用来存放局部变量、返回地址、函数调用参数等信息。
|
||||
|
||||
**操作系统内核区**:该区域是操作系统内核使用的地址空间,包括内核程序、代码、内核栈等信息,这些信息对用户程序不可见。
|
||||
|
||||
## 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在原本的硬盘上自行分配存储空间。<br />类似于外核,分配未经抽象的物理硬件。 | GuestOS拥有自己的虚拟磁盘,该盘实际上是Host OS文件系统中的一个大文件。<br />GuestOS分配到的内存是虚拟内存。 |
|
||||
| 性能 | 性能更好 | 性能更差,需要HostOS作为中介 |
|
||||
| 可支持的虚拟机数量 | 更多,不需要和HostOS竞争支援,相同的硬件资源可以支持更多的虚拟机 | 更少,HostOS本身需要使用物理资源,HostOS上运行的其他进程也需要物理资源 |
|
||||
| 虚拟机的可迁移性 | 更差 | 更好 |
|
||||
| 运行模式 | 运行在最高特权级(Ring0),可以执行最高特权的指令 | 部分运行在用户态,部分运行在内核态。 |
|
||||
|
||||
Reference in New Issue
Block a user