系统架构设计师(一):计算机系统基础知识
系统架构设计师(一):计算机系统基础知识
- 引言
- 计算机系统概述
- 计算机硬件
- 处理器
- 处理器指令集
- 常见处理器
- 存储器
- 总线
- 总线性能指标
- 总线分类
- 按照总线在计算机中所处的位置划分
- 按照连接方式分类
- 按照功能分类
- 接口
- 接口分类
- 计算机软件
- 文件系统
- 文件类型
- 文件结构
- 文件的逻辑结构
- 文件的物理结构
- 文件存取方法
- 文件存储空间的管理方法
- 位示图计算题
- 文件共享
- 文件保护
- 中间件
- 中间件分类
- 软件构件
- 软件构件的组装模型
- 商用构件的标准规范
引言
本文对应《系统架构设计师教程》(以下简称官方教材)第二章部分章节内容。官方教材中,第二章作为核心知识章节,全面涵盖了计算机硬件、软件、操作系统、嵌入式系统等多领域基础内容。然而,从历年考试命题趋势来看,操作系统、嵌入式系统、计算机网络及系统性能模块是考查的重点,其考察内容远远超过官方教材中罗列的知识点,后续我们将对这些高频考点进行专项深度解析。为避免知识庞杂导致学习负担过重,本文将聚焦计算机硬件、计算机软件两大基础板块,帮助大家夯实根基,为后续的重点突破做好铺垫。
计算机系统概述
计算机系统是指用于数据管理的计算机硬件、 软件及网络组成的系统。它是按人的要求接收和存储信息,自动进行数据处理和计算, 并输出结果信息的机器系统。典型计算机系统的组成结构如下图所示:
从上图可以看出,典型计算机系统的组成主要分为硬件和软件两大模块。
计算机硬件
计算机硬件源于传统冯·诺依曼计算机结构,包含五大构件:运算器、控制器、存储器、输入设备和输出设备。
- 运算器和控制器是中央处理器(CPU)的核心处理部件。
- 存储器分为内存和外存。内存一般以GB为单位,其特点是断电数据易丢失,无法持久化保持,但是速度快,效率高。外存通常指硬盘,一般以GB或TB为单位,其特点是容量大,速度慢,数据可以持久化保存。
- 输入设备和输出设备统称为I/O设备(Input/Output)。
处理器
处理器指令集
处理器指令集包括复杂指令集(CISC)和精简指令集(RISC),两者对比如下所示:
维度 | CISC | RISC |
---|---|---|
指令数量 | 指令多,通常 >200 条(如 x86 有上千条指令) | 指令少,通常 <100 条(如 ARM 有 64 条核心指令) |
指令长度 | 不固定长(1-15 字节) | 长度相对固定(通常 4 字节) |
执行周期 | 多周期,1-20 个周期不等 | 单周期指令,大多 1 个周期内 |
实现方式 | 微程序控制 | 硬布线逻辑 |
执行效率 | 效率低 | 效率高 |
典型应用 | Intel系列(如 i5/i7/i9)、AMD Ryzen 系列(如 x86) | ARM、POWER |
常见处理器
- 图形处理器GPU:一种特殊类型的处理器,具有数百或数千个内核,经过优化可并行运行大量计算,因此近些年在深度学习和机器学习领域得到了广泛应用。
- 信号处理器DSP:专用于实时的数字信号处理,通过采用饱和算法处理溢出问题,通过乘积累加运算提高矩阵运算的效率,以及为傅里叶变换设计专用指令等方法,在各类高速信号采集的设备中得到广泛应用。
- 可编程逻辑门阵列FRGA。
- 通用处理器CPU。
存储器
存储器是利用半导体、磁、光等介质制成用于存储数据的电子设备。根据存储器的硬件结
构可分为SRAM、DRAM、NVRAM、Flash、EPROM、Disk等。计算机系统中的存储器通常采
用分层的体系结构,按照与处理器的物理距离可分为4个层次:
- 片上缓存:又称为片内缓存,即芯片内直接继承的缓存,在处理器核心中直接集成的缓存,一般为 SRAM结构,实现数据的快速读取。它容量较小,一般为16kB~512kB, 按照不同的设计可能划分为一级或二级。其特点是容量最小,速度最快。
- 片外缓存:类似于Cache,在处理器核心外的缓存,需要经过交换互联开关访问,一般也是由SRAM构成,容量较片上缓存略大,可以为256kB~4MB。 按照层级被称为 L2Cache或 L3Cache, 或者称为平台Cache。
- 主存(内存):通常采用 DRAM结构,以独立的部件/芯片存在,通过总线与处理器连接。 DRAM依赖不断充电维持其中的数据,容量在数百M B 至数十G B 之间。
- 外存:可以是磁带、磁盘、光盘和各类Flash等介质器件,这类设备访问速度慢,但容量大,且在掉电后能够保持其数据。
总线
总线 是指计算机部件间 遵循某一特定协议实现数据交换的形式,即以一种特定格式按照规定的控制逻辑实现部件间的数据传输。
总线性能指标
总线的性能指标常见的有总线带宽、总线服务质量QoS、 总线时延和总线抖动等。
总线分类
按照总线在计算机中所处的位置划分
按照总线在计算机中所处的位置划分为内总线、系统总线和外部总线。
- 内总线:用于各类芯片内部互连,也可称为片上总线 或片内总线。
- 系统总线:指计算机中CPU、 主存、 I/O 接口的总线,计算机发展为多总线结构后,系统总线的含义有所变化。
- 狭义的系统总线仍为CPU与主存、通信桥连接的总线。
- 广义上,还应包含计算机系统内,经由系统总线再次级联的总线,常被称为局部总线。
- 外部总线:计算机板和外部设备之间,或者计算机系统之间互联的总线,又称为通信总线。
按照连接方式分类
按照连接方式分类,可分为并行总线和串行总线。
- 并行总线:主要包括PCI、PCle和ATA(IDE) 等,其特点是效率高、传输距离短。
- 串行总线:主要包括USB、SATA、CAN、RS-232、RS-485、RapidIO和以太网等,其特点是效率低、传输距离长。
按照功能分类
按照功能分类,可划分为数据总线、地址总线、控制总线。
接口
接口是指同一计算机不同功能层之间的通信规则。
接口分类
- 显示类接口:HDMI、DVI 和 DVI等。
- 音频输入输出类接口:TRS、RCA、XLR等。
- 网络类接口:RJ45、FC等。
- PS/2接口
- USB接口
- SATA接口
- LPT打印接口
- RS-232 接口
注:对于总线而言,一种总线可能存在多种接口。
计算机软件
文件系统
文件 (File) 是具有符号名的、在逻辑上具有完整意义的一组相关信息项的集合,是一种抽象机制,它隐藏了硬件和实现细节,提供了将信息保存在外存上而且便于以后读取的手段,使用户不必了解信息存储的方法、位置以及存储设备实际操作方式便可存取信息。
一个文件包括文件体和文件说明。文件体是文件真实的内容;文件说明是操作系统为了管理文件所用到的信息,包括文件名、文件内部标识、文件类型、文件存储地址、文件长度、访问权限、建立时间和访问时间等。
文件系统是操作系统中实现文件统一管理的一组软件和相关数据的集合,是专门负责管理和存取文件信息的软件机构。文件系统的功能包括按名存取、统一的用户接口、并发访问和控制、安全性控制、优化性能、差错恢复。
- 按名存取:即用户可以“按名存取”,而不是“按地址存取”。
- 统一的用户接口:在不同设备上提供同样的接口,方便用户操作和编程。
- 并发访问和控制:在多道程序系统中支持对文件的并发访问和控制。
- 安全性控制:在多用户系统中的不同用户对同一文件可有不同的访问权限。
- 优化性能:采用相关技术提高系统对文件的存储效率、检索和读/写性能。
- 差错恢复:能够验证文件的正确性,并具有一定的差错恢复能力。
文件类型
- 按文件的性质和用途分类可将文件分为系统文件、库文件和用户文件。
- 按信息保存期限分类可将文件分为临时文件、档案文件和永久文件。
- 按文件的保护方式分类可将文件分为只读文件、读/写文件、可执行文件和不保护文件。
- UNIX系统将文件分为普通文件、目录文件和设备文件(特殊文件)。
文件结构
文件的结构是指文件的组织形式。从用户角度看到的文件组织形式称为文件的逻辑结构;从实现的角度看,文件在文件存储器上的存放方式称为文件的物理结构。
文件的逻辑结构
- 有结构的记录式文件:由一个以上的记录构成的文件;在记录式文件中,所有的记录通常都是描述一个实体集的,有着相同或不同数目的数据项,记录的长度可分为定长(指文件中所有记录的长度相同)和不定长(指文件中各记录的长度不相同)两类。
- 无结构的流式文件:由一串顺序字符流构成的文件。无结构的流式文件的文件体为字节流,不划分记录。无结构的流式文件通常采用顺序访问方式,并且每次读/写访问可以指定任意数据长度,其长度以字节为单位。
文件的物理结构
- 连续结构:也称顺序结构,它将逻辑上连续的文件信息依次存放在连续编号的物理块上。只要知道文件的起始物理块号和文件的长度,就可以很方便地进行文件的存取。逻辑上相邻,物理上也相邻。
- 链接结构:也称串联结构,它将逻辑上连续的文件信息存放在不连续的物理块上,每个物理块设有一个指针指向下一个物理块。因此,只要知道文件的第1个物理块号,就可以按链指针查找整个文件。逻辑上相邻,物理上不相邻。
- 索引结构:将逻辑上连续的文件信息存放在不连续的物理块中,系统为每个文件建立一张索引表(类似目录)。索引表记录了文件信息所在的逻辑块号对应的物理块号,并将索引表的起始地址放在与文件对应的文件目录项中。
- 多个物理块的索引表:多个物理块的索引表可以有两种组织方式:链接文件和多重索引方式。
文件存取方法
- 顺序存取方法是指对文件中的信息按顺序依次进行读/写。
- 随机存取方法是指对文件中的信息可以按任意的次序随机地读/写。
文件存储空间的管理方法
- 空闲区表:将外存空间上的一个连续的未分配区域称为“空闲区”。操作系统为磁盘外存上的所有空闲区建立一张空闲表,每个表项对应一个空闲区,空闲表中包含序号、空闲区的第1块号、空闲块的块数和状态等信息。它适用于连续文件结构。
- 位示图:这种方法是在外存上建立一张位示图(Bitmap),记录文件存储器的使用情况。每一位对应文件存储器上的一个物理块,取值0和1分别表示空闲和占用。
- 空闲块链:每个空闲物理块中有指向下一个空闲物理块的指针,所有空闲物理块构成一个链表。
- 成组链接法: UNIX 系统采用该方法。例如,在实现时系统将空闲块分成若干组,每100个空闲块为一组,每组的第1个空闲块登记了下一组空闲块的物理盘块号和空闲块总数。
位示图计算题
题1:
如下所示,每个字字长为8bit,字编号、位编号、磁盘块编号都是从0开始,请问第64块磁盘应该放在几号字的几号位?
解析:由于字编号、位编号、磁盘块编号都是从0开始的,所以第64块磁盘应该对应编号65。
65/8 = 8…1,因此放在第9个字(第8个字放不下),编号8;放在第1位,编号0。
题2:
某字长为32位的计算机文件管理系统采用位示图记录磁盘使用情况。若磁盘容量为300GB,物理块大小为1MB,那么位示图的大小为多少个字?
解析:300GB /1MB/32 = 9600
文件共享
文件共享通常采用文件链接的方式,常见的文件链接有硬链接和符号链接两种。
- 硬链接:两个文件目录表目指向同一个索引结点的链接,该链接也称基于索引结点的链接。换句话说,硬链接是指不同文件名与同一个文件实体的链接。文件硬链接不利于文件主删除它拥有的文件,因为文件主要删除它拥有的共享文件,必须首先删除(关闭)所有的硬链接,否则就会造成共享该文件的用户的目录表目指针悬空。
- 符号链接:又称软连接,建立新的文件或目录,并与原来文件或目录的路径名进行映射,当访问一个符号链接时,系统通过该映射找到原文件的路径,并对其进行访问。采用符号链接可以跨越文件系统,甚至可以通过计算机网络连接到世界上任何地方的机器中的文件,此时只须提供该文件所在的地址以及在该机器中的文件路径。
文件保护
文件系统对文件的保护常采用存取控制的方式进行,其实现方式分为以下几种:
- 存取控制矩阵:理论上,存取控制的方法可用存取控制矩阵实现,它是一个二维矩阵,一维列出计算机的全部用户,另一维列出系统中的全部文件,矩阵中的每个元素A,表示第i个用户对第j 个文件的存取权限。
- 存取控制表:存取控制矩阵由于太大往往无法实现。一个改进的办法是按用户对文件的访问权力的差别对用户进行分类,由于某一文件往往只与少数几个用户有关,所以这种分类方法可使存取控制表简化。 UNIX系统就是使用了这种存取控制表方法,它把用户分成三类:文件主、同组用户和其他用户,每类用户的存取权限为可读、可写、可执行以及它们的组合。相当于列出一个文件的有权限的用户。
- 用户权限表。改进存取控制矩阵的另一种方法是以用户或用户组为单位将用户可存取的文件集中起来存入表中,这称为用户权限表。表中的每个表目表示该用户对应文件的存取权限,这相当于存取控制矩阵一行的简化。相当于列出用户有权限访问的所有文件。
- 密码:在创建文件时,由用户提供一个密码,在文件存入磁盘时用该密码对文件的内容加密。在进行读取操作时,要对文件进行解密,只有知道密码的用户才能读取文件。
中间件
中间件(Middleware) 作为应用软件与各种操作系统之间使用的标准化编程接口和协议,可以起承上启下的作用,使应用软件的开发相对独立于计算机硬件和操作系统,并能在不同的系统上运行,实现相同的应用功能。
中间件分类
按照中间件在分布式系统中承担的职责不同,可以划分以下几类中间件产品:
- 通信处理(消息)中间件:在分布式系统中,人们要建网和制定出通信协议,以保证系统能在不同平台之间通信,实现分布式系统中可靠的、高效的、实时的跨平台数据传输,这类中间件称为消息中间件,也是市面上销售额最大的中间件产品,目前主要产品有BEA的eLink、IBM 的 MQSeries、TongLINK等。
- 事务处理(交易)中间件:在分布式事务处理系统中,经常要处理大量事务,特别是OLTP 中,每项事务常常要多台服务器上的程序按顺序协调完成,一旦中间发生某种故障,不但要完成恢复工作,而且要自动切换系统保证系统永不停机,实现高可靠性运行。要使大量事务在多台应用服务器上能实时并发运行,并进行负载平衡的调度,实现与昂贵的可靠性机和大型计算机系统的同等功能,为了实现这个目标,要求中间件系统具有监视和调度整个系统的功能。
- 数据存取管理中间件:在分布式系统中,重要的数据都集中存放在数据服务器中,它们可以是关系型的、复合文档型、具有各种存放格式的多媒体型,或者是经过加密或压缩存放的,该中间件将为在网络上虚拟缓冲存取、格式转换、解压等带来方便。
- Web服务器中间件:浏览器图形用户界面已成为公认规范,然而它的会话能力差,不擅长做数据的写入任务,受HTTP 协议的限制多等,就必须对其进行修改和扩充,因此出现了Web服务器中间件,如SilverStream公司的产品。
- 安全中间件:一些军事、政府和商务部门上网的最大障碍是安全保密问题,而且不能使用国外提供的安全措施(如防火墙、加密和认证等),必须用国产产品。产生不安全因素是由操作系统引起的,但必须要用中间件去解决,以适应灵活多变的要求。
- 跨平台和架构的中间件:在分布式系统中,还需要集成各结点上的不同系统平台上的构件或新老版本的构件,由此产生了架构中间件。
- 专用平台中间件:专用平台中间件为特定应用领域设计领域参考模式,建立相应架构,配置相应的构件库和中间件,为应用服务器开发和运行特定领域的关键任务(如电子商务、网站等)。
- 网络中间件:包括网管、接入、网络测试、虚拟社区和虚拟缓冲等。
软件构件
构件又称为组件,是一个自包容、可复用的程序集。构件是一个程序集,或者说是一组程序的集合。这个集合可能会以各种方式体现出来,如源程序或二进制的代码。这个集合整体向外提供统一的访问接口,构件外部只能通过接口来访问构件,而不能直接操作构件的内部。构件的两个最重要的特性是自包容与可重用。
软件构件的组装模型
随着软件构件技术的发展,人们开始尝试利用软件构件进行搭积木式的开发,即构件组装模型。在构件组装模型中,当经过需求分析定义出软件功能后,将对构件的组装结构进行设计,将系统划分成一组构件的集合,明确构件之间的关系。在确定了系统构件后,则将独立完成每一个构件,这时既可以开发软件构件,也可以重用已有的构件,当然也可以购买或选用第三方的构件。构件是独立的、自包容的,因此架构的开发也是独立的,构件之间通过接口相互协作。
商用构件的标准规范
本小节了解即可,因为J2EE、DNA 2000等内容太老了,应该不会再考。
当前,主流的商用构件标准规范包括对象管理组织 (OMG) 的CORBA、Sun 的J2EE和 Microsoft 的DNA。
- CORBA:公共对象请求代理架构 (CORBA) 主要分为3个层次:对象请求代理、公共对象服务和公共设施。
- 对象请求代理:最底层的对象请求代理 (ORB) 规定了分布对象的定义(接口)和语言映射,实现对象间的通信和互操作,是分布对象系统中的“软总线”。
- 公共对象服务:在ORB之上定义了很多公共服务,可以提供诸如并发服务、名字服务、事务(交易)服务、安全服务等各种各样的服务。
- 公共设施:最上层的公共设施则定义了构件框架,提供可直接为业务对象使用的服务,规定业务对象有效协作所需的协定规则。
- CORBA CCM:CORBA CCM(CORBA Component Model)构件模型是OMG组织制定的一个用于开发和配置分布式应用的服务器端构件模型规范,它主要包括如下3项内容:
- 抽象构件模型:用以描述服务器端构件结构及构件间互操作的结构。
- 构件容器结构:用以提供通用的构件运行和管理环境,并支持对安全、事务、持久状态等系统服务的集成。
- 构件的配置和打包规范: CCM 使用打包技术来管理构件的二进制、多语言版本的可执行代码和配置信息,并制定了构件包的具体内容和文档内容标准。
- J2EE:J2EE 同时支持远程方法调用(RMI)和互联网内部对象请求代理协议(IIOP), 而在服务器端分布式应用的构造形式,则包括了 Java Servlet、JSP、EJB等多种形式,以支持不同的业务需求。
- DNA 2000:Microsoft 的 DCOM/COM/COM+ 技术在DNA 2000 分布计算结构基础上,展现了一个全新的分布构件应用模型。