本文基于软考高级系统架构师的相关书籍和视频,记录学习过程中的知识点。后续可能还会继续更新后面章节的知识点,感兴趣的可以点个收藏和关注
如有错误,还请评论区指点。
计算机硬件
基本组成
冯·诺依曼结构: 一种将程序指令存储器和数据存储器合并在一起的存储器结构。
哈佛结构: 一种将程序指令存储和数据存储分开的存储器结构。
中央处理单元 CPU
CPU的功能:
- 程序控制
- 操作控制
- 时间控制
- 数据处理
运算器:
- 算数逻辑单元( ALU),负责处理数据,实现对数据的算数运算和逻辑运算
- 累加寄存器(AC),是一个通用寄存器,当 ALU 执行运算时提供一个工作区
- 数据缓冲寄存器(DR):暂时存放内存的指令和数据
- 状态条件寄存器(PSW),保存由算数指令和逻辑指令运行时建立的各种条件码内容
控制器:
- 指令寄存器IR:暂存CPU执行指令
- 程序计数器PC:存放指令执行地址
- 地址寄存器AR:保存当前CPU所访问的内存地址
- 指令译码器ID:分析指令操作码
CPU 依据指令周期的不同阶段来区分二进制的指令和数据
指令系统
计算机指令的组成:操作码+操作数,操作码决定要完成的操作,操作数指参加运算的数据的单元地址
执行过程:取指令 - 分析指令 - 执行指令
将程序计数器中的指令地址取出,送入地址总线,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、内存(主存)、外存(辅存)
层次化存储结构主要为了解决存储的容量、价格和速度之间的矛盾
存储器
按存储器所处的位置可分为:内存、外存。
按存储器构成材料:磁存储器(磁带)、半导体存储器、光存储器(光盘)。
按存储器访问方式:按地址访问、按内容访问(相联存储器)。
按寻址方式:随机存储器(访问任意存储单元所用时间相同)、顺序存储器(只能按顺序访问,如磁带)、直接存储器(二者结合,如磁盘,对于磁道的寻址是随机的,在一个磁道内则是顺序的)。
SRAM:静态存储器,集成率低,功耗大,不需要刷新,速度比 DRAM 快
DRAM:动态存储器, 需要周期性刷新
存储器分类:
name | eg |
---|---|
随机存取存储器RAM-Random Access Memory | DRAM-动态存储器 SRAM-静态存储器 |
只读存储器ROM-Read-Only Memory | MROM PROM EPRROM 闪速存储器 |
在CPU访问寄存器时,无论是存取数据或存取指令,都趋于聚集在一片连续的区域中,这就被称为局部性原理。
- 时间局部性(temporal locality) :被引用过一次的存储器位置在未来会被多次引用(通常在循环中)。
- 空间局部性(spatial locality):如果一个存储器的位置被引用,那么将来他附近的位置也会被引用。
高速缓存Cache
地址映射由硬件自动实现,对程序员是透明的
映射方法冲突从高到低:直接映像、组组相连映像,全相联映像
替换算法:
- 随机替换
- 先进先出
- 近期最少使用
- 优化替换算法
磁盘调度算法
先来先服务算法:谁先来先服务谁
最短寻道时间优先算法:每次查找时间最短的那个作业优先,柱面号相同的情况下先考虑扇区近的
- 平均移臂距离:等于移臂总距离除以移臂次数
扫描算法或电梯调度算法:从当前磁头开始往最近的那个作业移动,直到这个方向没有作业在改变移动方向
循环扫描算法或单向扫描算法:和前者的区别就是,改变方向后会直接移动到这个方向的最里面
旋转调度算法
硬盘的存取时间主要包括三个部分。
- 旋转起达时间:是指在到达目的磁道以后,等待被访问的记录块旋转到磁头下方的等待时间,常称为旋转延迟或旋转起达时间;
- 传输时间:信息的读写操作时间或叫传输时间。
- 寻道时间:是指磁头从原先位置移动到目的磁道所需要的时间;
- 公式:旋转起达时间 + 传输时间 + (寻道时间 传输时间) x (磁道数-1)
输入输出技术
程序查询方式:CPU主动查询外设的数据传输是否完成,效率极低。
程序中断方式:外设完成数据传输后,向 CPU 发送中断,等待 CPU 处理数据,效率相对较高。
DMA方式:不需要 CPU 参与。
一个总线周期结束后,CPU响应DMA请求开始读取数据;
CPU 响应程序中断方式请求是在一条指令执行结束时间;
总线结构
总线:计算机设备和设备之间传输信息的公共数据通道,由总线上的所有设备共享
分为三类:
内部总线:芯片和处理器之间通信的总线
系统总线:板级总线
- 数据总线:传输数据
- 地址总线:系统可管理的内存空间大小
- 控制总线:传送控制命令
外部总线:设备一级的总线,微机和外部设备的总线,比如USB
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位二进制来表示页内地址,也就是说十六进制的后三位是页内地址,那么我们看上题的解题步骤如下:
第一步确定页号和页内地址各占多少位,下题中逻辑地址为 2C25H,那么1个十六进制等于4位二进制,所以 C25 就是页内地址,2 为页号。
如果不是十六进制就可以将页面大小转为2进制,逻辑地址也转为2进制在去计算。
如果是1kb,那么就是2的10次方,也就是说要用 10 位二进制来表示页内地址,逻辑地址 1024 转成 2 进制后就是 1 后面 10 个 0,还剩一个 1 就是页号。
局部性原理
第一步查看状态位是否有为0的,为0的划掉不在答案范围内
第二步查看访问位是否有为0的,有的话就是答案,木有的话进行下一步
第三步查看修改位是否有为0的,有的话就是答案
段式存储
文件系统
目录结构
多级目录结构是树形结构,其节点是目录,叶子节点是文件
全文路径:盘符开头或者分隔符开头,文件名结尾,结尾的分隔符可有可无
绝对路径:以分隔符开头,但是不带文件名
相对路径:不以分隔符开头,直接从当前所在目录的下一个子目录开始
多级索引结构
直接地址索引
一级间接索引 = 磁盘索引块大小 / 地址项大小
二级间接索引 = 一级间接索引数 x 一级间接索引数
嵌入式
典型架构:层次化模式架构和递归模式架构
微处理器分类
微处理器 MPU:集成度低,可靠性高
微控制器 MCU:单片机,把核心存储器和部分外设封装在片内
数字信号处理器 DSP:采用哈弗结构,对系统结构和指令进行特殊设计,适合执行大量数据处理
图形处理器 GPU:与 CPU 相比加强了浮点运算能力和多核并行计算能力,常用于 AI 深度学习
片上系统 SOC:多个集成电路组合在一个芯片上,并且包含完整的硬件系统,如操作系统
嵌入式软件开发
嵌入式的软硬件都是可以配置和裁剪的
嵌入式操作系统
特点:
- 编码体积小
- 可靠性高
- 面向应用,可以裁剪和移植
评价指标:
- 系统调用平均运行时间、任务切换时间、线程切换时间、信号量混洗时间(指从一个任务释放信号量到另一 个等待该信号量的任务被激活的时间延迟)、中断响应时间等
系统性能
性能指标
计算机
- 时钟频率
- 运算精度
- 吞吐率
- 可用性
- 可维护性
- 完整性和安全性
数据库管理系统
- 最大并发事务处理能力
- 数据库所允许的索引数量
- 最大连接数。
操作系统的性能指标
- 系统响应时间
- 系统吞吐量
- 可靠性
- 可移植性
web 服务器:最大并发连接数,响应延迟,吞吐量
性能计算
- 等效指令速度法:考虑了各类指令在程序中所占的比例
性能评估
- 基准测试程序:应用中用的最多最频繁的那部分核心程序作为评价计算机性能的标准程序
- Web 服务器:基准性能测试,压力测试,可靠性测试