软考-软件设计师笔记【原创无样式版】需要笔记请联系

越努力,越幸运!!!

计算机系统基础

(一)CPU的功能
(1)程序控制功能。CPU通过执行指令来控制程序的执行顺序。
(2)操作控制。
(3)时间控制。
(4)数据处理。CPU最根本的任务。
(二)运算器。
运算器也称为算术逻辑单元(ArithmeticandLogicUnit,ALU),其主要功能是在控制器的控制下完成各种算术运算和逻辑运算。运算器的组成包含如下。
① 算术逻辑单元ALU:数据的算术运算和逻辑运算;
② 累加寄存器AC:通用寄存器,为ALU提供一个工作区,用在暂存数据;
③ 数据缓冲寄存器DR:写内存时,暂存指令或数据;
④ 状态条件寄存器PSW:存状态标志与控制标志。
(三)控制器。
控制器是分析和执行指令的部件,也是统一指挥并控制计算机各部件协调工作的中心部件,所依据的是机器指令。控制器的组成包含如下。
① 程序计数器PC:存储下一条要执行指令的地址;
② 指令寄存器IR:存储即将执行的指令;
③ 指令译码器ID:对指令中的操作码字段进行分析解释;
④ 地址寄存器AR:用来保存当前CPU所访问的内存单元的地址。
⑤时序部件:提供时序控制信号。

(四)Flynn 分类
1966年,Michael.J.Flynn 提出根据指令流、数据流的多倍性特征对计算机系统进行分类(通常称为 Flynn 分类法),有关定义如下。
(1)指令流:指机器执行的指令序列;
(2)数据流:指由指令流调用的数据序列,包括输入数据和中间结果,但不包括输出数据。

Flynn根据不同的指令流-数据流组织方式,把计算机系统分成以下四类。
(1)单指令流单数据流(Single Instruction stream and Single Data stream,SISD):SISD 其实就是传统的顺序执行的单处理器计算机,其指令部件每次只对一条指令进行译码,并只对一个操作部件分配数据。
(2)单指令流多数据流(Single Instruction stream and Multiple Data stream,SIMD): SIMD 以并行处理机(矩阵处理机)为代表,并行处理机包括多个重复的处理单元,由单一指令部件控制,按照同一指令流的要求为它们分配各自所需的不同数据。
(3)多指令流单数据流(Multiple Instruction stream and Single Data stream,MISD): MISD 具有n个处理单元,按 n 条不同指令的要求对同一数据流及其中间结果进行不同的处理。一个处理单元的输出又作为另一个处理单元的输入。这类系统实际上很少见到。
(4)多指令流多数据流(Multiple Instruction stream and Multiple Data stream,MIMD): MIMD 是指能实现作业、任务、指令等各级全面并行的多机系统。如多核处理器、多处理机属于 MIMD。
(五)指令系统
复杂指令系统CISC的特点
(1)指令数量众多。指令系统拥有大量的指令,通常有 100~250 条。
(2)指令使用频率相差悬殊。最常使用的是一些比较简单的指令,仅占指令总数的20%,但在程序中出现的频率却占80%。而大部分复杂指令却很少使用。
(3)支持很多种寻址方式。支持的寻址方式通常为 5~20 种。
(4)变长的指令。指令长度不是固定的,变长的指令增加指令译码电路的复杂性。
(5)指令可以对主存单元中的数据直接进行处理。典型的 CISC 通常都有指令能够直接对主存单元中的数据进行处理,其执行速度较慢。
(6)以微程序控制为主。CISC 的指令系统很复杂,难以用硬布线逻辑(组合逻辑)电路实现控制器,通常采用微程序控制。

精简指令系统RISC的特点 
(1)指令数量少。优先选取使用频率最高的一些简单指令和一些常用指令,避免使用复杂指令。只提供了 LOAD(从存储器中读数)和 STORE(把数据写入存储器)两条指令对存储器操作,其余所有的操作都在 CPU 的寄存器之间进行。
(2)指令的寻址方式少。通常只支持寄存器寻址方式、立即数寻址方式和相对寻址方式。
(3)指令长度固定,指令格式种类少。因为 RISC 指令数量少、格式少、相对简单,其指令长度固定,指令之间各字段的划分比较一致,译码相对容易。

4)以硬布线逻辑控制为主。为了提高操作的执行速度,通常采用硬布线逻辑(组合逻辑)来构建控制器。
(5)单周期指令执行,采用流水线技术。因为简化了指令系统,很容易利用流水线技术,使得大部分指令都能在一个机器周期内完成。少数指令可能会需要多周期,例如, LOAD/STORE 指令因为需要访问存储器,其执行时间就会长一些。
(6)优化的编译器:RISC 的精简指令集使编译工作简单化。因为指令长度固定、格式少、寻址方式少,编译时不必在具有相似功能的许多指令中进行选择,也不必为寻址方式的选择而费心,同时易于实现优化,从而可以生成高效率执行的机器代码。
(7)CPU 中的通用寄存器数量多,一般在 32 个以上,有的可达上千个。

(六)数据表示
进制转换-----略

1 -1 1-1
原码 0000 0001 1000 0001 1000 0010
反码 0000 0001 1111 1110 1111 1111
补码 0000 0001 1111 1111 0000 0000
移码 1000 0001 0111 1111 0000 0000

补码是最适合进行数字加减运算的数字编码。
移码只用于表示浮点数的阶码,所以只用于整数

(七)校验码
码距与检错纠错:
  一个编码系统的码距就是整个编码系统中任意(所有)两个码字的最小距离。若一个编码系统有四种编码分别为:0000,0011,1100,1111,此编码系统中0000与1111的码距为4;0000与0011的码距为2,是此编码系统的最小码距。因此该编码系统的码距为2。
1.在一个码组内为了检测e个误码,要求最小码距应该满足: d>=e+1 
 2.在一个码组内为了纠正t个误码,要求最小码距应该满足: d>=2t+1 
3、同时纠错检错:d>=e+t+1

例如:
  假如我们现在要对A,B两个字母进行编码。我们可以选用不同长度的编码,以产生不同码距的编码,分析它们的检错纠错能力。 
  1、若用1位长度的二进制编码。若A=1,B=0。这样A,B之间的最小码距为1。 
  合法码:{0,1};      非法码:{0,1}; 
2、若用2位长度的二进制编码,可选用11,00作为合法编码,也可以选用01,10作为合法编码。若以A=11,B=00为例,A、B之间的最小码距为2。  合法码:{11,00};     非法码:{01,10};
3、若用3位长度的二进制编码,可选用111,000作为合法编码。A,B之间的最小码距为3。 
  合法码:{111,000};     非法码:{001,010,011,100,101,110};

1、奇偶校验
只能检测代码中奇数位出错的编码,但不能发现偶数位出错的情况。
2、海明码
海明码的校验码的位置必须是在2n位置(n从0 开始,分别代表从左边数起分别是第1、2、4、8、16……),信息码也就是在非2n位置

设数据位是n位,校验位是K位,则n和k必须满足以下关系:
2k≥n+k+1
3、循环冗余校验码CRC

–例题
● 海明码是一种纠错码,其方法是为需要校验的数据位增加若干校验位,使得校验位的值决定于某些被校位的数据,当被校数据出错时,可根据校验位的值的变化找到出错位,从而纠正错误。对于 32 位的数据,至少需要加( )个校验位才能构成海明码。
以 10 位数据为例,其海明码表示为 D9D8D7D6D5D4P4D3D2D1P3D0P2P1中,其中 Di(0≤i≤9)表示数据位,Pj(1 ≤j≤4)表示校验位,数据位 D9由 P4、P3和 P2进行校验(从右至左 D9的位序为 14,即等于 8+4+2,因此用第 8 位的 P4、第 4 位的 P3和第 2 位的 P2校验),数据位 D5 由( )进行校验
(1) A.3 B.4 C. 5 D.6
(2)A.P4P1 B. P4P2 C.P4P3P1 D. P3P2P1

试题分析

海明码数据位与校验位之间的关系可以采用下述公式表示:
2k≥n+k+1,其中数据位是n位,校验位是k位。因此第5题套入公式可得需要6位校验位。
第6题,D5在第10位,10=8+2=23+21,由于校验码处于20、21、22、23…位置,分别对应P1、P2、P3、P4,因此D5是由P4P2进行校验的。
参考答案:D、B

(八)指令控制方式

(1)顺序方式。各条机器指令之间顺序串行地执行,执行完一条指令后才取下一条指令。缺点是速度慢,机器各部件利用率低。

(2)重叠方式。在解释第K条指令的操作完成之前就可以开始解释第K+1条指令。

(3)流水方式

流水线的吞吐率和最大吞吐率:吞吐率是指单位内流水线处理机流出的结果数。对指令而言,就是单位时间内执行的指令数。

流水线加速比:

流水线周期:
执行时间最长的一段
公式:
① 理论公式:(t1+t2+…+tk)+(n-1)*△t
② 实践公式:(k+n-1)*△t

例如:若流水线把一条指令分为取指、分析和执行三个部分,三部分的时间分别是取指2ns,分析2ns,执行1ns。那么流水线周期是多少?100条指令全部执行完毕需要的时间是多少?
某计算机系统采用 5 级流水线结构执行指令,设每条指令的执行由取指令(2 Δt )、分析指令(1Δt )、取操作数(3Δt )、运算(1Δt )和写回结果(2Δt ) 组成, 并分别用5 个子部件完成,该流水线的最大吞吐率为( ) ;若连续向流水线输入10条指令,则该流水线的加速比为( )

试题分析
本题考查流水线计算。
流水线周期为:3Δt。
流水线的吞吐率为:指令条数/流水线执行时间。
即:
n/(2Δt+1Δt+3Δt+1Δt+2Δt+(n-1)*3Δt)=n/(6Δt+3nΔt)
流水线的最大吞吐率就是上面的式子中,n趋向于无穷大的结果。当n趋向于无穷大时,上式的结果为:1/3Δt。所以应该选B。
流水线加速比=不用流水线的执行时间/使用流水线的执行时间
10条指令不用流水线的执行时间=(2Δt+1Δt+3Δt+1Δt+2Δt)*10=90Δt。
10条指令使用流水线的执行时间=(2Δt+1Δt+3Δt+1Δt+2Δt)+(10-1)*3Δt=36Δt。
所以加速比为:90Δt/36Δt=5:2。
(九)存储系统

内存编址
存储器由一块块的空间(存储单元)组成,为了方便寻找到每一块空间,我们需要对每一个空间进行标识——内存编址。

芯片
存储器由若干个芯片构成。

内存容量
存储器的大小。内存容量=每个芯片容量芯片个数。
每个芯片的容量=一个地址代表的容量
编址总数。

数据总线
计算机一次处理n位的数据,则数据总线的长度为n。注意的是:数据总线的长度,并不一定代表一个地址的长度。


和数据总线紧密相关。数据总线有几位,则一个字就由多少位组成。如64位计算机,表示一次可以处理64位数据,则1个字就是64位。

地址总线
假如需要n位二进制数来表示所有的地址,则地址总线的个数为n。

例如:
内存按字节编址,地址从A4000H到CBFFFH,共有 (1) 个字节。若用存储容量为32K×8bit的存储芯片构成该内存,至少需要 (2) 片。
(1)A、80K B、96K C、160K D、192K
(2)A、2 B、5 C、8 D、10

分析:
1.先求出地址总个数:CBFFFH-A4000H+1=28000H(十六进制)
2*(164)+8*(163)=163840=160*1024(个)=160K(个)
2.求解芯片个数
160KB/32KB=5(个)

Cache:
在CPU的所有操作中,访问内存是最频繁的操作。由于一般微机中的主存储器的工作速度比CPU低一个数量级,加上CPU的所有访问都要通过总线这个瓶颈,所以,缩短存储器的访问时间是提高计算机速度的关键。采用在CPU和内存之间加进高速缓冲存储器cache的办法较好地解决了这一问题。
简单来说cache是为了解决高速运行的cpu与主存储器之间速度不匹配的问题。

cache的地址映像方法:
(1)直接映像。

(2)全相连映像

(3)组相联映像

cache的性能

CPU在访问内存时,首先判断所要访问的内容是否在Cache中,如果在,就称为“命中”,此时CPU直接从Cache中调用该内容;否则,就称为 “不命中”,CPU只好去内存中调用所需的子程序或指令了。CPU不但可以直接从Cache中读出内容,也可以直接往其中写入内容。由于Cache的存取速率相当快,使得CPU的利用率大大提高,进而使整个系统的性能得以提升。

如果以Hc为代表对Cache的访问命中率,tc为Cache的存取时间,tm为主存的访问时间,则Cache的平均访问时间ta为 :
ta=Hctc+(1-Hc)tm

因为cache的内容是部分主存内容的副本,应该与主存内容保持一致。而CPU对cache的写入更改了cache内容,如何与主存内容保持一致就有几种写操作工作方式可供选择,统称为写策略。

1.写回法(write--back)

当CPU对cache写命中时,只修改cache的内容不立即写入主存,只当此行被换出时才写回主存。这种策略使cache在CPU-主存之间,不仅在读方向而且在写方向上都起到高速缓存作用。
2、写直达法(write–through)
  又称全写法,写透。是当cache写命中时,cache与主存同时发生写修改。
3、标记法
数据进入cache后,有效位置1,当cpu对该数据修改时,数据只写入主存并将该有效位置0。要从cache中读取数据时要测试其有效位,若为1则直接从cache中取数,否则从主存中取数。

磁盘存储器:

●在磁盘上存储数据的排列方式会影响 I/O 服务的总时间。假设每磁道划分成 10 个物理块,每块存放 1 个逻辑记录。逻辑记录 RI.R2, …, RI0 存放在同一个磁道上, 记录的安排顺序如下表所示;

假定磁盘的旋转速度为 30ms/周,磁头当前处在 R1 的开始处。若系统顺序处理这些记录,使用单缓冲区,每个记录处理时间为 6ms,则处理这 10 个记录的最 长时间为 (7) ;若对信息存储进行优化分布后,处理 10 个记录的最少时间为(8)_.
(7)A.189ms B.208ms C.289ms D.306ms
(8)A.60 ms B.90 ms C. l09ms D. 180ms

试题分析
系统读记录的时间为30/10=3ms。对第一种情况:系统读出并处理记录R1之后,将转到记录R4的开始处,所以为了读出记录R2,磁盘必须再转一圈,需要3ms(读记录)加30ms(转一圈)的时间。这样,处理10个记录的总时间应为处理前9个记录(即R1,R2,…,R9)的总时间再加上读R10和处理时间(9×33ms+ 9ms=306ms)。
若对信息进行分布优化的结果对应关系所示:
物理块 1 2 3 4 5 6 7 8 9 10
逻辑记录R1 R8 R5 R2 R9 R6 R3 R10 R7 R4
从上表可以看出,当读出记录R1并处理结束后,磁头刚好转至R2记录的开始处,立即就可以读出并处理,因此处理10个记录的总时间为:
10×(3ms(读记录)+6ms(处理记录))=10×9ms90ms
参考答案:(7)D (8)B

(十)总线(Bus)
是计算机各种功能部件之间传送信息的公共通信干线。
按照总线相对应cpu或其他芯片的位置可分为:
(1)内部总线
寄存器之间和算数逻辑部件ALU与控制部件之间传输数据所用的总线。
(2)外部总线
cpu与内存和I/O设备接口之间通讯

按照总线功能划分:
(1)地址总线——传送地址信息
(2)数据总线——传送数据信息
(3)控制总线——传送控制信号和时序信号
按总线在微机中的位置,可以分为机内总线和机外总线两种。
按总线功能划分,可以分为局部总线、系统总线、通信总线三种。
按照总线中数据线的多少,可以分为并行总线和串行总线。

程序设计语言基础知识
(一)程序语言基本概念
低级语言:0、1组成的机器指令序列或汇编语言(如:mov ax,bx )
高级语言:java、C、C++、Python、Delphi、PASCAL等。
编译程序:将源程序翻译成目标语言程序,然后在计算机上运行目标程序。
解释程序:直接解释或翻译成中间代码。不生成独立的目标程序。

(二)编译程序基本原理

(1)词法分析阶段:输入源程序,对构成源程序的字符串进行扫描和分解,识别出一个个的单词,删掉无用的信息,报告分析时的错误。
(2)语法分析阶段:语法分析器以单词符号作为输入,分析单词符号是否形成符合语法规则的语法单位,如表达式、赋值、循环等,按语法规则分析检查每条语句是否有正确的逻辑结构。

(3)语义分析阶段:主要检查源程序是否存在静态语义错误,并收集类型信息供后面的代码生成阶段使用,如:赋值语句的右端和左端的类型不匹配。表达式的除数是否为零等。
(4)中间代码是源程序的一种内部表示,或称中间语言。中间代码的作用是使编译程序的结构在逻辑上更为简单明确。使用中间代码可提高编译程序的可移植性,常见的有逆波兰记号、四元式、三元式和树。
中间代码可以有多种形式,与具体的机器无关。
(5)中间代码优化和目标代码生成
(6)符号表管理——记录符号的信息
(7)出错处理——静态错误(语法错误、静态语义错误)、动态错误

(三)文法
文法G定义为一个四元组(VN,VT,P,S),其中,VN为非终结符集合,VT终结符集合;P是产生式结合;S称为识别符或开始符号,也是一个非终结符,至少要在一条产生式的左边出现。
G[S]:
S→aA|bB
A→bS|b
B→aS|a

0型文法——短语文法、图灵机、递归枚举
1型文法——上下文有关文法
2型文法——上下文无关文法(广泛使用)
3型文法——正规式

(二)有限自动机
计算机控制系统的控制程序具有有限状态自动机(FA)的特征,可以用有限状态机理论来描述。

某确定的有限自动机(DFA)的状态转换图如下图所示(A是初态,C是终态),则该DFA能识别 (B) 。

A.aabb B.abab
C.baba D.abba

操作系统基础知识

(一)操作系统功能
处理机管理
存储器管理
设备管理
文件管理
用户接口
(二)操作系统类型

单用户系统 一台处理机只支持一个用户程序
批处理系统 用户将一批作业提交给操作系统后就不再干预,由操作系统控制它们自动运行。人机不交互。
分时操作系统 把处理机的运行时间分成很短的时间片,按时间片轮流把处理机分配给各联机作业使用。

网络操作系统 一种在通常操作系统功能的基础上提供网络通信和网络服务功能的操作系统。
分布式操作系统 以计算机网络为基础的,将物理上分布的具有自治功能的数据处理系统或计算机系统互联起来的操作系统。
嵌入式操作系统  运行在嵌入式智能芯片环境中,对整个智能芯片以及它所操作、控制的各种部件装置等资源进行统一协调、处理、指挥和控制。
(三)进程
进行资源分配和调度的基本单位。
进程通常由程序、数据集合、进程控制块 PCB 组成。
为了描述和控制进程的运行,系统为每个进程定义了一个数据结构——进程控制块(PCB)。 它是进程重要的组成部分,它记录了操作系统所需的、用于描述进程的当前状态和控制进程的全部信息。 操作系统就是根据进程的PCB来感知进程的存在,并依此对进程进行管理和控制。 PCB是进程存在的唯一标识。

(四)PV操作
P操作:
①将信号量S的值减1,即S=S-1;
②如果S>=0,则该进程继续执行;否则该进程置为等待状态。
V操作:
①将信号量S的值加1,即S=S+1;
②如果S>0该进程继续执行;否则说明有等待队列中有等待进程,需要唤醒等待进程。

真题(一)
某企业生产流水线M共有两位生产者,生产者甲不断地将其工序上加工的半成品放入半成品箱,生产者乙从半成品箱取出继续加工。假设半成品箱可存放n件半成品,采用PV操作实现生产者甲和生产者乙的同步可以设置三个信号量S、S1和S2,其同步模型如下图所示。

信号量S是一个互斥信号量,初值为( );S1、S2的初值分别为( )。
A.0 B.1 C. n D.任 意正整数

A. n、0 B .0、n C. 1、n D. n、1

试题分析
在本题中,题目告诉我们甲乙俩人互斥使用半成品箱这个共有资源,且只有一个半成品箱,那么互斥信号量的初值就应该为1。而从题目给出的同步模型图,我们可以看出,信号量S1是生产者甲的私有信号量,而S2是生产者乙的私有信号量,题目告诉我们半成品箱可存放n件半成品,那么初始状态时,S1的值应该为n,表示生产者甲最多只能生产n个半成品放入半成品箱,就需要生产者乙来协调工作。而S2的值为0,表示开始时半成品箱中没有半成品。

试题答案
B、A
真题(二)
进程P1、P2、P3、P4和P5的前趋图如下图所示:

若用PV操作控制进程P1、P2、P3、P4和P5并发执行的过程,则需要设置5个信号S1、S2、S3、S4和S5,且信号量S1~S5的初值都等于零。下图中a和b处应分别填&#

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值