访问量 ...
访客数 ...
总文章数 187 篇
博客已运行 2007 天

软考高级架构师-计算机系统基础

2025.07.16

选择题为主,一般在3-5分浮动。

计算机系统组成

计算机系统组成: 软考

  1. 硬件:中央处理器、存储器、输入设备、输出设备、总线
  2. 软件:系统软件、应用软件

硬件组成如下:
软考

  • 中央处理器:由运算器、控制器、寄存器组成,功能为执行程序指令、进行算术运算和逻辑运算(比较、判断等)、控制协调其他硬件部件的工作。
  • 存储器:主要类型有主存储器(内存)、辅助存储器组成(硬盘),用于存储程序(指令)和数据(包括输入、输出和中间结果)。
  • 输入设备:例如键盘、鼠标、触摸屏、扫描仪、麦克风、摄像头、游戏手柄、传感器等。
  • 输出设备:例如键盘、鼠标、触摸屏、扫描仪、麦克风、摄像头、游戏手柄、传感器等。
  • 总线:主要类型有数据总线、地址总线、控制总线,计算机内部各部件之间以及计算机与外部设备之间传输数据、地址和控制信号的公共通信通道。可以想象成连接各城市(硬件部件)的高速公路网。

存储系统

计算机存储系统的关键组成部分及其层次结构:
软考

  • CPU寄存器:直接集成在CPU内部,访问速度最快,容量最小。存储CPU当前正在执行的指令所直接操作的数据和中间结果。访问速度极致、成本极高
  • CPU高速缓存(Cache Memory - L1, L2, L3):在CPU芯片内部(L1, L2)或紧邻CPU(L3)。访问速度极快,容量小。作为CPU和主内存之间的高速缓冲区。存储CPU近期最可能再次访问的主内存数据和指令副本。
  • 主存储器:在主板的内存插槽上。访问速度快,容量较大。存储当前正在运行的操作系统、应用程序和它们正在处理的数据。CPU直接从这里读取指令和读写数据。辅助存储器中的数据必须加载到主存才能被CPU处理。
  • 辅助存储器:通过接口(SATA, NVMe, USB等)连接到主板。访问速度慢,容量非常大。长期、持久化存储操作系统、应用程序、用户文件(文档、图片、视频等)、数据库等所有不需要立即运行的数据。即使计算机断电,数据也不会丢失。

距离CPU越远,访问速度越慢,容量越大,成本越低;越近访问越快,容量越小,成本越高。

存储层次结构 (Memory Hierarchy),其核心思想是利用局部性原理:

  • 时间局部性 (Temporal Locality): 最近访问过的数据项很可能在不久的将来再次被访问。典型情况是程序中存在循环操作。
  • 空间局部性 (Spatial Locality): 访问某个数据项时,其附近的数据项也很可能很快被访问。典型情况是顺序执行。

层次结构通过将频繁访问的数据保持在更高层(更快更小),而将不频繁访问的数据移到底层(更大更慢),从而在整体上实现接近最高层的速度和接近最底层的容量。

总线

总线是一组能为多个部件分时共享的信息传送线,用来连接多个部件并为之提供信息交换通路。【总线通常是半双工的】

  • 半双工:同一时间只能单向传输:通信双方均可发送或接收数据,但不能同时进行(类似对讲机)。
  • 全双工:通信双方可同时发送和接收数据(类似电话通话)。

特点:

  • 挂接在总线上的多个部件只能分时向总线发送数据,但可同时从总线接收数据。
  • 通过总线复用方式可以减少总线中信号线的数量,以较少的信号线传输更多的信息。

总线通常分为以下几类。

  1. 芯片内总线。用于集成电路芯片内部各部分的连接元件级总线。用于一块电路板内各元器件的连接。
  2. 系统总线,又称内总线。用于计算机各组成部分(CPU、内存和接口等)的连接。
  3. 外总线,又称通信总线。用于计算机与外设或计算机与计算机之间的连接或通信。
  • 从功能上将总线划分为数据总线地址总线控制总线
  • 从数据传输的方式将总线划分为并行总线串行总线
    • 并行总线:将数据字节的各位用多条数据线同时进行传送。【短距离】
    • 串行总线:数据是一位一位地进行传输的,在传输中每一位数据都占据一个固定的时间长度。【长距离,传输波特率可调整,正确性依赖于校验码数据传输方式可以使用多种

总线的工作流程(以内存读取为例):

  1. 地址阶段:CPU通过地址总线发送目标内存地址。
  2. 控制阶段:控制总线发出“读”信号 + 时钟同步。
  3. 数据阶段:内存通过数据总线将数据传回CPU。
  4. 应答阶段:控制总线确认传输完成(成功/失败)。

数据传输控制方式

数据传输控制方式是计算机系统中协调CPU与外部设备(I/O设备)之间数据流动的机制,核心目标是平衡效率与CPU资源占用。

  1. 程序控制(查询)方式:分为无条件传送和程序查询方式两种。方法简单,硬件开销小,但I/O能力不高,严重影响CPU的利用率。适用于低速设备(如键盘、早期打印机)
  2. 程序中断方式:与程序控制方式相比,中断方式因为CPU无需等待而提高了传输请求的响应速度。【CPU与I/O传输可并行】 适用于中低速设备(鼠标、串口通信)
  3. DMA方式:DMA方式是为了在主存与外设之间实现高速、批量数据交换而设置的。DMA方式比程序控制方式与中断方式都高效。【CPU与I/O传输可并行】 适用于高速设备(硬盘、SSD、网卡、显卡显存交换)。
  4. 通道方式:本质是协处理器,比DMA更智能化(可执行复杂指令序列)。通道自主执行I/O任务链,可同时控制多台设备,但硬件极度复杂。

处理器体系结构

  1. 冯·诺依曼结构:冯·诺依曼结构也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构。
    • 特点:指令与数据存储器合并在一起。指令与数据都通过相同的数据总线传输。
    • 应用:一般用于PC处理器,如i3、i5、i7处理器。注:常规计算机属于冯·诺依曼结构。
  2. 哈佛结构:哈佛结构是一种并行体系结构,它的主要特点是将程序和数据存储在不同的存储空间中,即程序存储器和数据存储器是两个独立的存储器,每个存储器独立编址、独立访问。
    • 特点:指令与数据分开存储,可以并行读取,有较高的数据吞吐率。有4条总线:指令和数据的数据总线与地址总线。
    • 应用:一般用于嵌入式系统处理器。注:DSP芯片属于哈佛结构。

指令集

  1. CISC(复杂指令集):
    • 指令:数量多,使用频率差别大,指令长度可变,单指令可完成复杂操作(如内存操作+计算)
    • 寻址方式:支持多种
    • 实现方式:微程序控制技术(微码)
    • 其他:研制周期长
    • 代表:Intel、AMD的x86CPU
  2. RISC(精简指令集):
    • 指令:数量少,使用频率接近,定长格式,大部分为单周期指令,操作寄存器,只有Load/Store操作内存
    • 寻址方式:支持方式少
    • 实现方式:增加了通用寄存器;硬布线逻辑控制为主;适合采用流水线
    • 其他:优化编译,有效支持高级语言
    • 代表:AMD、Power(主要是嵌入式)

操作系统(重点)

操作系统(OS)是管理计算机硬件与软件资源的系统软件,充当用户/应用程序与硬件之间的核心桥梁。

分类:

  1. 批处理系统:
    • 单道批:一次一个作业入内存,作业由程序、数据、作业说明书组成
    • 多道批:一次多个作业入内存,特点:多道、宏观上并行微观上串行(提高CPU和外部设备的利用效率
  2. 分时操作系统:采用时间片轮转的方式为多个用户提供服务,每个用户感觉独占系统。特点:多路性、独立性、交互性和及时性
  3. 实时操作系统:实时控制系统和实时信息系统。交互能力要求不高,可靠性要求高(规定时间内响应并处理)。
  4. 网络操作系统:方便有效共享网络资源,提供服务软件和有关协议的集合。主要的网络操作系统有:Unix、Linux和WindowsServer系统
  5. 分布式操作系统:任意两台计算机可以通过通信交换信息。是网络操作系统的更高级形式,具有透明性、可靠性和高性能等特性。
  6. 微机操作系统:
    • Windows:Microsoft开发的图形用户界面、多任务、多线程操作系统
    • Linux:免费使用和自由传播的类Unix操作系统,多用户、多任务、多线程和多CPU的操作系统
  7. 嵌入式操作系统:运行在智能芯片环境中。特点:微型化、可定制(针对硬件变化配置)、实时性、可靠性、易移植性(HAL和BSP支持)

进程管理

进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。它由程序块进程控制块(PCB)和数据块三部分组成。

PCB是进程存在的唯一标志。内容包含进程标识符、状态位置信息、控制信息、队列指针(链接同一状态的进程)、优先级、现场保护区等。

进程与线程

软考
进程的2个基本属性:

  1. 可拥有资源的独立单位;
  2. 可独立调度和分配资源的基本单位。【内核线程、用户线程】

进程的状态与调度

主要考察三态图: 软考

  1. 运行:当一个进程在CPU上运行时。(单处理机处于运行态的进程只有一个,多进程在CPU上交替运行)
  2. 就绪:一个进程获得了除CPU外的一切所需资源,一旦得到处理机即可运行。
  3. 阻塞:阻塞也称等待或睡眠状态,一个进程正在等待某一事件发生(例如请求I/O、等待/O完成等)而暂时停止运行,此时即使把CPU分配给进程也无法运行,故称进程处于阻塞状态。

就绪状态与运行状态是双箭头。

进程调度算法:

  1. 时间片轮转:每个进程分配固定时间片
  2. 先来先服务:按到达顺序排队
  3. 短作业优先:优先执行预估时间最短的进程
  4. 高响应比优先:选择响应比最高的进程执行
  5. 优先级调度:为每个进程分配优先级,优先执行高优先级进程。
  6. 抢占式&非抢占式:
    • 非抢占式:仅当进程主动放弃CPU(结束/阻塞)
    • 抢占式:时间片耗尽或更高优先级进程到达

进程的同步与互斥(重点)

基础概念:

  • 互斥(Mutex):保证同一时间仅一个进程访问临界资源
  • 同步(Sync):控制进程间的执行顺序(协作依赖)
  • 临界资源(Critical Resource):一次仅允许一个进程使用的共享资源(如全局变量、硬件设备)
  • 临界区(Critical Section):进程中访问临界资源的代码段

PV操作就是为了解决互斥和同步的问题。 PV操作是操作系统中的原语(具备原子性),P是荷兰语中的Passeren,V是荷兰语中的Verhoog。

PV操作主要是P操作、V操作和信号量(S)。

  1. P操作:使S=S-1,若S>=0,则该进程继续执行,否则该进程排入等待队列。
  2. V操作:使S=S+1,若S>0,唤醒等待队列中的一个进程。
  3. 信号量(S)是一种特殊的变量,它是全局变量。可以用来保证两个或多个关键代码段不被并发调用。
    • 信号量可以表示资源数量
    • 信号量为负数时还可表示排队进程数量

P就是请求资源,V就是释放资源。 P操作是减法运算(S:=S-1),当信号量S小于0时申请资源; V操作是加法运算(S:=+1),当信号量小于等于0时释放资源;P、V操作二者必须成对出现。

一般来说,信号量S>0时,S表示可用资源的数量。执行一次P操作意味着请求分配 一个单位资源,因此S的值减1; 当S<0时,表示已经没有可用资源,请求者必须等待别的进程释放该类资源,它才能运行下去。而执行一个V操作意味着释放一个单位资源,因此S的值加1; 若S=0,表示有某些进程正在等待该资源,因此要唤醒一个等待状态的进程,使之运行下去;

思考:2台打印机,3个进程要互斤使用打印机。模拟整个PV过程:信号量S的初值为多少? S取值范围是多少?S初始值为2,S取值范围是【-1,2】。

前趋图

软考

前趋图的表示:

  • 1个箭头表示1个前趋关系
  • A有箭头指向D,则记录为(A,D)
  • 没有前趋进程的结点是起始进程,没有后继进程的结点是终结进程。

并发图中某活动有后继就有V操作释放资源并通知后继活动,有前趋就有P操作检查资源是否足够。 实现并发的信号量初始值一般为0,有几个箭头就有几个信号量。

死锁与银行家算法

死锁形成的四大条件,四条件缺一不可,打破任意一个即可预防死锁。

  1. 互斥访问:资源独占性(如打印机一次仅服务一个进程)。无法破坏实现。
  2. 持有并等待:进程持有资源的同时请求新资源(如进程A占文件锁,再申请打印机)。
  3. 不可剥夺:资源只能由持有者主动释放(如内存无法强制回收)。
  4. 循环等待:进程间形成环形等待链。

进程管理是操作系统的核心,但如果设计不当,就会出现死锁的问题。如果一个进程在等待一件不可能发生的事,则进程就死锁了。 而如果一个或多个进程产生死锁,就会造成系统死锁。

例:系统有3个进程:A、B、C。这3个进程都需要5个系统资源。如果系统至少有13个资源,则不可能发生死锁。 不可能死锁条件:系统资源数>=进程数*(进程所需资源数-1)= 3 * (5-1)

银行家算法:分配资源的原则

  1. 当一个进程对资源的最大需求量不超过系统中的资源数时可以接纳该进程;
  2. 进程可以分期请求资源,但请求的总数不能超过最大需求量;
  3. 当系统现有的资源不能满足进程尚需资源数时,对进程的请求可以推迟分配,但总能使进程在有限的时间里得到资源;

存储管理

页式存储

页式存储管理是计算机操作系统中一种重要的内存管理技术,其核心思想是将物理内存和进程的逻辑地址空间划分为固定大小的、连续的块,分别称为页框和页,以页的单位将程序调入内存。 通过页表机制实现逻辑地址到物理地址的动态映射。进程的逻辑地址空间(程序员看到的地址空间)被分割成一系列大小相等的页。页的大小必须与页框的大小相同。常见大小有 4KB、2MB、1GB 等。

打个比喻,仓库里有很多相同大小的空箱子(页框),比如每个箱子1立方米。箱子是仓库存储的基本单位,东西必须放进箱子里。 你的行李(程序和数据)原本堆在自己家里(磁盘),现在要搬进仓库。但仓库管理员(操作系统)有强迫症:所有行李必须拆开放进标准箱子里! 于是管理员把你的行李拆分成一堆 1立方米的小包裹(页)(和仓库箱子一样大)。

仓库太大,箱子成千上万,你的包裹分散在不同箱子里。于是管理员给你一本册子,上面写着:

  • 📦 包裹1号 → 放在A区3号箱
  • 📦 包裹2号 → 放在B区8号箱
  • 📦 包裹3号 → 放在C区1号箱

这本册子就是 页表,它记录了你的每个包裹(页)放在哪个箱子(页框)里。

当你需要取东西时(CPU访问内存),你说:“我要第2个包裹里的第5件衣服!” → 这相当于 逻辑地址(页号=2,页内偏移=5)。 仓库小哥(MMU,硬件)立刻查你的“小册子”(页表):先看 页号=2 → 对应册子里的记录:“包裹2号在 B区8号箱”。 小哥飞奔到 B区8号箱,打开箱子,数到第5件物品(页内偏移=5) → 这就是你要的物理位置!

高级程序语言使用逻辑地址;运行状态,内存中使用物理地址。逻辑地址=页号+页内地址;物理地址=页帧号+页内地址。 例如,页式存储系统中,每个页的大小为4KB(K=2的十次方,4K=2的十二次方)。逻辑地址:10110011011110;对应的物理地址为:110110011011110

  • 优点:利用率高,碎片小,分配及管理简单
  • 缺点:增加了系统开销;可能产生抖动现象

软考

当内存满了以后,需要进行页面淘汰。淘汰原则:

  • 只有状态位为1才可以淘汰
  • 优先访问位为0
  • 其次考虑修改位为0

段式存储

段式存储管理是操作系统内存管理的另一种经典方案,其核心思想是将程序的逻辑地址空间按功能模块划分为多个大小不一的连续区域(段),每段在内存中独立存储,并通过段表实现地址转换。 段式存储:按用户作业中的自然段来划分逻辑空间,然后调入内存,段的长度可以不一样。

软考

段长对应偏移量,基址为起始位置。当偏移量大于段长时为非法段地址,例如:0号段,段长为30K,(0,25K)合法地址,(0,35K)为非法地址。

  • 优点:多道程序共享内存,各段程序修改互不影响。
  • 缺点:内存利用率低,内存碎片浪费大。

纯段式因外部碎片问题严重已基本淘汰。现代系统的折中方案为段页式存储,先分段(逻辑视角),段内再分页(物理管理)。 段页式存储:段式与页式的综合体。先分段,再分页。1个程序有若干个段,每个段中可以有若干页,每个页的大小相同,但每个段的大小不同。

文件管理

文件系统

索引文件

位示图

系统配置与性能评价

性能指标

性能设计

性能评估