操作系统笔记_计算机硬件

AeYFSI.png

什么是操作系统

操作系统是一种运行在内核态的软件。它具有对所有硬件的完全访问权,可以执行机器能够运行的任何指令。

作为扩展机器的操作系统

操作系统的主要任务是隐藏硬件,呈现给程序良好、清晰、优雅、一致的抽象。(软件开发过程中也应该秉承此理念)

作为资源管理者的操作系统

操作系统的任务是在相互竞争的程序之间有序地控制对处理器,存储器以及其他 I/O 接口设备的分配
资源管理包括两种方式实现多路复用资源:

  • 时间复用:不同的程序或用户轮流使用资源
  • 空间复用:每个用户或程序都得到资源的一部分

计算机硬件

AeBGo6.png
简单的计算机模型:CPU,内存以及 I/O 设备由一条系统总线连接起来,并通过总线与其他设备通信。现代个人计算机更加复杂,包含多重总线。

处理器

CPU 是计算机的“大脑”,一个基本周期是,从内存中取出指令,解码,接着执行。由于用来访问内存以得到指令或数据的时间,比执行指令的时间长得多,因此,所有 CPU 内都有一些用来保存临时数据和关键变量的寄存器。

流水线

许多现代 CPU 具有的,同时取出多条指令的机制。

比流水线更先进的设计是一种超标量 CPU ,两个或更多指令被同时取出,解码并装入保持缓冲区,一旦有执行单元空闲,就检查保持缓冲区是否有待执行的指令。
AesEdI.png

多线程和多核芯片

多线程允许 CPU 保持两个不同的线程状态,然后在纳秒级的时间尺度内来回切换。

存储器

目前的技术无法同时满足存储器迅速,充分大,便宜这三个目标,因此,存储器采用了一种分层结构。
AeytHA.png

寄存器

与 CPU 同种材料,因此和 CPU 一样快,但容量极小。

高速缓存

多数由硬件控制,主存被分割成高速缓存行,最常用的高速缓存行放置在 CPU 内部或者非常接近 CPU 的高速缓存中。有些机器具有两级甚至三级高速缓存,每一级高速缓存比前一级慢且容量大。

L1 缓存:在 CPU 中,通常用来将已解码的指令调入 CPU 的执行引擎。
L2 缓存:用来存放近来使用过的若干兆内存字。

访问 L1 缓存不存在延时,访问 L2 缓存则会延时一个或两个时钟周期。

主存 (RAM)

存储系统的主力,所有不能再高速缓存中得到满足的访问请求都会转往主存

磁盘

磁盘是一种机械装置,因此随机访问数据的时间较慢。

磁带

经常用于磁盘备份,可以保存非常大量的数据集。

I/O 设备

I/O 设备一般包括设备控制器设备本身

实现输入和输出的方式:

  • 忙等待:CPU 一直轮询设备直到相应的操作完成
  • 设备驱动程序启动设备,并让该设备在完成操作时发出一个中断
  • 为 I/O 使用一种特殊的直接存储器访问

总线

现代处理器和存储器的速度越来越快,早期的单总线模型很难处理总线的交通流量,演化结果是,系统中有传输速度和功能都不同的总线。
Am2tXT.png

  • 即插即用 I/O 系统:系统自动收集有关 I/O 设备的信息,集中赋予中断级别与 I/O 地址,然后通知每块卡所使用的数值。