计算机系统是由硬件系统和软件系统组成的,通过建立系统软件和应用软件来提供解决现实问题的方法。本章简要介绍计算机系统的结构、存储器系统、输入输出系统、指令系统、多处理机系统、操作系统等基础知识。
3.1 计算机系统概述
3.1.1 计算机系统层次结构
从不同角度分析,计莽机系统有不同的划分层次,但通常可划分为包括硬件层、系统层和 应用层的多级层次结构,如图
3.1.2 计算机系统硬件
计算机的硬件由 5 个基本部分组成:运算器、控制器、存储器、输入设备和输出设备,如图
图中实线箭头”—”代表数 据或指令,在计算机内部表现为二进制数;虚线箭头”·---- ►”代表控制信号,在计算机内部起 控制作用。
运算器、控制器等部件被集成在一起,统称为中央处理单元 (Central ProcessingUnit, CPU) 。 CPU 是硬件系统的核心,用于数据的加工处理,能完成各种算术、逻辑运算及控制功能。存储器是计算机系统中的记忆设备,分为内部存储器和外部存储器。前者速度高、容量小, 一般用千临时存放程序、数据及中间结果。而后者容蛋大、速度慢,可以长期保存程序和数据。 输入设备和输出设备合称为外部设备(简称外设),输入设备用于输入原始数据及各种命令,而 输出设备则用千输出计算机运行的结果。
3.1.3 计算机系统软件
按照功能,计算机系统中的软件可以分为系统软件和应用软件两大类。
(l) 系统软件:用千实现计算机系统的管理、调度、监视和服务等功能。通常将系统软件分为 5 类:操作系统、语言处理程序、服务性程序、数据库管理系统和计算机网络软件。
(2) 应用软件:是为解决某种应用问题而编制的一些程序。应用软件是用户或第三方软件 公司为各自业务开发和使用的各种软件,种类繁多。例如,财务管理软件、项目管理软件、营 销管理软件等。
3.2 存储器系统
传统的存储器系统一般分为 高速缓冲存储器 (Cache) 、主存储器、辅助存储器 三级。
存储器中数 据常用的存取方式有 4 种,分别是 顺序存取、直接存取、随机存取和相联存取。
存储器系统主要有 4 个性能指标,分别是 存取时间、存储器带宽、存储器周期和数据传输率。
3.2.1 主存储器
主存储器 (Main Memory)简称主存或内存,是计算机硬件的重要部件,其作用是存放计算机运行时的程序和数据,并能由 CPU 直接随机地进行读/写。
主存可分为 随机存取存储器 (Random Access Memory, RAM)
和只读存储器 (Read Only Memory, ROM)
。
3.2.2 辅助存储器
辅助存储器简称辅存,用于存放需待久性存储的信息。其特点是存储器容量大、可靠性高、价格低。常用的辅存有 磁带存储器、硬盘存储器、磁盘阵列和光盘存储器等。
- 磁带存储器:磁带的优点是存储容量大、便千携带、价格便宜,缺点是存取速度慢。
- 硬盘存储器:机械硬盘 (HDD) 、固态硬盘( SSD) 和混合硬盘( SSHD) 。
- 磁盘阵列:廉价磁盘冗余阵列 (Redundant Array of Inexpensive Disks, RAID) 技术旨在缩小日益扩大 的 CPU 速度和磁盘存储器速度之间的差距。
- 光盘存储器:光盘存储器是利用激光束在记录表面存储信息,根据激光束的反射光来读出信息。根据性能和用途的不同,光盘存储器可分为 4 种类型,分别为 CD-ROM、 CD-R、 CD-RW 和 DVD-ROM 。
3.2.3 高速缓冲存储器
Cache 的功能是提高 CPU数据输入输出的速率,突破所谓的“冯·诺依曼瓶颈",即 CPU 与存储系统间的数据传送带宽限制。高速存储器能以极高的速率进行数据的访问,但其价格高昂,通常在 CPU 和内存之间设置小容簸的 Cache, 利用 Cache 速度快的特点,通过优化调度算法,使系统的性能得到改善。
3.2.4 网络存储技术
常用的网络存储技术主要有以下三种: 直接附加存储 (Direct Attached Storage, DAS)
、网络附加存储( NetworkAttached Storage, NAS)
和 存储区域网络 (StorageArea Network, SAN)
。
- 直接附加存储:DAS 是将存储设备通过 SCSI (Small Computer System Interface, 小型计算机系统接口)电 缆直接连到服务器,其本身是硬件的堆叠,存储操作依赖千服务器,不带有任何存储操作系统。
- 网络附加存储:NAS 的存储设备类似于一个专用的文件服务器,它去掉了通用服务器的大多数计算功能, 而仅仅提供文件系统功能,从而降低了设备的成本。
- SAN 是通过专用交换机将磁盘阵列与服务器连接起来的高速专用子网。它没有采用文件共 享存取方式,而是采用块( block) 级别存储。
3.2.5 虚拟存储技术
虚拟存储( Virtual Storage) 是指把多个存储介质模块(例如,硬盘、 RAID 等)通过一定 的手段集中管理,形成统一管理的存储池( Storage Pool), 为用户提供大容矗、高数据传输性能的存储系统。
3.3 输入输出系统
输入输出系统简称I/0系统,它由I/0设备、I/0接口(I/0控制器)、 I/0控制管理软件等组成。 I/0 系统将各种l/0 设备有效地入计算机系统,将计算机外部信息输入到计算机内部(简称为输入操作),以便进行加工处理;将计算机内部存储和加工处理的信息输出到计算机之外 (简称为输出操作),以提供给计算机外部设备使用。
3.3.1 输人输出工作方式
在计算机中,l/0 系统可以有 5 种不同的工作方式,分别是 程序控制方式、程序中断方式、DMA 工作方式、通道方式、l/0 处理机。
3.3.2 总线
1.总线的分类
总线有不同的分类方式,主要有如下 4种分类方法:
(1) 按总线功能,可分为地址总线、数据总线、控制总线三类。
(2) 按总线在微机系统中的位置,可分为机内总线和机外总线两种。
(3)按总线功用,主要分为局部总线、系统总线、通信总线三类。
(4) 按总线中数据线的多少,可分为并行总线和串行总线两类。
2. 总线标准
总线标准主要规定总线的机械结构规范、功能结构规范和电气规范。总线标准可以分为正式标准和工业标准,其中正式标准是由 IEEE等国际组织正式确定和承认的标准;工业标准也称为事实标准,是首先由某一厂家提出,然后得到其他厂家广泛使用的标准。
3.总线的性能指标
通常,总线规范中会详细描述总线各方面的特性,包括 物理特性、功能特性、电气特性和时间特性。
- 物理特性又称为机械特性,它规定了总线的线数,以及总线的插头、插座的形状、 尺寸和信号线的排列方式等要素;
- 功能特性描述总线中每一根线的功能;
- 电气特性定义了每根 线上信号的传递方向及有效电平范围;
- 时间特性规定了每根线在什么时间有效以及不同信号之间相互配合的时间关系。
总线的主要性能指标包括如下 5 种:
(1)总线宽度。总线宽度指的是总线的线数,它决定了总线所占的物理空间和成本。
(2)总线带宽。总线宽度指总线的最大数据传输速率,即每秒传输的字节数,单位可以用 字节/秒 (B/S) 表示。
(3)总线负载。总线负载是指连接在总线上的最大设备数蛋。大多数总线的负载能力是有限的。
(4) 总线分时复用。总线分时复用是指在不同时段利用总线上同一个信号线传送不同信号。
(5) 总线猝发传输。猝发式数据传输是一种总线传输方式,即在一个总线周期中可以传输 存储地址连续的多个数据。
3.3.3 I/O接口
I/O 接口也称为 VO 控制器,它是主机 和外设(外部设备)之间的界面,通过接口可以实现主机和外设之间的信息交换。
1. 1/0 接口的功能
通常, VO 接口的功能主要包括如下 5 个方面:
(1)实现主机和外设的通信联络控制。
(2) 进行地址译码和设备选择。
(3)实现数据缓冲
(4) 数据格式的变换。
(5) 传递控制命令和状态信息。
3.4 指令系统
指令是指示计算机执行某些操作的命令,一台计算机的所有指令的集合构成指令系统,也 称为指令集。指令系统是计算机系统中软件与硬件分界面的一个主要标志。无论结构多么复杂、
功能多么强大的软件,凡是能够在机器上直接运行的目标程序,都是由若干条机器指令组成的。 在计算机系统中,指令系统的设计是非常关键的环节,通常由软件设计人员和硬件设计人
员共同完成。
3.4.1 基木指令系统
在实际的系统设计时,某项功能是用硬件实现还是用软件实现,主要考虑三个方面的因素,分别是速度、价格和灵活性。用硬件的指令来实现,速度快、价格高、灵活性差;用软件的子程序来实现,速度慢、价格低、灵活性好。
1. 设计要求
设计指令系统时的基本要求包括指令系统的 完整性、规整性、高效率和兼容性。
2.基本指令
通用计算机系统的基本指令有 数据传送类指令、运算类指令、程序控制类指令、I/0 指令、 处理机控制和调试指令。
3.4.2 复杂指令系统
为了增强指令的功能,设置一些功能复杂的指令,把一些原来由软件实现的、常用的功能 改用硬件来实现,这种计算机系统称为复杂指令系统计算机 (Complex Instruction Set Computer, CISC)
, 简称复杂指令系统。
1. CISC 的特点
CRSC 的主要特点如下:
(1)指令数量众多。指令系统拥有大量的指令,通常有 100~250 条左右。
(2) 指令使用频率相差悬殊。最常使用的是一些比较简单的指令,仅占指令总数的 20%, 但在程序中出现的频率却占 80%, 而大部分复杂指令却很少使用。
(3)支持很多种寻址方式。支持的寻址方式通常有 5~20 种。
(4) 变长的指令。指令长度不是固定的,变长的指令增加了指令译码电路的复杂性。
(5) 指令可以对主存单元中的数据直接进行处理。典型的 CISC 通常都有指令能够直接对主存单元中的数据进行处理,其执行速度较慢。
(6) 以微程序控制为主。 CISC 的指令系统很复杂,难以用硬布线逻辑(组合逻辑)电路实 现控制器,通常采用微程序控制。
2. CISC 的缺陷
CISC 主要存在如下三个方面的问题:
(1) 80-20 规律。在 CISC 中,指令使用频率不均衡,即各种指令的使用频率相差悬殊。大量统计数字表明,大约有 20%的指令使用频率比较高,占据了 80%的处理机时间。换句话说, 有 80%的指令只在 20%的处理机运行时间内才被用到。
(2) CISC 结构指令系统的复杂性给 VLSI (超大规模)设计增加了负担,不利于单片集成。 但随蒂 VLSI 集成度迅速提高,生产单芯片处理机已成为现实。在单芯片处理机内,希望采用规整的硬布线控制逻辑,而不是用微程序。
(3)软硬件的功能分配问题。为了支持目标程序的优化,支持高级语言和编译程序,在CISC 中增加了许多复杂的指令。这些复杂指令简化了目标程序,缩小了高级语言与机器指令之间的语义差距,但这是以增加硬件的复杂程度、指令执行周期长为代价的。
3.4.3 精简指令系统
精简指令系统计算机 (Reduced Instruction Set Computer, RISC) 简称精简指令系统,该系 统不是简单地把指令系统进行简化,而是通过简化指令的途径使计算机的结构更加简单、合理,以减少指令的执行周期数,从而提高运算速度。
1. RISC 的特点
RISC 要求指令系统简化,操作在单周期内完成,指令格式力求一致,寻址方式尽可能减少,并提高编译的效率,最终达到加快机器处理速度的目的。 RISC的主要特点如下:
(1) 指令数量少。优先选取使用频率最高的一些简单指令和常用指令,避免使用复杂指令。 只提供了 LOAD (从存储器中读数)和 STORE (把数据写入存储器)两条指令对存储器操作,其余所有的操作都在 CPU 的寄存器之间进行。
(2) 指令的寻址方式少。通常只支持寄存器寻址、立即数寻址和相对寻址方式。
(3)指令长度固定,指令格式种类少。 RISC 指令数量少、格式种类少、相对简单,其指令 长度固定,指令之间各字段的划分比较一致,译码相对容易。
(4) 以硬布线逻辑控制为主。为了提高操作的执行速度,通常采用硬布线逻辑(组合逻辑) 来构建控制器。
(5) 单周期指令执行,采用流水线技术。因为简化了指令系统,很容易利用流水线技术, 使得大部分指令都能在一个机器周期内完成。少数指令可能需要多周期,例如, LOAD/STORE 指令因为需要访问存储器,其执行时间就会长一些。
(6) 优化的编译器。 RISC 的精简指令集使编译工作简单化。因为指令长度固定、格式种类 少、寻址方式少,编译时不必在具有相似功能的许多指令中进行选择,也不必为寻址方式的选 择而费心,同时易千实现优化,从而可以生成高效率执行的机器代码。
(7) CPU 中的通用寄存器数量多,一般在 32 个以上,有的可达上千个。
2. RISC 的关键技术
RISC 要达到很高的性能,必须有相应的技术支持。目前,在 RISC 处理机中采用的主要技术有如下几种:
(1)延迟转移技术。
(2) 指令取消技术。
(3)重叠寄存器窗口技术。
(4) 指令流调整技术。
(5) 逻辑实现以硬件为主,固件为辅。
在实际应用中,商品化的 RISC 机器并不是纯粹的 RISC。为了满足应用的需要,实际应用的 RISC 除了保持 RISC 的基本特色之外,还必须辅以一些必不可少的复杂指令(例如,浮点运算、十进制运算指令等)。这种机器实际上是在 RISC 基础上实现了 RISC 与 CISC 的完美结合。
3.5 多处理机系统
流水线计算机通过多级流水的同时操作来获得高性能,但只能执行单个程序。而且,由千器件本身的限制,任何处理机的速度都是有限的。要想突破这个限制,就必须使用多个处理机并行 执行。
3.5.1 多处理机系统概述
多处理机 (MultiProcessor)
具有两个或两个以上的处理机,共享 I/O子系统,在操作系统 统一控制下,通过共享主存或高速通信网络进行通信,协同求解一个个复杂的问题。多处理机通过利用多台处理机进行多任务处理来提高速度,利用系统的重组能力来提高可靠性、适应性 和可用性。
1 多处理机系统的分类
多处理机有多个处理单元,这就产生了多个处理单元如何访问内存的问题。通常有两种方式: 共享存储方式 (Shared Memory, SM)和分布式存储方式。
3.5.2 海量并行处理结构
MPP 系统的定义随着时间推移在不断地变化。按照当前的标准,具有几百或几千台处理机 的任何机器就是 MPP。显然,随着计算机技术的快速发展,对并行度的要求会愈来愈高。 MPP 系统最重要的特点是进行大规模并行处理。
3.5.3 对称多处理机结构
SMP 也称为共享存储多处理机,它与 MPP 最大的差别在千存储系统。SMP 有一个统一共享的SM, 而MPP则是每个处理机都拥有自己的LM。
1 .共享存储模型
共享存储方式有三种模型: 均匀存储器存取 (Uniform Memory Access, UMA)模型,非均
匀存储器存取 (NonuniformMemoryAccess, NUMA) 模型和只用高速缓存的存储器结构 (Cache Only Memory Architecture, COMA) 模型。这些模型的区别在千存储器和外设如何共享或分布。
2. S2MP 的体系结构
从本质上来看, S2MP 是一种 NUMA 结构,每个 结点由处理机和存储器两部分组成,存储器靠近处理机,而不是集中在某个地方,处理机可以访问 LM 获取数据。
3.5.4 互连网络
互连网络是用来连接一个计算机系统中的各处理部件、存储模块以及各种外设,在系统软件控制下,使各功能部件相互通信的硬件网络结构。目前,互连网络已经成为并行处理系统的 核心组成部分,它对整个计算机系统的性能/价格比有着决定性的影响。
3.6 操作系统
传统计算机系统资源分为硬件资源和软件资源。硬件资源包括中央处理机、存储器和输入/输出设备等物理设备;软件资源是以文件形式保存在存储器上的程序和数据等信息。现代计算机系统资源管理范围已经扩展到感知、能源、通信资源和服务资源。本节主要介绍传统计算机系统资源管理。
3.6.1 操作系统概述
1.操作系统的定义及作用
操作系统( OS) 能有效地组织和管理系统中的各种软/硬件资源,合理地组织计算机系统工作流程,控制程序的执行,并且向用户提供一个良好的工作环境和友好的接口。
2.操作系统的特征与功能
操作系统是控制和管理计算机软/硬件资源,以尽可能合理、有效的方法组织多个用户共 享多种资源的程序集合。它具有并发性、共享性、虚拟性和不确定性等特点,一般的操作系统都具有 处理机管理、存储器管理、设备管理、文件管理和用户接口 等 5 种主要功能。
3.操作系统的分类
通常,操作系统可分为 批处理操作系统、分时操作系统、实时操作系统、网络操作系统、分布式操作系统和嵌入式操作系统等类型。本节主要介绍后 5 种。
3.6.2 进程管理
1. 进程的状态与状态模型图
进程一般有三种基本状态:运行、就绪和阻塞。进程的三态模型如图3-12。对于一个实际的系统,进程的状态及其转换更复杂。例如,引入新建态和终止态, 构成了进程的五态模型,如图3-13。
2.信号量与 PV 操作
信号量机制是一种有效的进程同步与互斥工具。目前, 信号量机制有了很大的发展,主要有整型信号量、记录型信号量和信号量集机制。
3. 产生死锁的原因及处理策略
产生死锁的 4 个必要条件如下:
(1) 互斥条件。任一时刻只允许一个进程使用资源。
(2) 不剥夺条件。进程已经占用的资源,不会被强制剥夺。
(3)请求与保持条件。进程在请求其余资源时,不主动释放已经占有的资源。
(4) 环路条件。环路中每一条边是进程在请求另一个进程已经占有的资源。
死锁的处理策略主要有 4 种: 驼鸟策略(即不理睬策略)、预防策略、避免策略和检测与解除死锁。
4. 线程
传统的进程有两个基本属性:可拥有资源的独立单位;可独立调度和分配的基本单位。
引入线程后,将传统进程的两个基本属性分开,线程作为调度和分配的基本单位,进程作为独立分配资源的单位。
3.6.3 存储器管理
存储器管理的对象是主存存储器,简称为主存或内存。存储器是计算机系统中的关键性资源,是存放各种信息的主要场所。如何对存储器实施有效的管理,不仅直接影响存储器的利用 率,而且还对系统性能有很大的影响。存储器管理的主要功能包括主存空间的分配和回收、提 高主存的利用率、扩充主存、对主存信息实现有效保护。
存储器管理的主要目的是解决多个用户使用主存的问题,其存储管理方案主要包括 分区存储管理、分页存储管理、分段存储管理、段页式存储管理以及虚拟存储管理 。
3.6.4 设备管理
在计算机系统中,将负责管理设备和输入/输出的机构称为 I/0 系统。I/0 系统由设备、控制器、通道(具有通道的计算机系统)、总线和I/0 软件组成。
设备管理的目标主要是提高设备的利用率,为用户提供方便、统一的界面。提高设备的利用率,就是提高 CPU 与 1/0 设备之间的并行操作程度。在设备管理中,主要利用的技术有中断 技术、 DMA 技术、通道技术和缓冲技术。
3.6.5 文件管理
文件管理系统是操作系统中实现文件统一管理的一组软件和相关数据的集合,是专门负责管理和存取文件信息的软件机构,简称文件系统。
3.6.6 作业与用户界面
1 .基本概念
作业是系统为完成一个用户的计算任务(或一次事务处理)所做的工作总和。例如,对用 户编写的源程序,需要经过编译、连接、装入及执行等步骤得到结果,这其中的每一个步骤称 为作业步。在操作系统中用来控制作业进入、执行和撤销的一组程序称为作业管理程序。操作 系统可以为每个作业创建作业步进程,完成用户的工作。
3.6.7 国产操作系统
国产操作系统主要以开源的 Linux 为基础进行二次开发,目前认知度较高的国产操作系统 主要包括银河麒麟、深度、统信、中标麒麟、红旗 Linux、安超 OS、中科方德和 StartOS 等。
(1) 银河麒麟操作系统 CKylinOS) 是由国防科技大学、中国软件与技术服务股份有限公 司、联想集团、浪潮集团有限公司和民族恒星公司合作研制的。其目标是打破国外操作系统的 垄断,研发一套中国自主知识产权的服务器操作系统。该系统完全版共包括三个版本:实时版、安全版、服务器版。
(2) 深度操作系统( deepin) 是基千 Linux 内核,以桌面应用为主的开源 GNU/Linux 操作
系统,支持笔记本、台式机和一体机。该系统包含深度桌面环境 (DDE) 和近 30 款深度原创应 用,以及数款来自开源社区的应用软件,支撑广大用户日常的学习和工作。
(3)统信操作系统 (UOS) 是由统信软件技术有限公司研发的,基千 deepin 进行深度开 发,目前已是一款较为完善的系统。
(4) 中标麒麟操作系统是由上海中标软件有限公司发布的面向桌面应用的操作系统。采用强化的 Linux 内核,分桌面版、通用版、高级版和安全版等。
(5) 红旗Linux是由北京中科红旗软件技术有限公司开发的一系列Linux发行版,包括桌 面版、工作站版、数据中心服务器版、 HA 集群版和红旗 Linux 嵌入式版。红旗 Linux 是国内较 大、较成熟的 Linux 发行版,也是比较出名的国产操作系统之一。
(6) 安超 OS 2020 是一套基千服务器架构的通用型云操作系统,具有软硬件解耦、应用优 化、支持混合业务负载等特点。为企业提供高性能、高可用、高效率且易千安装维护的 IT基础 设施平台,加速政府和企业上云进程,为推动企业数字化转型提供完整的一站式企业上云的云操作系统平台和生态解决方案。
(7) 中科方德基千核高基(核心电子器件、高端通用芯片及基础软件产品)桌面操作系统基础版,采用核高基安全加固内核,与基于国产兆芯处理器的整机进行全面适配和深度优化,安装简单,易配置。
(8) **StartOS (起点操作系统)**的前身是由广东雨林木风计算机科技有限公司的ylmfos 开发组所研发的ylmfos。该系统是从 Linux底层构建的,拥有完全自主的核心配置及特色。具有全 新的包管理、全新的操作界面,是一个非常符合中国人操作习惯的桌面 Linux操作系统。