### 指令集比较
学会计算理论流水线执行时间:
![](https://gitee.com/cowboy2014/cloud2020-config/raw/master/%20pictures/20210807173247.png)
### 流水线
![](https://gitee.com/cowboy2014/cloud2020-config/raw/master/%20pictures/20210807173502.png)
### 数据读取计算
![](https://gitee.com/cowboy2014/cloud2020-config/raw/master/%20pictures/20210807170904.png)
![](https://gitee.com/cowboy2014/cloud2020-config/raw/master/%20pictures/%E8%AE%A1%E7%AE%97%E9%A2%98-%E6%B5%81%E6%B0%B4%E7%BA%BF%E8%AF%BB%E5%8F%96.png)
#### 单缓冲区:
假定从磁盘把一块数据输入到缓冲区的时间为T,操作系统将该缓冲区中的数据传送到
用户区的时间为M,而CPU 对这一块数据处理的时间为C。
由于T 和C 是可以并行的,当T>C 时,系统对每一块数据的处理时间为M+T,反之则
为M+C,故可把系统对每一块数据的处理时间表示为max(C, T)+M。
#### 双缓冲区:
系统处理一块数据的时间可以粗略地认为是max(C, T)。
## 操作系统
### 操作系统接口
操作系统为用户提供了两类接口:**操作一级**和**程序控制一级**的接口。
![](https://gitee.com/cowboy2014/cloud2020-config/raw/master/%20pictures/20210807174241.png)
### 微内核OS
在设计微内核OS 时,采用了面向对象的技术,其中的“封装”,“继承”,“对象类”和“多态性”,以及在对象之间采用消息传递机制等,都十分有利于提高系统的“正确性”、“可靠性”、“易修改性”、“易扩展性”等,而且还能显著地减少开发系统所付出的开销。采用微内核结构的操作系统与传统的操作系统相比,其优点是提高了系统的灵活性、可扩充性,增强了系统的可靠性,提供了对分布式系统的支持。
其原因如下:
①**灵活性和可扩展性**:由于微内核OS 的许多功能是由相对独立的服务器软件来实现的,当开发了新的硬件和软件时,微内核OS 只须在相应的服务器中增加新的功能,或再增加一个专门的服务器。与此同时,也必然改善系统的灵活性,不仅可在操作系统中增加新的
功能,还可修改原有功能,以及删除已过时的功能,以形成一个更为精干有效的操作系统。
② **增强了系统的可靠性和可移植性**:由于微内核是出于精心设计和严格测试的,容易保证其正确性;另一方面是它提供了规范而精简的应用程序接口(API),为微内核外部的程序编制高质量的代码创造了条件。此外,由于所有服务器都是运行在用户态,服务器与服务器之间采用的是消息传递通信机制,因此,当某个服务器出现错误时,不会影响内核,也不会影响其它服务器。另外,由于在微内核结构的操作系统中,所有与特定CPU 和I/O 设备硬件有关的代码,均放在内核和内核下面的硬件隐藏层中,而操作系统其它绝大部分(即各种服务器)均与硬件平台无关,因而,把操作系统移植到另一个计算机硬件平台上所需作的修改是比较小的。
③ **提供了对分布式系统的支持**:由于在微内核OS 中,客户和服务器之间以及服务器和服务器之间的通信,是采用消息传递通信机制进行的,致使微内核OS 能很好地支持分布式系统和网络系统。事实上,只要在分布式系统中赋予所有进程和服务器惟一的标识符,在微内核中再配置一张系统映射表(即进程和服务器的标识符与它们所驻留的机器之间的对应表),在进行客户与服务器通信时,只需在所发送的消息中标上发送进程和接收进程的标识符,微内核便可利用系统映射表,将消息发往目标,而无论目标是驻留在哪台机器上。