中级软考(软件工程师)第一章知识点——计算机系统知识

考点分析

  • 分值占比:2-8分
  • 题型:单选、案例分析
  • 侧重点:概念
    在这里插入图片描述

一、计算机系统基础知识

1、计算机系统硬件基本组成

📝 计算机的基本硬件系统由运算器控制器存储器输入设备输出设备五大部件组成。

📝 运算器和控制器被集成在一起统称为中央处理单元(CPU)。

📝 存储器是计算机的记忆设备,分内部存储外部存储,内部存储速度高,容量小,一般用于临时存放程序、数据及中间结果(内存),外部存储容量大、速度慢,可长期保存数据和程序(硬盘)。

📝输入/ 输出设备统称为外部设备(外设),输入设备用于输入数据和各种命令,而输出设备用于输出处理结果。

在这里插入图片描述

2. CPU的功能和组成

2.1 CPU的功能

  • 程序控制
  • 操作控制
  • 时间控制
  • 数据处理

在这里插入图片描述

2.2 CPU的组成

📝 主要组成:运算器控制器寄存器组内部总线

在这里插入图片描述

(1)运算器

在这里插入图片描述

  • 算术逻辑单元 (ALU)
    • 负责处理数据,实现对数据的算术运算和逻辑运算
  • 累加寄存器 (AC)
    • 也称为累加器,是一个通用寄存器,功能是当运算器的算术逻辑单元执行算术运算或逻辑运算时,为ALU提供一个工作区
  • 数据缓冲寄存器 (DR)
    • 在对内存储器进行读/写操作时,用DR暂时存放由内存储器读/写的一条指令或一个数据字,将不同时间段内的读/写数据隔离
    • 主要作用是作为CPU和内存、外部设备之间数据传送的中转站;作为CPU和内存、外围设备之间在操作速度上的缓冲;在单累加器结构的运算器中,数据缓冲寄存器还可兼作为操作数据寄存器
  • 状态条件寄存器 (PSW)
    • 由算数指令和逻辑指令运行或测试的结果建立的各种条件码内容,主要分为状态标志控制标志

这里重点来理解一下什么是PSW:状态条件寄存器

📝 通过上面的描述可以简单总结一下,ALU相当于发动机,AC可以当做油箱,DR可以当做输油管,这三个都是纯工作性质的,光是闷头干活,而PSW就是仪表盘,它得记录各种信息,不然怎么控制系统呢。

  • 条件码:在计算过程中出现的一些伴生信息就是条件码,比如是不是0,是负数吗,进位了吗等等。
  • 状态标志:表示一些特殊的信号比如进位、零、符号、负数、溢出等标志。
  • 控制标志:这是由操作系统或外界主动输入设置的,也就是让你干什么,怎么干的信息,比如中断允许、方向、追踪(debug)标志,这个是用来控制CPU行为的主要标志
类别来源代表性标志核心作用简单理解
状态标志被动产生
(由运算结果决定)
零标志(ZF)、进位标志(CF)、
溢出标志(OF)、符号标志(SF)
反馈结果,供程序进行逻辑判断(跳转、分支)。汽车仪表盘的指示灯
(油没了、超速了、水温高)
控制标志主动设置
(由指令设置)
中断标志(IF)、方向标志(DF)、
追踪标志(TF)
控制行为,管理 CPU 的运行状态和模式。汽车的控制开关
(运动模式、雨刮器开关)

基于上和扩展内容,运算器的主要功能如下

  1. 算术运算(加减乘除)
  2. 逻辑运算(与或非异或)
  3. 移位运算(左移右移,辅助乘除)
  4. 数据传送(内部寄存器间的数据传输)
  5. 状态生成(生成条件码,反馈给PSW)
(2)控制器

📝 运算器只能完成计算,而控制器(大脑)则用来控制整个CPU的工作,决定了计算器运行过程的自动化。它不仅保证了程序的正常执行,而且还要保证不能出现异常

在这里插入图片描述

(3)寄存器组

📝 分专用寄存器通用寄存器,运算器和控制器中的寄存器是专用寄存器,是固定的作用,而通用寄存器一般由程序员指定,数量因CPU的不同有差异。

2.3 多核CPU

📝 核心又称为内核,是CPU最主要的组成部分。CPU所有的计算、接受/存储命令、处理数据都
由核心执行。各种CPU核心都具有固定的逻辑结构,一级缓存、二级缓存、执行单元、指令级单
元和总线接口等逻辑单元都会有合理的布局。

📝 CPU主要厂商AMD和Intel的双核技术在物理结构上有很大的不同。AMD将两个内核做在一
个Die上,通过直接架构连接起来,集成度更高;Intel则是将放在不同核心上的两个内核封装在
一起。因此,有人将Intel的方案称为“双芯”,将AMD的方案称为“双核”。

3. 数据表示

📝 各种数值在计算机中表示的形式称为机器数,特点是采用二进制计数制,数的符号用0和1表示,小数点则隐含,表示不占位置。机器数对应的实际数值称为数的真值

这里简单了解一下各种表示的基础,后面在详细展开,毕竟这是基础知识部分。

3.1. 机器字长

  • 定义:指计算机进行一次整数运算所能处理的二进制数据的位数,用变量 n n n 表示。
  • 结构:在有符号数的表示中,通常由 1位符号位(最高位)和 n − 1 n-1 n1位数值位组成。
  • 意义:字长越长,计算机能表示的数值范围越大,计算精度越高。

3.2. 各种码制的作用与区别

码制规则简述核心作用与优缺点
原码符号位0正1负,数值位为绝对值。作用:最符合人类直观思维。
缺点:存在两个0 (+0, -0);加减运算硬件设计复杂。
反码正数同原码;负数符号位不变,数值取反。作用:历史遗留,主要作为原码求补码的中间过渡。
补码正数同原码;负数在反码末位加1。核心作用
1. 只有一个0
2. 统一加减法(将减法变为加法),简化CPU硬件。
3. 范围比原码多表示一个最小值。
移码补码的符号位取反。作用:常用于浮点数的阶码(指数部分),方便硬件直接比较数值大小。

3.3. 数值范围表 (设机器字长为 n)

注: 2 n − 1 2^{n-1} 2n1 表示 2 的 n-1 次方

码制定点整数范围定点小数范围备注
原码 − ( 2 n − 1 − 1 ) ∼ + ( 2 n − 1 − 1 ) -(2^{n-1}-1) \sim +(2^{n-1}-1) (2n11)+(2n11) − ( 1 − 2 − ( n − 1 ) ) ∼ + ( 1 − 2 − ( n − 1 ) ) -(1-2^{-(n-1)}) \sim +(1-2^{-(n-1)}) (12(n1))+(12(n1))也就是 ± ( 2 n − 1 − 1 ) \pm(2^{n-1}-1) ±(2n11)
反码 − ( 2 n − 1 − 1 ) ∼ + ( 2 n − 1 − 1 ) -(2^{n-1}-1) \sim +(2^{n-1}-1) (2n11)+(2n11) − ( 1 − 2 − ( n − 1 ) ) ∼ + ( 1 − 2 − ( n − 1 ) ) -(1-2^{-(n-1)}) \sim +(1-2^{-(n-1)}) (12(n1))+(12(n1))同原码
补码 − 2 n − 1 ∼ + ( 2 n − 1 − 1 ) -2^{n-1} \sim +(2^{n-1}-1) 2n1+(2n11) − 1 ∼ + ( 1 − 2 − ( n − 1 ) ) -1 \sim +(1-2^{-(n-1)}) 1+(12(n1))重点:整数最小值能到 − 2 n − 1 -2^{n-1} 2n1,小数最小值能到 -1
移码 − 2 n − 1 ∼ + ( 2 n − 1 − 1 ) -2^{n-1} \sim +(2^{n-1}-1) 2n1+(2n11) − 1 ∼ + ( 1 − 2 − ( n − 1 ) ) -1 \sim +(1-2^{-(n-1)}) 1+(12(n1))范围同补码

4. 校验码

📝 在计算机系统运行时,各部位之间要进行数据交换,为了确保数据在传送过程中正确无误,一是提高硬件电路的可靠性,二是提高代码的校验能力,包括查错和纠错。

在这里插入图片描述
在这里插入图片描述

这里首先要知道一点,在硬件和信号传输过程中,从微观层面(bit)数据是非常容易受到损坏的。

  1. 电磁干扰:如果网线在微波炉或者其它强磁区域,电磁波可能会干扰信号量,把代表0的低电平瞬间变为高电平。
  2. 信号衰减:数据在光前或者电缆里面跑了很远,信号就会微弱,之后可能就读错了。
  3. 宇宙射线(虽然扯但存在):在高空飞行或者密度高的内存中,来自宇宙的高能例子还是会击中芯片导致晶体管状态变化(简称单粒子翻转)。

如果只是为了应付考试,那校验码这块儿目前的了解够了,下面我们将简单的聊聊校验码怎么实现的校验,解决问题的层面在哪里,这和数据签名有什么区别等等。

首先看一下几种校验码的核心:

  1. 奇偶校验码:这只是在数据末尾增加1位校验位,只是确保整个数据的奇偶个数对不对,而且只能检错不能纠错。
  2. 海明码:增加了多位校验码,而且分组校验的设计不光能校验数据位,还能校验传递的校验位对不对,具有纠错能力(因为计算机底层就是0和1,错了我翻转一下就好了)。
  3. 循环冗余校验码(CRC):就是模2除法,接收方和发送方都内置一个校验码(这是规定且都知道,类似篮球的三分线一样),即使多位出错也能一下校验出来。

思考:那校验位在传输过程中也有可能损坏吧,如果出现太多损坏怎么办呢?这种出现错误的概率会很大吗?

  • 实际上海明码通常只能纠正1位,如果错了2位可能就搞错了,但概率非常小。
  • 而CRC能校验出很多位错误,即使真的出现了极端情况,那概率相当相当小
  • 同时我们要知道,这种校验是发生在物理层 / 链路层 的,也就是在一个标准下,看数据包对不对就完事儿了,只是用来防止数据是否被“天灾”(电磁干扰等)损坏,就相当于你看快递外面有没有破洞一样,在应用和传输层才是我们熟悉的数字签名哈希校验等等。

💡 记住了,这是发生在物理层的数据正确性校验,只看坏没坏,对不对是在传输和应用层来管的。

二、计算机体系结构

1. 计算机体系结构的发展

1964年,阿姆达尔(G.M.Amdahl)在介绍IBM360系统时指出,计算机体系结构是站在程序
员的角度所看到的计算机属性。

1982年,梅尔斯(G.J.Myers)在其所著的《计算机体系结构的进展》一书中定义了组成计算
机系统
的若干层次。

1984年,拜尔(J.L.Baer)在一篇题为《计算机体系结构》的文章中给出了一个含义更加广泛
的定义:体系结构是由结构、组织、实现、性能四个基本方面组成的。

计算机体系结构、计算机组织、计算机实现 三者的关系。

融入一个知识点,为什么要从这三种方向进行解释,这从官方上来讲叫“抽象分层”。

在针对一个复杂的系统构建时,并不是一个单一方向的人才就可以实现的,需要多种不同方向的人参与,而为了保证各方能正常协作,这种思维方式屏蔽了复杂性兼容性,只要是核心的体系不变,那就可以通用,这个大厦就不会崩塌。

概念设计 -> 逻辑设计 -> 物理实现 ,这种思维方式在很多复杂的领域都可以适用,比如建筑学、电影、公司管理等。

在这里插入图片描述

1.1 计算机体系结构分类

(1) 从宏观上按照处理机的数量分类

在这里插入图片描述

(2) 从微观上按照并行程度分类

在这里插入图片描述

1.2. 指令系统

(1)常见的指令集系统

在这里插入图片描述

重点是CISC 和 RISC

(2)指令集架构分类的5个关键维度
  1. 操作数的存储方式
    • 即操作数从主存取出后保存在 CPU 内部的什么位置(如:通用寄存器、累加器、堆栈)。这是区别堆栈架构、累加器架构和寄存器架构的关键。
  2. 显式操作数的数量
    • 在一条典型的指令中,有多少个显式命名的操作数。例如 ADD A, B 是双操作数,ADD A, B, C 是三操作数。
  3. 操作数的位置
    • 指 ALU 指令的操作数能否直接来自主存,以及如何定位。例如,CISC 允许直接在内存中进行运算,而 RISC 通常要求先将数据 Load 到寄存器。
  4. 指令的操作
    • 指令集中提供了哪些功能操作。这决定了硬件能直接支持哪些类型的计算(如移位、逻辑、浮点、多媒体扩展等)。
  5. 操作数的类型与大小
    • 指令集支持的数据格式,包括整数、浮点数、字符等,以及它们的位宽(8位、16位、32位、64位等)。
(3) RISC 与 CISC 的利弊分析

CISC (复杂指令集计算机)

  • 设计理念:用一条指令完成尽可能多的功能(以硬件换软件)。
  • 弊端(基于您提供的图片):
    1. 指令庞杂:指令集过大,利用率低(二八定律),设计困难。
    2. 速度受限:依赖微程序技术,执行一条复杂指令需要多个 CPU 周期。
    3. 编译困难:指令选择太多,编译器难以优化生成高效代码,且编译器本身变得冗长复杂。
    4. 研制周期长:强调完善的中断控制和复杂逻辑,导致设计周期变长。
    5. 成本高良率低:芯片设计复杂,出错率高,成品率低。
  • 优点:
    • 代码密度高(程序占用内存小)。
    • 编程相对简单(汇编语言时代优势)。
    • 向下兼容性好(x86 的护城河)。

RISC (精简指令集计算机)

  • 设计理念:只保留最常用的简单指令,依靠组合指令完成复杂任务(以软件换硬件)。
  • 弊端
    • 代码密度低:实现同样的功能需要更多的指令,程序体积变大。
    • 编译器压力大:需要极其智能的编译器来进行指令调度和优化。
  • 优点(针对 CISC 的痛点):
    • 速度快:指令长度固定,适合流水线技术,大部分指令可在一个时钟周期内完成。
    • 硬件简单:控制器采用硬布线逻辑(Hardwired),不依赖微程

在这里插入图片描述

(4)RISC关键技术
  • 重叠寄存器窗口技术:减少函数调用时参数传递的内存访问(通过寄存器重叠直接传参)。
  • 优化编译技术:靠编译器来调整指令顺序,减少停顿。
  • 超流水及超标量技术:这是提升并行度的核心。
  • 硬布线为主,微程序为辅:大部分指令直接用硬件电路实现(快),极少数复杂的用微程序。
(5)指令的流水处理
  • 三种控制方式
    • 顺序方式:一条做完做下一条(慢,设备利用率低)。
    • 重叠方式:第K条指令执行时,第K+1条开始取指(类似流水线的雏形)。
    • 流水方式:将指令执行过程细分为多个阶段(取指、分析、执行),多条指令并行推进。
  • 流水线的分类(了解即可):
    • 按级别:部件级、处理级、系统级。
    • 按功能:单功能、多功能。
    • 按连接:静态(同一时间只能做一种功能)、动态(可同时做不同功能)。
    • 按反馈:线性(无反馈)、非线性(有反馈,用于递归)。
    • 关键分类(RISC专用):超流水线、超标量、超长指令字(VLIW)
(6)三种高级流水线技术(RISC核心)
  • 超流水线 (Super-pipelining):
    • 关键词:细化周期。
    • 原理:把流水线切得更细,时钟频率更高,一个时钟周期内分段处理。
    • 本质:时间换空间
  • 超标量 (Superscalar):
    • 关键词:多条流水线。
    • 原理:CPU内部有多条并行的流水线,一个时钟周期能发射多条指令。
    • 本质:空间换时间(需要更多硬件)。
  • 超长指令字 (VLIW):
    • 关键词:编译器打包。
    • 原理:由编译器找出可以并行的指令,打包成一条超长的指令,同时发给多个处理单元。
(7)多机系统架构的区别
  • 阵列处理机
    • 结构:1个控制部件 (CU) + N个处理单元 (PU)
    • 原理:大家听一个指挥,同时做同样的动作(处理不同的数据)。
    • 对应:SIMD(单指令流多数据流)。
  • 并行处理机
    • 包括 SIMD 和 MIMD(多指令流多数据流)。
    • SIMD 分为共享存储器和分布存储器两种。
  • 多处理机
    • 结构:N个处理机(每个都有自己的CU和PU)。
    • 原理:各干各的,但是共享同一个主存和外设。
    • 对应:MIMD(紧耦合系统)。
(8)流水线执行时间计算

流水线执行时间 = 一条指令执行时间 + ( 指令条数 − 1 ) × 流水线周期 流水线执行时间=一条指令执行时间+(指令条数−1)×流水线周期 流水线执行时间=一条指令执行时间+(指令条数1)×流水线周期

假设计算机执行一条指令需要分为 3 个步骤(也叫流水线段):
取指(取指令):耗时 2ns
分析(指令译码):耗时 2ns
执行(执行运算):耗时 1ns
现在,我们需要连续执行 100 条 这样的指令。

  • 一条指令执行时间: 2ns+2ns+1ns=5ns
  • 流水线周期: max(2ns,2ns,1ns)=2ns
  • 最终答案:5+(100−1)×2 = 203

2. 存储系统

2.1 存储器的层次结构

📝 首先SIMD是“单指令多数据流”的计算机。

(1)具有共享存储器的SIMD结构

在这种结构中,系统中所有的处理单元(PE)通过一个互联网络(ICN)共享同一个存储器模块集合(M)。

  • CU (Control Unit):控制部件,向所有 PE 广播指令。所有 PE 同步执行相同的指令。
  • PE (Processing Element):处理单元,只负责运算,不持有私有的大容量数据存储,数据需要去共享存储器中取。
  • ICN互连网络,作为 PE 和存储器 M 之间的桥梁,负责数据交换。
  • M (Memory):共享的存储器模块,所有 PE 都可以通过 ICN 访问这些存储模块。

在这里插入图片描述

(2)具有分布存储器的SIMD结构

在这种结构中,每个处理单元(PE)都有自己的专属局部存储器(PEM)。

  • PEM (PE Memory):每个 PE 拥有自己的私有存储空间,数据存取速度快,无需通过复杂的网络竞争。
  • PE 与 PEM 的关系:PE 直接访问自己的 PEM,形成多个独立的“处理器-存储器”对。
  • ICN 的作用:此时的互连网络主要用于 PE 之间的数据通信(消息传递),而不是用于存取内存。
  • CU:依然负责向所有 PE 广播指令。

在这里插入图片描述

(3)存储器的层次结构

📝 这里介绍一下各种存储器的速度、容量、价格之间的关系,以及在CPU中的访问频率。

  • CPU 内部通用寄存器:速度最快,容量极小,直接参与运算。
  • Cache (高速缓存):位于 CPU 和内存之间,缓解速度差异。
  • 主存储器 (RAM):存放当前运行的程序和数据。
  • 联机磁盘存储器:硬盘/SSD,用于持久化存储。
  • 脱机光盘、磁盘存储器:用于归档备份,速度最慢。

在这里插入图片描述

2.2 存储器的分类

  • 按存储器的所处位置分
    • 内存
    • 外存
  • 按存储器的构成材料分
    • 磁存储器
    • 半导体存储器
    • 光存储器
  • 按存储器的工作方式分
    • 读/写存储器
    • 只读存储器
  • 按访问方式分
    • 按地址访问的存储器
    • 按内容访问的存储器
  • 按寻址方式分
    • 随机存储器
    • 顺序存储器
    • 直接存储器

在这里插入图片描述

2.3 相联存储器

  • 原理
    • 相联存储器不根据地址来定位数据,而是根据数据的内容(部分或全部)来查找
    • 它可以并行地将输入数据与存储单元中的数据进行比较。
  • 作用
    • 主要用于需要快速查找的场合,最典型的应用是在 Cache(高速缓存) 的地址映射表(Tag比较)和 TLB(快表) 中。
  • 运行方式
    • CPU 发出一个关键字(Key)。
    • 存储器同时将这个 Key 与所有存储单元的内容进行比较。
    • 如果匹配成功,则输出对应的标志或数据。
  • 利弊
    • 利:检索速度极快(并行比较)。
    • 弊:硬件电路复杂,成本极高,容量通常很小。

2.4 高速缓存(Cache)——重点

  • 原理
    • 基于局部性原理时间局部性:刚访问过的指令可能再访问;空间局部性:刚访问过的数据附近的可能被访问)。
    • 利用小容量、高速度的 SRAM 存储最活跃的数据副本。
  • 作用
    • 解决 CPU 速度快与主存(DRAM)速度慢之间的速度匹配问题。
  • 运行方式
    • CPU 读数据 → 查 Cache → 命中(Hit)则直接读取。
    • 未命中(Miss) → 访问主存 → 取出数据交给 CPU 并写入 Cache(以备后用)。
  • 利弊
    • 利:大幅提升系统平均运行速度。
    • 弊:增加了硬件成本和控制逻辑的复杂性(如一致性问题)。

平均存取时间计算(必考)

设 Cache 的命中率为 h h h,Cache 的存取周期为 t c t_c tc,主存的存取周期为 t m t_m tm

系统平均存取周期 t a v g t_{avg} tavg

t a v g = h × t c + ( 1 − h ) × t m t_{avg} = h \times t_c + (1 - h) \times t_m tavg=h×tc+(1h)×tm

地址映射方式:CPU 访问的是主存地址,需要映射到 Cache 地址。

  • 直接映射 (Direct Mapping):主存中的块只能映射到 Cache 中的固定位置
    • 特点:硬件简单,成本低;但冲突率最高,Cache 空间利用率低。
  • 全相联映射 (Fully Associative Mapping):主存中的块可以映射到 Cache 中的任意位置
    • 特点:冲突率最低,利用率高;但比较电路极复杂,成本最高,只适合小容量 Cache。
  • 组相联映射 (Set Associative Mapping):折中方案。将 Cache 分组,组间直接映射,组内全相联
    • 特点:综合了前两者的优点,是现代计算机的主流选择。

在这里插入图片描述

替换算法:当 Cache 满了,新数据要进来,旧数据通过什么规则被踢出?

  • 随机算法 (RAND):随便找一个踢走。简单,但效率低,没利用局部性。
  • 先进先出 (FIFO):踢走最早进入 Cache 的。容易实现,但可能踢走经常需要使用的重要数据(不符合局部性)。
  • 近期最少使用 (LRU, Least Recently Used):考点。踢走最长时间没有被访问过的块。最符合局部性原理,命中率高,但硬件实现较难(需要记录访问历史)。

在这里插入图片描述

高速缓存性能分析

  • 命中率是Cache的一个重要指标,但不是最主要的指标
  • Cache命中率与Cache容量的关系是:容量越大,命中率越高。

多级Cache

  • L1 Cache:集成在 CPU 内部,速度最快,容量最小,分为指令 Cache 和数据 Cache。
  • L2/L3 Cache:容量逐步增大,速度稍慢,用于降低 CPU 与内存之间的速度差异。
2.5 虚拟存储器
  • 原理
    • 将主存(物理内存)和辅存(磁盘)视为一个整体。
    • 通过MMU(内存管理单元) 建立“逻辑地址”与“物理地址”的映射表(页表/段表)。
  • 作用
    • 扩充内存容量:让 4GB 内存的电脑能运行需要 8GB 内存的游戏(通过 Swap/分页)。
    • 隔离保护:每个进程有独立的地址空间,互不干扰。
  • 运行方式
    • 程序访问逻辑地址 → 查页表
    • 若页在内存中 → 转换为物理地址访问
    • 若页不在内存中(缺页中断) → 操作系统从磁盘调入该页 → 更新页表 → 重试
  • 利弊
    • 利:逻辑容量大,无需考虑物理内存大小,程序编写方便。
    • 弊:地址转换和页面调度需要时间,如果频繁“抖动”(频繁换入换出),效率会急剧下降。
特性页式存储 (Paging)段式存储 (Segmentation)段页式存储
划分依据物理需求,大小固定(如4KB)。对用户不可见。逻辑需求(如主程序段、子程序段、数据段)。大小不固定。结合两者。先分段,段内再分页。
地址结构一维(线性空间)二维(段号+段内地址)二维(实际上涉及三次访问)
碎片情况有内部碎片(最后一页没装满),无外部碎片。有外部碎片(段与段之间空隙),无内部碎片。内部碎片。
优缺点内存利用率高,管理简单;但不利于程序共享和保护。利于程序的模块化、共享和保护;但内存碎片多。综合优点,但硬件复杂,访问效率稍低(需查段表+页表)。
2.6 外存储器
  • 原理
    • 利用磁性材料(HDD)或半导体闪存(SSD)进行持久化存储,还有光盘,用于归档和分发。
    • 机械硬盘涉及盘片旋转和磁头移动。
  • 作用
    • 长期保存大量数据,断电不丢失。
  • 运行方式(针对机械硬盘):
    • 寻道:磁头移动到指定磁道(最耗时)。
    • 旋转延迟:等待扇区转到磁头下。
    • 传输:读写数据。
  • 利弊
    • 利:容量大,成本低(HDD),永久保存。
    • 弊:速度远慢于内存(尤其是随机读写)。
2.7 磁盘阵列技术(重点)
  • 原理
    • 将多个物理磁盘组合成一个逻辑磁盘。
    • 利用 条带化(Striping)提高速度,利用冗余(Redundancy) 提高安全性。
  • 作用
    • 提高存储系统的可靠性(防数据丢失)和I/O性能。
RAID 级别名称/机制详细说明 (结合图片与考点)优缺点总结软考关键点
RAID 0条带化 (Striping)不具备容错。数据分块并行写入 n 个磁盘。:极高的读写速度 (单盘的 n 倍)。
:无可靠性,坏盘即全毁。
MTBF = 1/n (可靠性最低)
利用率 100%
RAID 1镜像 (Mirroring)两个盘互为备份,写入时同时写入两盘。:可靠性最高。
:利用率最低 (50%),成本高。
利用率 50%
读快写慢
RAID 2海明码校验采用海明码进行错误检测和纠正。数据分散位存取。:需要多个校验盘,开销大,且海明码计算复杂。现代已少用,主要考海明码概念。
RAID 3专用奇偶校验 (位/字节)数据分块(字节级),只有一个专用校验盘。:有效容量高 (n−1)
:每次写都要访问校验盘,校验盘成瓶颈。
减少了校验盘个数,提高有效容量。
RAID 4专用奇偶校验 (块)数据分块(块级),独立读写,只有一个专用校验盘。:同样存在校验盘热点(瓶颈)问题。类似于RAID 3,但按块存取。
RAID 5分布式奇偶校验 (重点)不设专用校验盘,校验信息分散在所有盘上。:解决了 RAID 3/4 的校验盘瓶颈问题,读写并行能力强。
:重构数据时较慢。
无专用校验盘
利用率 (n−1)/n
允许坏 1 块盘
RAID 6双重校验采用两级数据冗余,计算两个独立的校验数据(P+Q)。:允许同时坏 2 块盘,数据极其安全。
:写入时计算量大,写性能差。
两级冗余
利用率 (n−2)/n
RAID 10先镜像后条带结合 RAID 1 和 RAID 0(先做镜像 RAID 1,再做条带 RAID 0)。:兼顾速度和容错。
:成本高,利用率 50%。
实际上是 RAID 1+0
  • 要速度,不在乎数据丢:RAID 0
  • 要最高安全性,不在乎钱:RAID 1
  • 要性价比(既有容错又有利用率):RAID 5 (最常选的答案)
  • 坏了2块盘还能救:RAID 6

3. 输入 / 输出技术

3.1 微型计算机中常用的内存与接口的编址方法

独立编址

  • 核心概念
    • 内存和接口是两个完全独立的世界。
    • CPU 拥有两套独立的地址空间:一套专门给内存(如 RAM),一套专门给接口(I/O 端口)。
    • 例如:地址 0x0001 在内存空间中代表一个存储单元,而在接口空间中可能代表鼠标的数据端口。它们互不冲突,因为访问它们的指令不同。
  • 特点
    • 隔离性:内存和接口互不干扰,物理上和逻辑上都是隔离开的。
  • 缺点
    • 指令贫乏:CPU 必须设计专门的 I/O 指令(如 x86 汇编中的 IN 和 OUT 指令)来访问接口。
    • 功能太弱:由于只有专门的几条指令能操作接口,通常只能进行简单的数据输入输出,无法像操作内存那样直接进行复杂的算术运算或逻辑运算(不能直接对端口做加法、移位等)。

统一编址

  • 核心概念
    • 内存和接口共用同一个地址空间。
    • 系统把内存的一块地址区域“挖”出来,分配给接口设备使用。
    • 例如:系统的地址空间是 01000。也许 0900 分配给 RAM(内存),901~1000 分配给打印机、显卡等接口。CPU 访问地址 901 时,它以为自己在写内存,实际上是在给打印机发数据。
  • 优点
    • 指令丰富:原则上,所有用于操作内存的指令都可以用来操作接口。你可以用 MOV(传送)、ADD(加法)、AND(逻辑与)等指令直接操作硬件接口。
    • 功能强大:大大增强了对接口的操作能力(图片中提到的“操作工程”应理解为操作能力/功能)。
    • 编程统一:在指令层面上,程序员不需要区分“这是内存指令”还是“这是接口指令”,简化了指令集设计。
  • 缺点
    • 占用内存空间:地址空间被劈成两半,一部分给内存,一部分给接口。这导致内存地址不连续(内存容量会有所减少,或者地址出现空洞)。
    • 代码维护困难:图片中提到“维护程序时需要根据参数定义表加以辨认”。因为代码里的 MOV [0xFFFF], A 看起来像是在写内存,但实际上可能是在关闭硬盘马达。如果不看硬件手册(参数定义表),程序员很难区分这行代码到底是在存数据还是在控制硬件,容易造成误操作。
特性独立编址 (I/O Mapped)统一编址 (Memory Mapped)
地址空间两个独立空间 (内存空间, I/O空间)一个公共空间 (内存+I/O共用)
指令系统需要专用的 I/O 指令 (如 IN/OUT)不需要专用指令,与访存指令相同
内存容量不占用内存空间占用内存空间,导致内存地址不连续
指令功能弱 (仅限数据传输)强 (可进行算术逻辑运算)
译码电路较简单较复杂 (需要区分该地址是内存还是I/O)
典型代表Intel x86 体系结构 (同时也支持统一编址)ARM 体系结构, MIPS, RISC-V

3.2 I / O 的四种控制方式

(1)直接程序控制

定义: 外设数据的输入和输出过程完全是CPU执行程序控制的,细分为以下两种

无条件传送

  • 定义:在此条件下,外设总是准备好的,它可以无条件的随时接收CPU发来的输出数据,也能够无条件的向CPU提供需要的输入数据。

  • 适用场景:简单的机械开关、LED指示灯、继电器等。

程序查询方式(又称轮询方式)

  • 运行流程
    • 查询:CPU读取外设的状态寄存器
    • 判断:CPU检查状态位判断是忙是闲
    • 循环:如果准备好即可开始,相反则循环查询
  • 缺点
    • 降低CPU效率
    • 对突发事件不能及时响应,必须要等到之前的处理完成
(2)中断方式

📝 上面的程序控制IO效率很低,所以出现了中断方式,当IO准备好之后给CPU一个信号,CPU停下现在的事情去处理IO,之后再返回处理之前的事情。

  1. 并行工作:CPU 在执行主程序,外设在自行准备数据,互不干扰。
  2. 中断请求:当 I/O 设备准备好后,向 CPU 发出一个信号(中断请求)。
  3. 中断响应与处理
    • CPU 暂停当前正在执行的程序。
    • 保护现场:把当前的寄存器状态、程序计数器(PC)的值压入堆栈保存起来(为了等会儿能回来接着干)。
    • 转入中断服务程序:CPU 跳转到专门处理该 I/O 设备的程序代码去执行数据传输。
  4. 中断返回
    • 数据传输完成后,恢复现场(把刚才保存的状态弹出来)。
    • CPU 返回到刚才被打断的地方,继续执行原来的程序。

中断处理方法:5种

  1. 多中断信号线法:每个设备都拉一根线连到 CPU。简单粗暴,但线太多,硬件引脚不够用。
  2. 中断软件查询法:CPU 收到中断后,运行一段程序,挨个问设备:“是你吗?是你吗?”。硬件省事,但软件费时,慢。
  3. 菊花链法 (Daisy Chain):设备像菊花链一样串联在一起。信号顺着链传,位置靠前的设备优先级高。优点是硬件简单,缺点是若中间断了,后面全瘫痪。
  4. 总线仲裁法:设备通过总线发请求,由专门的仲裁电路来判断谁获得控制权。
  5. 中断向量表法 (重点)
    • 每个设备都有一个编号(中断向量号)。
    • 内存里有一张表(中断向量表),存着所有中断服务程序的入口地址。
    • 设备发请求时带上自己的编号,CPU 查表直接跳转。这是现代计算机最常用的方式,速度最快。

中断优先级控制

情况一:同时请求(竞争)

  • 场景:不同优先级的多个中断源同时提出请求。
  • 解决优胜劣汰。CPU 优先响应优先级最高的那个中断源。
    • 例子:鼠标动了(低优先级)和电源故障报警(高优先级)同时发生,CPU 肯定先处理电源故障,不然电脑都要烧了。

情况二:中断嵌套(插队)

  • 场景:CPU 正在处理一个中断(比如打印机),此时来了一个优先级更高的中断(比如网络数据包到达)。
  • 解决:中断嵌套。
    • CPU 暂停当前的打印机中断服务。
    • 保护当前打印机中断的现场。
    • 转去处理网络数据包中断(高优先级)。
    • 处理完网络数据后,回到打印机中断继续处理。
    • 处理完打印机后,回到最初的主程序。
  • 注意:如果新来的中断优先级低于或等于当前正在处理的中断,CPU 是不会理会的,必须等当前处理完。
(3)DMA直接存储器方式

这种方式不需要CPU的多次参与,只需要在开始和结束的时候进行控制权的移交,数据是通过总线在内存和IO之间传输的。

  • 第一阶段预处理,CPU初始化数据的源地址和目的地址以及一些其它的信息,比如传输大小。
  • 第二阶段申请总线,外设向DMA发送请求,DMA向CPU申请数据总线的控制权,CPU向DMA移交控制权,之后数据就可以直接传输了。
  • 第三阶段数据传输,此时DMA获得了总线的控制权,在数据传输结束后向CPU发送结束信号,移交总线的控制权。

在这里插入图片描述

⚠️ 注意这种方式传输数据都是按照block为单位,一块一块,速度很快。

(4)输入输出处理机(IOP)
  • 字节多路:适合慢速设备(键盘),以字节为单位轮转。
  • 选择传送:适合高速设备(硬盘),一旦选中一个硬盘,通道就会被独占,知道整个文件传完。
  • 数组多路通道:混合型传输方式,也就是字节多路+选择传送,总结就是以数据块为单位进行分时传送的通道控制方式。
通道类型关键特征适用设备传输单位
字节多路通道分时轮转低速 (键盘/打印机)字节
选择通道独占高速 (单台磁盘)整个文件/数据流
数组多路通道分时 + 高速多台高速 (磁盘阵列)数据块
(5)总结

在这里插入图片描述

4. 总线结构

在这里插入图片描述

三、计算机安全

3.1 计算机安全概述

计算机安全主要分为以下两种

  • 系统资源:软件、硬件、配套设置、文件资料以及相关的服务系统和业务工作人员
  • 信息资源:计算机中存储、处理、传输的各种信息

(1)信息安全的基本要素

  1. 机密性: 确保信息不暴露给未授权的实体或者进程。
  2. 完整性: 只有被允许的人才能修改数据,并能判断数据是否已经被篡改。
  3. 可用性: 得到授权的实体在需要时可访问数据。
  4. 可控性: 可控制授权范围内的信息流向及行为方式。
  5. 可审查性: 对出现的安全问题提供调查的依据和手段。

(2)计算机的安全等级

  1. 技术安全性
  2. 管理安全性
  3. 政策法律安全性

参考以下准则:

(1)美国国防部和国家标准局推出的《可信计算机系统评估准则》(TCSEC)。
(2)加拿大的《可信计算机产品评估准则》(CTCPEC)。
(3)美国制定的《联邦(最低安全要求)评估准则》(FC)。
(4)欧洲英、法、德、荷四国国防部门信息安全机构联合制定的《信息技术安全评估准则》
ITSEC)。
(5)美国制定的《信息技术安全通用评估准则》(CC)。

(3)安全威胁

威胁说明
授权侵犯为某一特权使用一个系统,却将该系统用作其他未授权的目的
拒绝服务对信息或其他资源的合法访问被无条件地拒绝,或者推迟与时间密切相关的操作
窃听信息从被监视的通信过程中泄露出去
信息泄露信息被泄露或暴露给某个未授权的实体
截获/修改某一通信数据项在传输过程中被改变、删除或替代
假冒一个实体(人或系统)假装成另一个实体
否认参与某次通信交换的一方否认曾发生过此次交换
非法使用资源被某个未授权的人或未授权的方式使用
人员疏忽一个授权的人为了金钱或利益,或者由于粗心将信息泄露给未授权的人
完整性破坏通过对数据进行未授权的创建、修改或破坏,使数据的一致性受到损坏
媒体清理从废弃的或打印过的媒体中获得信息
物理入侵一个人侵者通过物理控制而获得对系统的访问
资源耗尽某一资源(如访问端口)被故意超负荷使用,导致其他用户的服务被中断

3.2 加密技术和认证技术

(1)加密技术

对称加密

在这里插入图片描述

⚠️ 重点注意AES(现行主流)和DES(过时算法)

非对称加密

在这里插入图片描述
在这里插入图片描述

(2)PKI和数字签名

PKI

📝 PKI 是一个提供安全基础服务的平台,其核心构成包括以下五个部分:

  • 认证机构 (CA, Certificate Authority):这是 PKI 的核心(类似公安局)。负责接收申请,并签发数字证书。它是所有人都信任的第三方。
  • 数字证书库:一个公开的目录或数据库,用于存储已签发的数字证书和公钥,供用户查询。
  • 密钥备份及恢复系统:针对解密密钥(注意:通常用于签名的私钥是不能备份的,但用于解密的密钥为了防止丢失导致数据无法找回,需要备份机制)。如果用户弄丢了密钥,可以通过此系统恢复。
  • 证书作废系统 (CRL/OCSP):证书也是有有效期的,或者因为私钥泄露需要提前作废。PKI 必须提供一种机制(如证书吊销列表 CRL)来告知公众哪些证书已经失效了。
  • 应用接口 (API):PKI 必须提供标准的接口,让各种应用程序(如浏览器、Outlook、OA系统)能够方便地使用加密和签名服务。

在这里插入图片描述

数字签名与数字加密

(1) 数字签名过程

  • 目的确认发送者身份,确认信息未被修改
  • 发送方操作
    • 对原文进行 Hash 运算,生成信息摘要。
    • 用自己的私钥对摘要进行加密,生成数字签名。
    • 将原文和数字签名一起发给接收方。
  • 接收方操作
    • 用发送方的公钥解密签名,得到摘要 A。
    • 对收到的原文进行同样的 Hash 运算,得到摘要 B。
    • 比对:如果 A == B,说明信息未被篡改,且确实是发送方发的。

(2) 数字加密(数字信封)过程

  • 目的传送机密数据(混合加密体制)
  • 发送方操作
    • 随机生成一个对称密钥(会话密钥)。
    • 用这个对称密钥加密原文(因为对称加密快)。
    • 用接收方的公钥加密这个“对称密钥”(形成数字信封)。
    • 发送:密文 + 数字信封。
  • 接收方操作
    • 用自己的私钥解密数字信封,得到对称密钥。
    • 用对称密钥解密密文,得到原文。

在这里插入图片描述

下一章:程序设计语言基础知识

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐