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

500 阅读13分钟

本文基于软考高级系统架构师的相关书籍和视频,记录学习过程中的知识点。后续可能还会继续更新后面章节的知识点,感兴趣的可以点个收藏和关注

如有错误,还请评论区指点。

计算机硬件

分数占比

本小时知识点涉及单项选择题,约占 2~6 分

基本组成

冯·诺依曼结构: 一种将程序指令存储器和数据存储器合并在一起的存储器结构。将计算机硬件划分为运算器、控制器、存储器、输入设备、输出设备 5 个部分

哈佛结构: 一种将程序指令存储和数据存储分开的存储器结构。

中央处理单元 CPU

控制单元和运算单元被集成为一体,封装为通常意义上的中央处理器

CPU的功能:

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

运算器:

  • 算数逻辑单元( ALU),负责处理数据,实现对数据的算数运算和逻辑运算
  • 累加寄存器(AC),是一个通用寄存器,当 ALU 执行运算时提供一个工作区
  • 数据缓冲寄存器(DR):暂时存放内存的指令和数据
  • 状态条件寄存器(PSW),保存由算数指令和逻辑指令运行时建立的各种条件码内容

控制器:

  • 指令寄存器IR:暂存CPU执行指令
  • 程序计数器PC:存放指令执行地址
  • 地址寄存器AR:保存当前CPU所访问的内存地址
  • 指令译码器ID:分析指令操作码

CPU 依据指令周期的不同阶段来区分二进制的指令和数据

总线结构

总线:计算机设备和设备之间传输信息的公共数据通道,由总线上的所有设备共享

  • 并行总线:传输延迟,适合近距离连接
  • 串行总线:速率不高,适合长距离连接
  • 内部总线:芯片和处理器之间通信的总线
  • 系统总线:连接计算机系统的核心组件 , 根据传输的信息种类分类如下
    • 数据总线:传输数据
    • 地址总线:系统可管理的内存空间大小
    • 控制总线:传送控制命令
  • 外部总线:设备一级的总线,微机和外部设备的总线,比如 USB

指令系统

计算机指令的组成:操作码+操作数

  • 操作码决定要完成的操作,操作数指参加运算的数据的单元地址

执行过程:取指令 - 分析指令 - 执行指令

程序计数器中的指令地址取出送入地址总线,CPU根据地址取出指令内容放入指令寄存器IR,而后由指令译码器分析,最后执行

指令寻址方式:

  • 顺序寻址
  • 跳跃寻址

操作数寻址方式:

  • 立即寻址:存的就是操作数本身
  • 直接寻址:存的是操作数在主存中的地址
  • 间接寻址
  • 寄存器寻址

CISC 与 RISC

  • CISC:复杂指令集计算机 Complex Instrcution Set Computers
  • RISC:精简指令集计算机 Reduced Instruction Set Computers

校验码

码距:在两个编码中,从A码到B码要改变的位数为码距

奇偶校验法 :只能检错,不能纠错

  • 增加1个校验位来使编码中1的个数为奇数 or 偶数,从而使码距变成2
  • 只能检1位错,并且无法纠错

循环冗余校验码 CRC

CRC 只能检错,不能纠错

  • 在原始信息位后面添加r个0得到被除数,r为多项式的阶
    • 如 g(x)=x^4+x+1 的阶为 4
  • 从多项式得到除数,下标从 0 开始 x 的幂指数存在的位置为1,不存在为0
    • 如上为 10011 ,被除数的个数等于多项式的阶+1
  • 将被除数和除数进行模 2 异或运算,不进位也不借位

得到 1111

流水线

流水线周期:指令分成不同执行段,其中执行时间最长的段为流水线周期

流水线执行时间:*1条指令总执行时间+ (总指令条数-1)流水线周期。

流水线吞吐率:吞吐率即单位时间内执行的指令条数。

  • 公式:指令条数/流水线执行时间

流水线的加速比:加速比即使用流水线后的效率提升度,即比不使用流水线快了多少倍,越高表明流水线效率越高。

  • 公式:不使用流水线执行时间/使用流水线执行时间。

单缓冲区和双缓冲区

单缓冲区时间=(每盘读入缓冲区的时间+缓冲区送至用户区的时间)×多少个磁盘块+每盘块数据的处理时间

双缓冲区时间=每盘读入缓冲区的时间×多少个磁盘块+缓冲区送至用户区的时间+每盘块数据的处理时间

存储系统

层次化存储结构: 快->慢:CPU寄存器、Cache、内存(主存)、外存(辅存)

层次化存储结构主要为了解决存储的容量、价格和速度之间的矛盾

存储器分类

按存储器所处的位置可分为:内存、外存。

按存储器构成材料:磁存储器(磁带)、半导体存储器、光存储器(光盘)。

按存储器访问方式:按地址访问、按内容访问(相联存储器)。

按寻址方式:随机存储器(访问任意存储单元所用时间相同)、顺序存储器(只能按顺序访问,如磁带)、直接存储器(二者结合,如磁盘,对于磁道的寻址是随机的,在一个磁道内则是顺序的)。

存储器分类:

随机存取存储器 RAM需要持续电力提供,可随机读写SRAM 静态随机存取存储器, 访问速度快、不需要刷新,缺点是集成度低、容量小、成本高。常用作高速缓存。DRAM 动态随机存取存储器,集成度高、 容量大、成本低,缺点是访问速度较慢、需要定期刷新。常作主存。
只读存储器 ROM存储的数据不会因掉电而丢失,读取的速度比 RAM 快MROM 只读存储器PROM 可编程只读存储器EPRROM 可擦可编程只读存储器闪速存储器

在CPU访问寄存器时,无论是存取数据或存取指令,都趋于聚集在一片连续的区域中,这就被称为局部性原理。

  • 时间局部性(temporal locality) :被引用过一次的存储器位置在未来会被多次引用(通常在循环中)。
  • 空间局部性(spatial locality):如果一个存储器的位置被引用,那么将来他附近的位置也会被引用。

高速缓存Cache

地址映射由硬件自动实现,对程序员是透明的

映射方法冲突从高到低:直接映像、组组相连映像,全相联映像

替换算法:

  • 随机替换
  • 先进先出
  • 近期最少使用
  • 优化替换算法

磁盘调度算法

先来先服务算法:谁先来先服务谁

最短寻道时间优先算法:每次查找时间最短的那个作业优先,柱面号相同的情况下先考虑扇区近的

  • 平均移臂距离:等于移臂总距离除以移臂次数

扫描算法或电梯调度算法:从当前磁头开始往最近的那个作业移动,直到这个方向没有作业在改变移动方向

循环扫描算法或单向扫描算法:和前者的区别就是,改变方向后会直接移动到这个方向的最里面

旋转调度算法

读取第一个记录:读取时间+处理时间

读取第2~n个记录:旋转到原来位置的时间 + 读取时间+处理时间

信息存储优化后:记录数 x (读取时间 + 处理时间)

输入输出技术

程序查询方式:CPU主动查询外设的数据传输是否完成,效率极低。

程序中断方式:外设完成数据传输后,向 CPU 发送中断,等待 CPU 处理数据,效率相对较高。

DMA方式:不需要 CPU 参与。

一个总线周期结束后,CPU响应DMA请求开始读取数据;

CPU 响应程序中断方式请求是在一条指令执行结束时间;

RAID

RAID 即磁盘冗余阵列技术,将数据分散存储在不同磁盘中,可并行读取,可冗余存储。

RAID5 磁盘容量=单个硬盘容量 * (N-1),其中N >= 3

计算机软件

操作系统概述

操作系统的 4 个特征:并发性、共享性、虚拟性和不确定性

操作系统层次

在 Linux 系统中,DNS的配置文件是:/etc/resolv.conf

操作系统内核包括的功能

  • 进程管理
  • 文件系统管理
  • 设备驱动管理
  • 内存管理

前驱图

进程调度

进程状态

进程资源图

线程

线程是CPU调度和分派的基本单位

进程是操作系统分配和管理资源的最小单位。

线程和其他同属一个进程的线程共享进程所拥有的全部资源,但不能共享线程所独有的资源,例如栈指针。

多线程通信方式:共享内存、消息传递

同步与互斥

互斥信号量:初始值为1

同步信号量:初值一般是共享资源的数量

PV操作

调度方式/算法

分为可剥夺和不可剥夺

算法:

  • 先来先服务
  • 时间片轮转
  • 优先级调度
  • 多级反馈调度: 时间片轮转和优先级调度结合,设置多个就绪队列,每个队列的优先级不同
  • 最晚截止期调度: 是指调度程序按每个任务的最接近其截止期末端的时间进行调度,系统根据当前任务截止期的情况,选取最接近截止期的任务运行;
  • 最早截止期调度: 是指调度程序按每个任务的截止期时间,选取最早到截止期的头端时间的任务进行调度。

死锁

产生死锁的必要条件:

  • 互斥条件它的意思是每个资源每次只能被一个线程(或进程)使用
  • 请求与保持条件它是指当一个线程因请求资源而阻塞时,则需对已获得的资源保持不放。
  • 不可剥夺条件它是指线程已获得的资源,在未使用完之前,不会被强行剥夺。
  • 循环等待条件只有若干线程之间形成一种头尾相接的循环等待资源关系时,才有可能形成死锁。

死锁资源计算:系统内有 n 个进程,每个进程都需要 R 个资源,那么其发生死锁的最大资源数为 n*(R-1)。其不发生死锁的最小资源数为 n*(R-1)+1。

死锁避免策略:银行家算法

在已知前两者的情况下,我们还需要列出仍需资源可用资源, 在将所有资源分配后,在判断剩余的资源可以让哪个进程先执行。

需要注意的是能够执行的进程,执行后将资源会返还,在判断剩余资源+返还资源足够哪个进程执行,以此类推

分页存储

物理地址分为两部分:

  • 逻辑地址 =页号+页内地址;
  • 物理地址 =块号+页内地址;

一般题目给的都是 4k=4096=2 的 12 次方,意味着要用 12 位二进制来表示页内地址,也就是说 16 进制的后三位是页内地址。

那么我们看下题的解题步骤如下:

确定页号和页内地址各占多少位,下题中逻辑地址为 2C25H,那么1个十六进制等于4位二进制,所以 C25 就是页内地址,2 为页号。

如果不是 16 进制就可以将页面大小转为 2 进制,逻辑地址也转为 2 进制在去计算。

如果是1kb,那么就是2的10次方,也就是说要用 10 位二进制来表示页内地址,逻辑地址 1024 转成 2 进制后就是 1 后面 10 个 0,还剩一个 1 就是页号。

非 16 进制解法

在页式存储管理中,逻辑地址到物理地址的转换通常通过以下公式进行:

  • 物理地址 = (块号*页面大小+ 页内偏移)

其中:

  • 逻辑地址页号 = 逻辑地址 / 页面大小
  • 逻辑地址页号可以转换成物理块号
  • 页内偏移 = 逻辑地址 % 页面大小

上述公式中,页面大小是指每个页面的大小,通常以字节为单位。

局部性原理

第一步查看状态位是否有为0的,为0的划掉不在答案范围内

第二步查看访问位是否有为0的,有的话就是答案,木有的话进行下一步

第三步查看修改位是否有为0的,有的话就是答案

段式存储

文件系统

目录结构

多级目录结构是树形结构,其节点是目录,叶子节点是文件

全文路径:盘符开头或者分隔符开头,文件名结尾,结尾的分隔符可有可无

绝对路径:以分隔符开头,但是不带文件名

相对路径:不以分隔符开头,直接从当前所在目录的下一个子目录开始

多级索引结构

直接地址索引

一级间接索引 = 磁盘索引块大小 / 地址项大小

二级间接索引 = 一级间接索引数 x 一级间接索引数

中间件

中间件是在一个分布式系统环境处于操作系统和应用程序之间的软件,位于客户机服务器操作系统之上,应用服务器之下。

中间件是一类软件,而不是一种软件

常见类型

  • 消息中间件
  • 事物处理中间件
  • 数据存储管理中间件
  • Web 服务器中间件:tomcat
  • 安全中间件
  • 跨平台和架构的中间件
  • 专用平台中间件
  • 网络中间件

嵌入式

分数占比

本小时知识点会涉及单项选择题和案例分析题,约占 5 分

微处理器分类

微处理器 MPU:集成度低,可靠性高

微控制器 MCU:单片机,把核心存储器和部分外设封装在片内

数字信号处理器 DSP:采用哈弗结构,对系统结构和指令进行特殊设计,适合执行大量数据处理

图形处理器 GPU:与 CPU 相比加强了浮点运算能力和多核并行计算能力,常用于 AI 深度学习

片上系统 SOC:包含完整的硬件和软件的芯片,能直接运行

嵌入式软件开发

嵌入式的软硬件都是可以配置和裁剪的

嵌入式操作系统

微型化 、可定制、实时性、可靠性、易移植性

特点:

  • 编码体积小
  • 可靠性高
  • 面向应用,可以裁剪和移植

评价指标:

  • 系统调用平均运行时间、任务切换时间、线程切换时间、信号量混洗时间(指从一个任务释放信号量到另一 个等待该信号量的任务被激活的时间延迟)、中断响应时间等