软件设计师备考笔记
上午题 | 下午题 |
---|---|
计算机网络概述 | 数据流图设计(下午试题一) |
程序设计语言基础知识 | 数据库设计(下午试题二) |
标准化和知识产权 | UML分析与设计(下午试题三) |
数据库 | 面向对象程序设计与实现(下午试题六) |
操作系统 | 算法设计与C语言实现(下午试题四) |
结构化开发与方法 | |
软件工程 | |
网络与信息安全 | |
数据结构 | |
算法分析设计 |
1 计算机系统基础知识
1.1 计算机系统硬件基本组成
1.2 CPU的功能与组成
中央处理单元(CPU):计算机系统的核心部件,它负责获取程序指令,对指令进行译码并加以执行
1.2.1 CPU的功能
1.2.2 CPU的组成
(1) 运算器
(2) 控制器
控制器用于控制整个CPU的工作,决定了计算机运行过程的自动化。 它不仅要保证程序的正确执行,而且要能够处理异常事件
(3) 寄存器组
1.3 数据表示
1.3.1 计算机基本单位
单位 | 符号 | 备注 |
---|---|---|
位(比特) | bit (b) | 计算机最小的存储单位 |
字节 | byte (B) | 数据表示的最小单位:1B = 8bit |
千字节 | KB | 1KB = 1024B |
兆字节 | MB | 1MB = 1024KB |
吉字节 | GB | 1GB = 1024 MB |
太字节 | TB | 1TB = 1024GB |
1.3.2 进制转换
a. 常用进制
进制 | 运算规则 | 标识符 |
---|---|---|
二进制 | 逢二进一: 基数为2,数值部分用两个不同的数字0、1来表示 | B |
八进制 | 逢八进一 :基数为8,数值部分用0、1、2、3、4、5、6、7来表示 | O |
十进制 | 逢十进一:基数为10,数值部分用0、1、2、3、4、5、6、7、8、9来表示 | D |
十六进制 | 逢十六进一:基数为16,有十六种数字符号,除了在十进制中的0至9外,还另外用6个英文字母A、B、C、D、E、F来表示十进制数的10至15 | H |
注:当没有下标或后缀时默认为十进制数
b. 非十进制数转为十进制数
∑
(
每位上的数码
x
基数的位次方
)
∑ (每位上的数码 \ x \ 基数的位次方)
∑(每位上的数码 x 基数的位次方)
- 二进制转换为十进制
(101.1101)2 = 1x22 + 0x21 + 1x20 + 1x2-1 + 1x2-2 + 0x2-3 + 1x2-4 = (5.8125)10 - 八进制转换为十进制
(105.236)8 = 1x82 + 0x81 + 5x80 + 2x8-1 + 3x8-2 + 6x8-3 = (69.30859375)10 - 十六进制转换为十进制
(A27.5C)16 = 10x162 + 2x161 + 7x160+ 5x16-1+ 12x16-2= (2599.359375)10
c. 十进制数转换为非十进制数
整数部分:除N取余,商为0时,将余数倒序输出
小数部分:乘N取整数,直至积为0(或满足精度),整数部分正序输出
- 十进制转换为二进制
- 十进制转换为八进制
- 十进制转换为十六进制
d. 二进制与八进制、十六进制的相互转换
- 二进制转为八进制(三位一组)
将二进制数从小数点开始分别向左(整数部分)和向右(小数部分)每3位二进制位组成一组,将每一组内的3位二进制数转换成八进制数码中的一个数字,按顺序连接起来即得八进制表示。不足3位时,对原数值用0来补足3位。
例如:(001 011 111 . 001)2 = (137.1)8
十进制 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
---|---|---|---|---|---|---|---|---|
二进制 | 000 | 001 | 010 | 011 | 100 | 101 | 110 | 111 |
八进制 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
- 二进制转为十六进制(四位一组)
将二进制数从小数点开始分别向左(整数部分)和向右(小数部分)每4位二进制位组成一组,将每一组内的4位二进制数转换成十六进制数码中的一个数字,按顺序连接起来即得十六进制表示。如果总的位数不是4的倍数,那么最左面的一组可以少于4位,前面用0来补足4位。
例如:(1111 1111 0100 1011)2 = (FF4B)16
二进制 | 十六进制 |
---|---|
0000 | 0 |
0001 | 1 |
0010 | 2 |
0011 | 3 |
0100 | 4 |
0101 | 5 |
0110 | 6 |
0111 | 7 |
1000 | 8 |
1001 | 9 |
1010 | A |
1011 | B |
1100 | C |
1101 | D |
1110 | E |
1111 | F |
1.3.3 原码,反码,补码,移码
符号位:如果机器字长为n,则最高位(或最左边的第一位是符号位:0表示正号,1表示负号) 。
原码:原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示数值绝对值. 如果机器字长n=8
数值 | 原码 | 数值 | 原码 |
---|---|---|---|
+0 | 00000000 | -0 | 10000000 |
+1 | 00000001 | -1 | 10000001 |
+127 | 01111111 | -127 | 11111111 |
+45 | 00101101 | -45 | 10101101 |
+0.5 | 0<>1000000 | -0.5 | 1<>1000000 |
反码:正数的反码与原码相同,负数的反码则是其绝对值按位取反。
数值 | 反码 | 数值 | 反码 |
---|---|---|---|
+0 | 00000000 | -0 | 11111111 |
+1 | 00000001 | -1 | 11111110 |
+127 | 01111111 | -127 | 10000000 |
+45 | 00101101 | -45 | 11010010 |
+0.5 | 0<>1000000 | -0.5 | 1<>01111111 |
补码:正数的补码与其原码相同,负数的的补码则等于其反码的末尾加1。
数值 | 补码 | 数值 | 补码 |
---|---|---|---|
+0 | 00000000 (唯一) | -0 | 00000000 |
+1 | 00000001 | -1 | 11111111 |
+127 | 01111111 | -127 | 10000001 |
+45 | 00101101 | -45 | 11010011 |
+0.5 | 0<>1000000 | -0.5 | 1<>1000000 |
移码:只要将补码的符号位取反便可获得相应的移码表示。
数值 | 移码 | 数值 | 移码 |
---|---|---|---|
+1 | 10000001 | -1 | 01111111 |
+127 | 11111111 | -127 | 00000001 |
+45 | 10101101 | -45 | 01010011 |
+0 | 10000000 | -0 | 10000000 |
1.3.4 数值表示范围
机器字长为n时各种码制表示的带符号数的范围
码制 | 定点整数 | 定点小数 |
---|---|---|
原码 | - (2n-1-1) ~ + (2n-1-1) | - (1-2-(n-1)) ~ +(1-2-(n-1)) |
反码 | - (2n-1-1) ~ + (2n-1-1) | - (1-2-(n-1)) ~ +(1-2-(n-1)) |
补码 | -2n-1 ~ +(2n-1-1) | -1 ~ +(1-2-(n-1)) |
移码 | -2n-1~ +(2n-1-1) | -1 ~ +(1-2-(n-1)) |
1.3.5 浮点数表示
N = 尾数x基数指数
例如 3.14 X 103
a. 运算过程
对阶 > 尾数计算 > 结果格式化
b. 特点
- 一般尾数用补码,阶码用移码。
阶码
的位数决定
数的表示范围
,位数越多范围越大。尾数
的位数决定
数的有效精度
,位数越多精度越高。- 对阶时,小数向大数看齐。
- 对阶是通过较小数的尾数算术右移实现的。
c. 存储格式
1.4 校验码
1.4.1 奇偶校验码
可以检错,不能纠错
通过在编码中增加一位校验位来使编码中1的个数为奇数(奇校验)或者为偶数(偶校验),从而使码距变为2。
1.4.2 海明码
可以检错和纠错
在数据位之间的特定位置上插入k个校验位,通过扩大码距来实现检错和纠错。
设数据位是n位,校验位是k位,则n和k必须满足:2k- 1 ≥ n + k。
1.4.3 循环冗余校验码(CRC)
广泛应用于数据通信领域和磁介质存储系统中。它利用生成多项式为k个数据位产生r个校验位来进行编码,其编码长度为k+r。
循环冗余校验码是由两部分组成的,左边为信息码(数据),右边为校验码。若信息码占k位,则校验码就占n-k位。其中,n为CRC码的字长,所以又称为(n,k)码。校验码是由信息码产生的,校验码位数越多,该代码的校验能力就越强。在求CRC编码时,采用的是模2运算。
2 计算机体系结构
2.1 计算机体系结构的发展
2.1.1 计算机体系结构的分类
2.1.2 Flynn分类法
体系结构类型 | 结构 | 关键特性 | 代表 |
---|---|---|---|
单指令流单数据流(SISD) | 控制部分:一个 处 理 器: 一个 主存模块:一个 | 单处理系统 | |
单指令流多数据流(SIMD) | 控制部分:一个 处 理 器: 多个 主存模块:多个 | 各处理器以异步的形式执行同一条指令 | 并行处理机 阵列处理机 超级向量处理机 |
多指令流单数据流(MISD) | 控制部分:多个 处 理 器: 一个 主存模块:多个 | 被证明不可能,至少是不实际 | 目前没有,有文献称流水线计算机为此类 |
多指令流多数据流(MIMD) | 控制部分:多个 处 理 器: 多个 主存模块:多个 | 能够实现作业,任务,指令等各级全面并行 | 多处理机系统 |
2.1.3 指令系统
a. 指令集体系结构(ISA):一个处理器支持的指令和指令的字节级编码称为其指令集体系结构。
b. CISC和RISC
CISC和RISC是指令集发展的两种途径。
指令系统类型 | 指令 | 寻址方式 | 实现方式 | 其他 |
---|---|---|---|---|
CISC(复杂指令集计算机) | 数量多,使用频率差别大可变长格式 | 支持多种 | 微程序控制技术 | 研制周期长 |
RISC(精简指令集计算机) | 数量少,使用频率接近定长格式,大部分为单周期指令操作寄存器,只有Load/Store操作内存 | 支持方式少 | 增加了通用寄存器硬部线逻辑控制为主适合采流水线 | 优化编译有效支持高级语言 |
c. 指令的流水控制
RISC采用的流水技术有:超流水线,超标量和超长指令字。
d. 吞吐率和流水建立时间
吞吐率是指单位时间内流水线处理机流出的结果数。对指令而言,就是单位时间内执行的指令数。
吞吐率
=
指令条数
一条完整指令的时间
+
(
n
−
1
)
∗
流水线周期
吞吐率 = \frac{指令条数}{一条完整指令的时间\ +\ (n-1)\ *\ 流水线周期}
吞吐率=一条完整指令的时间 + (n−1) ∗ 流水线周期指令条数
流水线的总共时间
=
一条完整指令的时间
+
(
n
−
1
)
∗
流水线周期
流水线的总共时间\ =\ 一条完整指令的时间\ +\ (n-1)\ *\ 流水线周期
流水线的总共时间 = 一条完整指令的时间 + (n−1) ∗ 流水线周期
2.2 存储系统
2.2.1 存储器的分类
- 立即寻址:操作数就包含在指令中
- 直接寻址:操作数存放在内存单元中,指令中直接给出操作数所在存储单元的地址
- 寄存器寻址:操作数存放在某一寄存器中,指令中给出存放操作数的寄存器名
- 寄存器间接寻址:操作数存放在内存单元中,操作数所在存储单元的地址在某个寄存器中
- 间接寻址:指令中给出操作数地址的地址
- 相对寻址:指令地址码给出的是一个偏移量(可正可负),操作数地址等于本条指令的地址加上该偏移量
- 变址寻址:操作数地址等升变址寄存器的内容加偏移量
寻址速度:立即寻址 > 寄存器寻址 > 直接寻址 > 寄存器间接寻址 > 间接寻址
2.2.2 相联存储器
相联存储器是一种按内容访问的存储器。
2.2.3 高速缓存
2.2.4 虚拟存储器
虚拟存储器技术是把很大的程序(数据)分成许多较小的块,全部存储在辅存中。运行时把要用到的程序(数据)块先调入主存,并且马上就要用到的程序块从主存调入高速缓存。这样就可以一边运行程序,一边进行所需程序(数据)块的调进或调出。
2.2.5 外存储器
2.2.6 磁盘阵列技术
磁盘阵列是由多台磁盘存储器组成的一个快速,大容量,高可靠的外村子系统,常见的磁盘阵列称为廉价冗余磁盘阵列(RAID)。
2.3 输入输出技术
2.3.1 微型计算机中最常用的内存与接口的编址方式
2.3.2 直接程序控制
直接程序控制是指外设数据的输入/输出过程是在CPU执行程序的控制下完成的。
2.3.3 中断方式
中断方式即由程序控制I/O的方法,缺点在于CPU必须等待I/O系统完成数据的传输任务,而且要定期查询I/O系统的状态,确认传输是否完成。因此大大降低了整个系统的性能。
a. 中断处理方法
b. 中断优先级控制
2.3.4 直接存储器存储方式
直接内存存取(DMA)是指数据在内存与I/O设备间的直接成块传送,即在内存与IO设备间传送一个数据块的过程中,不需要CPU的任何干涉,只需要CPU在过程开始启动(即向设备发出“传送一块数据”的命令)与过程结束(CPU通过轮询或中断得知过程是否结束和下次操作是否准备就绪)时的处理,实际操作由DMA硬件直接执行完成,CPU在此传送过程中可做别的事情。
2.3.5 输入/输出处理机(IOP)
IOP数据传送的方式包括字节多路方式,选择传送方式和数组多路方式。
2.4 总线结构
一般来说,任何连接两个以上电子元器件的导线都可以称为总线。微机中的总线分为数据总线、地址总线、控制总线。
3 计算机安全
3.1 计算机安全概述
计算安全指的是计算机资产安全,是要保证这些计算机资产不受自然和人为的有害因素的威胁和危害。
3.1.1 信息安全的基本要素
3.1.2 安全威胁
威胁 | 说明 |
---|---|
授权侵犯 | 为某一特权使用一个系统,却将该系统用作其他未授权的目的 |
拒绝服务 | 对信息或其他资源的合法访问被无条件地拒绝,或者推迟与时间密切相关的操作 |
窍听 | 信息从被监视的通信过程中泄露出去 |
信息泄露 | 信息被泄露或暴露给某个未授权的实体 |
截获/修改 | 某一通信数据项在传输过程中被改变、删除或替代 |
假冒 | 一个实体(人或系统)假装成另一个实体 |
否认 | 参与某次通信交换的一方否认曾发生过此次交换 |
非法使用 | 资源被某个未授权的人或未授权的方式使用 |
人员疏忽 | 一个授权的人为了 金钱或利益,或者由于粗心将信息泄露给未授权的人 |
完整性破坏 | 通过对数据进行未授权的创建、修改或破坏,使数据的一致性受到损坏 |
媒体清理 | 从废弃的或打印过的媒体中获得信息 |
物理入侵 | 一个入侵者通过物理控制而获得对系统的访问 |
资源耗尽 | 某一资源(如访问端口)被故意超负荷使用,导致其他用户的服务被中断 |
3.2 加密技术和认证技术
3.2.1 加密技术
a. 对称加密算法
b. 非对称加密算法
与对称加密算法不同,非对称加密算法需要两个密钥:公开密钥和私有密钥。两者是一对,如果公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,只有用对应的公开密钥才能解密。
3.2.2 认证技术
a. PKI的基本构成
b. 数字签名