1. 计算机硬件
现代计算机由运算器、存储器、控制器、I/O设备组成。
- 运算器用来完成算术运算和逻辑运算,并将运算中间结果,暂存在运算器内;
- 存储器用来存放数据和程序;
- 控制器用来控制、指挥程序和数据的输入、运行以及处理运算结果;
- I/O设备分别用来实现程序数据的输入和计算结果的输出。
五大部件实际上是在控制器的控制下协调统一地工作。
- 把表示计算步骤的程序和计算中需要的原始数据,在控制器输入命令的控制下,通过输入设备送入计算机的存储器存储。
- 当计算开始时,在取指令作用下把程序指令逐条送入控制器。控制器对指令进行译码,并根据指令的操作要求向存储器和运算器发出存储、取数命令和运算命令,经过运算器计算并把结果存放在存储器内。
- 在控制器的取数和输出命令作用下,通过输出设备输出计算结果。
运算器和控制器在逻辑关系和电路结构上联系十分紧密,这两个部件往往集成在同一芯片上,通常将它们合起来统称为中央处理器,即CPU。所以现代计算机通常有三部分构成:CPU、存储器、I/O设备。
1.1 CPU(控制器+运算器)
CPU的工作核心是从程序或应用程序中获取指令并且执行计算,由控制器和运算器构成。这个过程一共有三个关键阶段:提取,解码和执行。
控制器:CU(Controller Unit)控制器作为计算机系统的指挥中心,其主要功能有:
- 从主存中取出指令,指出下一条指令的地址。
- 进行指令译码、测试,产生对应的控制信号。
- 指挥并控制CPU、主存、输入和输出设备之间的数据流动方向。
指令是指示计算机如何工作的一步操作。上述工作周而复始,保证了计算机能自动连续地工作。
控制器的基本组成
- 程序计数器(Program Counter,PC):也叫指针寄存器,用于指出下一条指令在主存中的存放地址。CPU根据PC的内容去主存中寻找指令。因为程序中的指令通常是顺序执行的,所以PC有自增功能。
- 指令寄存器(Instuction Register,IR):用于保存当前正在执行的指令。
- 存储器地址寄存器:用于存放即将访问的主存单元的地址。
- 存储器数据存储器:用于存放向主存中写入的内容或者从主存中读出的内容。
- 指令译码器(Instruction Decoder,ID):用来对指令寄存器中的指令进行译码分析,指出指令的操作种类和寻址方式,指令译码器的输出作为微操作命令发生器的输入,是产生控制信号的主要依据。
- 时序电路:用于控制操作时间的信号称为时序控制信号。时序电路产生并发出计算机所需的各种时序控制信号,对各种操作进行时间上的控制。时序控制信号有机器周期信号、节拍信号、工作脉冲信号,它们决定每个微操作的开始时刻和操作的持续时间
- 微操作命令发生器:微操作就是不能再分解的操作,执行微操作总是需要相应的控制信号(也称为微操作控制命令)。微操作命令发生器根据指令操作码、时序信号、状态寄存器内容和其他一些信息,产生计算机工作需要的各种控制信号,以便建立正确的数据通路,完成对取指令、分析指令和执行指令的控制。
运算器也称为算术逻辑单元ALU(Arithmetic Logic Unit)。它的功能是完成算术运算和逻辑运算。算术运算是指加、减、乘、除及它们的复合运算。而逻辑运算是指“与”、“或”、“非”等逻辑比较和逻辑判断等操作。在计算机中,任何复杂运算都转化为基本的算术与逻辑运算,然后在运算器中完成。
-
算术逻辑单元:主要功能是进行算术/逻辑运算
-
暂存寄存器:用于暂存从主存读来的数据,该数据不能存放在通用寄存器中,否则会破坏原有内容。对于应用程序而言,暂存寄存器是透明的。
-
累加寄存器:是一个通用寄存器,用于暂时存放ALU运算的结果信息,可以作为加法运算的一个输入端。
-
通用寄存器组:如AX、BX、CX、DX、SP等,用于存放操作数(包括源操作数、目的操作数及中间结果)和各种地址信息。SP是堆栈指针,用于表示栈顶的地址。
-
程序状态字寄存器:保留由算术逻辑运算指令或测试指令的结果而建立的各种状态细信息,如溢出标志(OF)、符号标志(SF)、零标志(ZF)、进位标志(CF)等。PSW中的位参与并决定微操作的形成。
-
移位器:对操作数或者运算结果进行移位操作。
-
计数器:控制乘除运算的操作步数。
1.2 存储器
一个计算机系统中可能存在各种各样的存储器,有CPU内部的寄存器、CPU内的Cache,CPU外的Cache,主板上的主存(内存),主板外的磁盘存储器等等。
主存-辅存层次:为了解决容量问题
缓存-主存层次:为了解决速度问题
存储设备:
- 主存
- 1.随机存储器(Random Access Memory,RAM)是构成内存的主要部分,其内容可以根据需要随时按地址读出或写入,以某种电触发器的状态存储,断电后信息无法保存,用于暂存数据,又可分为DRAM(信息会随时间逐渐消失)和SRAM(在不断电的情况下,信息一直保存)两种
- 2.只读内存(Read-Only Memory,ROM)出厂时其内容由厂家写好,信息已固化在存储器中,只可读出,无法改写
- 辅存
- 1.硬盘:有固态硬盘(SSD 盘,新式硬盘)、机械硬盘(HDD 传统硬盘)、混合硬盘(HHD 一块基于传统机械硬盘诞生出来的新硬盘)。存储资料和软件等数据等,有容量大,断电数据不丢失的特点。
- 2.软盘:软盘存取速度慢,容量也小,但可装可卸、携带方便。
- 3.。。。。
- 缓存:缓存就是数据交换的缓冲区(称作Cache),是介于cpu和主存之间的小容量存储器,存取速度比主存快。能高速的向cpu提供指令和数据,加快程序的执行速度,它的内容为主存一部分内容的副本。当存储器接到有关读取指令时,现在cache中查找此信息是否存在,若有则不经主存直接从cache中取出,否则直接从主存取出,同时写入cache,以备再次使用。cache目的是为了解决cpu和主存速度不匹配的技术。cache用来存放程序中当前最活跃的程序和数据。
1.3 I/O设备
计算机的输入输出设备
a) 按使用特性分类,可以划分为:
- 存储设备,如磁盘、磁带、光盘等。
- 输入/输出设备,如打印机、键盘、显示器、音声输入/输出设备等等。
- 终端设备,包括通用终端、专用终端和虚终端。
- 脱机设备。
b) 按所属关系分类,可划分为:
- 系统设备,指在操作系统生成时已经等机载系统中的标准设备,如打印机、 磁盘等,时钟也是一系统设备。
- 用户设备,指在系统生成时未登记在系统中的非标准设备
c) 按资源分配分类,可划分为:
- 独占设备,通常分配给某个进程,在该进程释放之前,其他进程不能使用。 如打印机和纸带读入机。
- 共享设备,允许若干个进程同时使用。如磁盘机
- 虚拟设备,通过假脱机技术把原来的独占设备改造成若干进程所共享的设 备,以提高设备的利用率。
d) 按传输数据数量分类,可划分为:
- 字符设备,如打印机、终端、键盘等低速设备
- 块设备,如磁盘、磁带等高速外存储器
2. 操作系统概述
操作系统(Operating System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,是用户和计算机的接口,同时也是计算机硬件和其他软件的接口。
操作系统的功能包括管理计算机系统的硬件、软件及数据资源,控制程序运行,改善人机界面,为其它应用软件提供支持等,位于应用软件和计算机硬件之间。
2.1 单核CPU,多核CPU,多CPU
1.CPU个数即CPU芯片个数。
2.CPU的核心数是指物理上,也就是硬件上存在着几个核心。比如,双核就是包括2个相对独立的CPU核心单元组,四核就包含4个相对独立的CPU核心单元组。
多核CPU即多个CPU组成,这些CPU集成在一个芯片里。这些CPU中分配出一个独立的核执行操作系统,这些核通过CPU内部总线来交互数据,共享数据,缓存,并且工作是并行的,资源分配是由操作系统来完成的,操作系统来决定程序cpu的控制权分配。
多CPU即拥有多个CPU的主机,每个CPU只能用来独立执行不同的程序,这些CPU都是单核的,每个CPU有自己的总线,一级二级缓存;多个CPU之间的通讯是通过主板上的总线进行的。
2.2 用户态和内核态
内核态与用户态是操作系统的两种运行级别
- 内核态(Kernel Mode):运行操作系统程序,操作硬件
- 用户态(User Mode):运行用户程序
指令划分
- 特权指令:只能由操作系统使用、用户程序不能使用的指令。
- 启动- I/O
- 内存清零
- 修改程序状态字
- 设置时钟
- 允许/禁止终端
- 停机
- 非特权指令:用户程序可以使用的指令。
- 控制转移
- 算数运算
- 取数指令
- 访管指令(使用户程序从用户态陷入内核态)
特权级别
- R0、R1、R2和R3(0最高,3最低);
- R0相当于内核态,R3相当于用户态;
- 不同级别能够运行不同的指令集合;
CPU状态之间的转换
- 用户态—>内核态:唯一途径是通过中断、异常、陷入机制(访管指令)
- 内核态—>用户态:设置程序状态字PSW
内核态与用户态的区别
- 处于用户态执行时,进程所能访问的内存空间和对象受到限制,其所处于占有的处理器是可被抢占的
- 处于内核态执行时,则能访问所有的内存空间和对象,且所占有的处理器是不允许被抢占的。
用户态和内核态的切换
- 系统调用: 用户态进程通过系统调用申请使用操作系统提供的服务程序完成工作。
- 异常: 在程序运行时产生异常事件(如在目态下执行特权指令),运行程序被打断,转向异常处理程序工作,如缺页异常。
- 外围设备中断: 在程序运行时产生中断事件(如I/O操作完成),运行程序被中断,转向中断处理程序处理。
这3种方式是系统在运行时由用户态转到内核态的最主要方式,其中系统调用可以是用户进程主动发起的,异常和外围设备中断则是被动的。
2.3 单道批处理 VS 多道批处理
单道批处理:为了实现对作业的连续处理,需要先把一批作业以脱机方式输入到磁盘上,并在系统中配上监督程序(Monitor),在它的控制下,使得这批作业能一个接着一个的连续工作。