软件设计师考试知识点总结

  • 格式:pdf
  • 大小:2.65 MB
  • 文档页数:43

软件设计师考试知识点总结

第⼀章:计算机组成原理与体系结 考点1:运算器和控制器

1. 运算器

1. 算术逻辑单元ALU:数据的算术运算和逻辑运算

2. 累加寄存器AC:通⽤寄存器,为ALU提供⼀个⼯作区,⽤在暂存数据

3. 数据缓冲寄存器DR:写内存时,暂存指令或数据

4. 状态条件寄存器PSW:存储状态标志与控制标志

2. 控制器

1. 程序计数器PC:存储下⼀条要执⾏指令的地址

2. 指令寄存器IR:存储即将执⾏的指令

3. 指令译码器ID:对指令中的操作码字段进⾏分析解释

4. 时序部件:提供时序控制信号

考点2:数据的表⽰

1. 进制转换

1. R进制转⼗进制:按权展开

2. ⼗进制转R进制:短除法

3. ⼆进制转⼋、⼗六进制:分组快速转换

2. 数据编码

1. 原码:正数的原码是它本⾝,负数的原码是符号位为1

2. 反码:正数的反码是它本⾝,负数的反码是除符号位不变,其他位取反

3. 补码:正数的补码是它本⾝,负数的补码是负数的反码+1

4. 移码:将补码的最⾼位取反

3. 浮点数

1. 浮点数的表⽰:N=M*Re,M为尾数,R为基数,e为阶码 1. 尾数⽤补码表⽰,阶码⽤移码表⽰

2. 尾数的位数决定数的有效精度,位数越多精度越⾼

3. 阶码的位数决定数的表⽰范围,位数越多范围越⼤

2. 浮点数的运算

1. 对阶,将阶码⼩的扩⼤,使两个数的阶码相同

2. 求尾数和(差)

3. 结果规格化并判断溢出

考点3:Flynn分类法

考点4:CISC与RISC

考点5:流⽔线技术

1. 流⽔线相关概念

1. 流⽔线:流⽔线是指在程序执⾏时多条指令重叠进⾏操作的⼀种准并⾏处理实现技术

2. 流⽔线建⽴时间:1条指令执⾏时间

3. 流⽔线周期:执⾏时间最长的⼀段

4. 吞吐率:单位时间内流⽔线处理机流出的结果。对指令⽽⾔就是单位时间内执⾏的指令数。

2. 流⽔线相关计算

1. 流⽔线执⾏时间

1. 理论公式:(t1+t2+..+tk)+(n-1)*Δt

2. 实践公式:k*Δt +(n-1)*Δt

2. 吞吐率

1. 吞吐率:TP = 指令条数 / 流⽔线执⾏时间

2. 最⼤吞吐率:1 / Δt

3. 流⽔线加速⽐:顺序执⾏时间 / 流⽔线执⾏时间

考点6:存储系统

1. 分级存储系统

1. 存储体系结构

2. 局部性原理

1. 概念:程序在执⾏时呈现出局部性规律,即在⼀段时间内,整个程序的执⾏仅限于程序中的某⼀部分。相应地,执⾏所访问的存储空间也局限于某个内存区域 2. 时间局部性:如果程序中的某条指令⼀旦执⾏,则不久之后该指令可能再次被执⾏

3. 空间局部性:⼀旦程序访问了某个存储单元,则不久之后,其附近的存储单元也将被访问

2. Cache(⾼速缓存)

1. 作⽤:提⾼CPU对主存的访问速度。Cache是访问速度最快的层次。

2. 特点:容量⼩,速度快,成本⾼

3. 性能分析:若H代表对Cache的命中率,tc为Cache的读写时间,tm为主存的读写时间,则Cache的等效访问时间ta为:ta =Htc + (1-H)tm 4. Cache映像⽅式

3. 主存

1. 内存单元数:最⼤地址+1-最⼩地址

2. 内存总容量:按字节编址,内存单元数*8bit;按字编址,内存单元数*机器字长

3. 已知芯⽚单位容量,求所⽤芯⽚的⽚数,总容量/单位容量

4. 已知所⽤芯⽚的⽚数,求取芯⽚单位容量,总容量/芯⽚⽚数

考点7:总线系统

1. 数据总线(Data Bus):在CPU与RAM之间来回传送需要处理或是需要储存的数据。

2. 地址总线(Address Bus):⽤来指定在RAM之中储存的数据的地址。 3. 控制总线(Control Bus):将微处理器控制单元的信号,传送到周边设备,⼀般常见的为 USB Bus和1394 Bus。

考点8:可靠性

1. 串联系统计算:R总=R1*R2;

2. 并联系统计算:R总=1-(1-R)2;

3. N模混联系统:先将整个系统划分为多个部分串联R1、R2…等,再计算R1、R2内部的并联可靠性,带⼊原公式

考点9:校验码

1. 奇偶校验

1. 基本思想:在编码中增加⼀位校验位使编码中1的个数为奇数(奇校验)或者为偶数(偶校验)

2. 特点:只能检测出奇数位出错但不知道哪位出错,并且不可以纠正

2. 循环冗余校验码 1. 基本思想:利⽤⽣成多项式为 k 个数据位产⽣ r 个校验位来进⾏编码,其编码长度为 k+r,运⽤模⼆除法计算校验码

2. 特点:可以检错但不能纠错

3. 海明码

1. 基本思想:在n个数据位之间加上k个校验位(n和k必须满⾜ 2k - 1 ≥ n+k 的关系),通过扩⼤码距来实现检错和纠错。

2. 特点:可以检错和纠错

第⼆章:操作系统 考点1:进程管理

1. 进程的状态

1. 三态模型

2. 五态模型

2. 前趋图 1. 组成:前趋图是⼀个有向⽆循环图,由节点和有向线段组成,节点表⽰进程或程序段,有向线段表⽰节点间的前趋关系

2. 表⽰:两程序段 Pi 和 Pj 的前趋关系表⽰为 Pi → Pj ,其中 Pi 是Pj 的前趋, Pj 是 Pi 的后继, 含义是 Pi 执⾏完毕才能由 Pj 执⾏

3. 信号量与PV操作

1. 同步、互斥、临界资源、临界区

1. 临界资源:各进程采取互斥的⽅式,实现共享的资源称作临界资源

2. 临界区:每个进程中访问临界资源的那段代码称为临界区,临界区中的临界资源同⼀时间只能由⼀个进程(线程)访问

3. 互斥:互斥是进程(线程)之间的间接制约关系。当⼀个进程(线程)进⼊临界区使⽤临界资源时,另⼀个进程(线程)必须等待。只有当 使⽤临界资源的进程退出临界区后,这个进程(线程)才会解除阻塞状态

4. 同步:同步是进程(线程)之间的直接的制约关系。相互合作的进程(线程)需要在某些确定点上协调他们的⼯作,当⼀个进程(线程)

达到这些点后,除⾮另⼀个进程(线程)已经完成某些操作,否则只能等待这些操作结束

2. 信号量:信号量(semaphore)的数据结构为⼀个值和⼀个指针,指针指向等待该信号量的下⼀个进程,值与相应资源的使⽤情况有关。 1. 值 S ≥ 0:表⽰某资源的可⽤数

2. 值 S < 0:其绝对值表⽰阻塞队列中等待该资源的进程数

3. P 操作定义:S := S - 1 ,将信号量 S 的值减⼀

1. 若 S ≥ 0,则执⾏ P 操作的进程继续执⾏

2. 若 S < 0,则置该进程为阻塞状态,并将其插⼊阻塞队列中

4. V 操作定义:S := S + 1,将信号量 S 的值加⼀

1. 若 S > 0,则执⾏ V 操作的进程继续执⾏

2. 若 S ≤ 0,则从阻塞状态唤醒⼀个进程,并将其插⼊就绪队列,执⾏ V 操作的进程继续执⾏

4. 死锁及银⾏家算法

1. 死锁

1. 概念:两个以上的进程(线程)互相都因要求对⽅已经占有的资源导致⽆法运⾏下去的现象,产⽣的原因是资源竞争及进程推进顺序⾮法 2. 产⽣条件:

1. 互斥条件:进程对其要求的资源进⾏排他性控制,即⼀次只允许⼀个进程使⽤

2. 请求保持条件:零星的请求资源,即获得部分资源后⼜请求其他资源被堵塞并对已获得的资源保持不放

3. 不剥夺条件:进程已获得资源在未使⽤完之前不能被剥夺,只能在使⽤完后⾃⼰释放

4. 环路条件:在进程资源有向图中必构成环路,其中每个进程占有下⼀个进程申请的⼀个或多个资源

3. 处理

1. 预防:使⽤预先静态分配法和资源有序分配法来预防

2. 避免:银⾏家算法

3. 检测:允许死锁发⽣,但程序会定时运⾏⼀个“死锁检测”程序,如果检测到死锁,则设法加以解除。

4. 解除:使⽤资源剥夺法和撤销进程法解除死锁

2. 银⾏家算法

1. 相关概念

1. Available:可利⽤资源向量,它是⼀个含有 m个元素的数组,其中每个元素代表⼀类可利⽤资源的数⽬ 2. Max:最⼤需求矩阵,n*m矩阵,表⽰n个进程的每⼀个对m类资源的最⼤需求 3. Allocation:分配矩阵,n*m矩阵,表⽰每个进程已分配的每类资源的数⽬ 4. Need:需求矩阵,n*m矩阵,表⽰每个进程还需要各类资源数

Need[i,j]= Max[i,j]- Allocation[i,j]

2. 算法步骤

1. 请求性算法步骤

设Request i 为进程 Pi 的请求向量。如果 Request i[ j ] == k 那么进程 Pi 需要资源 Rj 的实例数量为 k,

当进程 Pi 作出资源请求时,执⾏下列步骤:

1. 若Request i[ j ] ≤ Need[ i, j ],转步骤(2);否则错误返回,因为进程 Pi 超过其最⼤请求

2. 若Request i[ j ] ≤ Available[ j ],转步骤(3);否则进程 Pi 等待,因为没有可⽤资源

3. 假设系统分配了进程 Pi 所请求的资源,则有:

Available [ j] := Available [ j] - Request i[ j];

Allocation[i, j] := Allocation[i, j]+Request i[ j];

Need[i, j] := Need[i, j] - Request i[ j]

2. 安全性算法步骤

若系统新状态是安全的,则完成分配;若系统新状态是不安全的,则恢复原状态,进程等待 1. Work[ j] := Available[ j];Finish[ i] := false;

2. 寻找满⾜条件的 i :Finish[ i] = false;Need[i, j] ≤ Work[ j];若不存在,转步骤(4);

3. Work[ j] := Work[ j] + Allocation[i, j];Finish[ i] := true;转步骤(2)

4. 若对所有 i,Finish[ i] = true,则系统处于安全状态,否则处于不安全状态

考点2:存储管理

1. 页式存储

1. 基本原理

1. 页或页⾯:系统将进程的地址空间划分成若⼲⼤⼩相等的区域,称为页或页⾯

2. 块或页框:系统将主存空间划分成与页相同⼤⼩的若⼲物理块,称为块或页框

3. 内存分配:在为进程分配主存时,将进程中若⼲页分别装⼊多个不相邻的块中

2. 地址结构

1. 组成:页号P和偏移量W(页内地址)。0~11位为页内地址(4KB),12~31位为页号(1MB)

2. 地址变换