1. 简介

从概念上讲,一台计算机能够形象为下图的模型

CPU,内存以及I/O设施都由一条系统总线连接起来并通过总线与其余设施通信

2. CPU

CPU是计算机的大脑,它从内存中取出指令并执行。

2.1 CPU的工作流程

从内存中取出指令,对取出的指令进行解码,执行,CPU就是始终一直的反复这个过程。

                                                                                                图1.1CPU工作流程

2.2 超标量CPU

流水线作业效率不高,于是就引入了超标量CPU

超标量CPU是这样工作的,多个取值和解码同时进行,取值解码实现后的指令会进入缓冲区,缓冲区对应多个执行单元,每当缓冲区中有指令且有闲暇的执行单元时,就会从缓冲区取出指令进入执行单元执行.

                                                                                                图1.2超标量CPU工作流程

2.3 内核态和用户态

少数CPU多有两种模式,内核态和用户态

在内核态运行时,CPU能够执行指令集的每一条指令,应用硬件的全副性能

在用户态运行时,CPU只能执行指令集的一个子集和拜访所有性能的一个本人

在台式机和服务器上,操作系统在内核态运行。在大多数嵌入式零碎中,一部分操作系统在内核态运行,其余部分在用户态运行

3. 存储器

3.1 存储器分为四个档次

寄存器 高速缓存 内存 硬盘

                                                                                                                图2.1存储器的四层

3.2 寄存器

寄存器存在于CPU中,拜访和CPU一样快,没有时延

3.3 高速缓存

罕用的高速缓存行搁置在CPU外部或十分靠近CPU的地位

3.3.1 高速缓存命中

当程序须要读取一个字时,查看所须要的字是否在高速缓存中,如果在高速缓存中,称为高速缓存命中

如果高速缓存未命中,就要通过总线,把拜访申请传递到内存,这带来了访问速度的降落

PS:缓存

大量的资源存在于计算机存储器的某一处,其中一小部分资源会被频繁的用到,把频繁用的资源放到比大量资源更高层次的存储器中,这就是缓存。

计算机在读取文件时,将硬盘中频繁用的文件放入内存中,这就是缓存的利用。

应用缓存时咱们须要思考几个问题

1)何时把资源放入缓存中

2)把资源放在存储器的哪一层上

3)在缓存满了时,把什么内容从缓存中移走

4)移走的内容又该放到何处

3.3.2 内存

内存通常成为随机拜访存储器(RAM),速度比磁盘快,程序先进入这里执行,内存具备断电数据隐没的个性。

PS:闪存

速度介于内存和磁盘间,断电后数据不隐没

3.4 磁盘

3.4.1 磁盘工作流程

像是老式的唱片机,一个又一个重叠起的圆盘,每个圆盘上配有一个指针,当从磁盘读取数据时指针一直旋转,读取一段环形区域,这段环形区域叫做磁道。

                                                                                                图2.2 磁盘的工作流程

咱们常讲硬盘的转速,多少MB每秒,从磁盘的工作流程上咱们能够理解到,磁盘的转速就是磁盘臂旋转的速度

3.4.2 固态硬盘

固态硬盘和一般磁盘不是同一种工作形式,固态硬盘其实是一种闪存

3.4.3 虚拟内存

计算机的虚拟内存机制就是将磁盘中须要重复读取的内容放到内存中,放慢计算机的速度,也是一种缓存的利用

4. I/O设施

I/O设施分为两个局部 设施控制器和设施自身

4.1 设施控制器

设施控制器是插在电路板上的一块芯片或一组芯片,他是操作系统和设施之间的桥梁,配合操作系统操作设施,操作系统对它发成命令,它对操作系统的命令进行简单的转换,管制设施。

                                                                       图3.1设施控制器

4.2 设施自身

硬盘,键盘,鼠标,显示器等等

设施自身有一个绝对简略的标准化接口,比方创立的SATA硬盘,SATA就是设施的接口名

4.3 设施驱动程序

操作系统如何操作设施控制器呢,这个答案就是在操作系统上装置设施控制程序,设施控制程序负责与控制器对话,收回命令,承受响应。

4.4 实现输入输出的三种形式

1)忙期待:用户程序发动一个零碎调用,内核将其翻译成一个对应设施驱动程序的过程调用。设施驱动程序启动I/O,循环的查看设施是否实现工作,当实现工作后,设施驱动程序将设施返回的数据送到指定的地位,随后操作系统将管制返回给调用者。

毛病:不言而喻,在设施执行实现前,要始终占用CPU,CPU要始终循环的查看,这期间用户什么也不能干

2)中断管制:设施驱动程序启动设施,让该设施在操作实现时收回一个中断,驱动程序将中断传递给操作系统。

3)间接存储器拜访:为I/O操作应用一种非凡的芯片(DMA),它无需继续的CPU干涉,间接管制内存和控制器之间通信,操作实现后,也收回中断。

5. 总线

一条连贯计算机上所有硬件的线

5.1 PCI总线

多个设施应用同一条导线传输数据,当多个设施须要发送数据时,仲裁器决定哪个设施能够应用总线。(曾经过期了)

5.2 PCIe总线

端到端的链路,即每个设施都领有独自的一条导线用来发送数据

6. 启动计算机

学完了计算机相关的硬件常识,咱们来理解一下启动计算机时,计算机外部是如何工作的

首先,BIOS开始运行,它扫描I/O设施,存储器是否装置失常,接着扫描出总线上的所有设施,随后从硬盘中找出一个启动装载模块,这个启动装载模块负责启动操作系统(WINDOWS/LINUX),而后,操作系统询问BIOS取得每种设施的配置信息,操作系统查看对应设施的驱动程序是否装置失常,如果全副失常,操作系统将他们调入内核,创立须要的所有过程,在终端上启动登录程序。