软件设计师教程(第5版)学习笔记
第一章,计算机网络概论
1.1 计算机系统基础知识
1.1.1 计算机系统硬件基本组成
运算器,控制器,存储器,输入设备和输出设备
1.1.2 中央处理单元
-
CPU的功能
1)程序控制
2)操作控制
3)时间控制
4)数据处理
-
CPU的组成
运算器,控制器,寄存器,内部总线等组件组成
-
多核CPU
1.1.3 数据表示
1.1.4 校验码
- 奇偶校验码
- 海明码
- 循环冗余校验码
1.2 计算机体系结构
1.2.1 计算机体系结构的发展
-
计算机系统结构概述
1)计算机体系结构
2)计算机组织
3)计算机实现
-
计算机体系结构分类
宏观上:单处理系统,并行处理与多处理系统,分布式处理系统
微观上:
1)Flynn分类法
2)冯泽云分类法
3)Handler分类法
4)Kuck分类法
-
指令系统
1)指令集体系结构的分类
2)CISC和RISC
-
阵列处理机,并行处理机和多处理机
1.2.2 存储系统
-
存储器的层次结构
CPU内部的通用寄存器组,CPU内部的Cache(高速缓存),CPU外部的Cache,主板上的主存储器,主板外的联机磁盘存储器和脱机的磁带存储器和光盘存储器
-
存储器的分类
1)按存储器位置分类
(1)内存。也称主存,在主机内或主机板上,用来存放机器当前运行所需要的程序和数据
(2)外存。也称辅存,如磁盘,磁带和光盘
2)按存储器构成材料分类
(1)磁存储器
(2)半导体存储器
(3)光存储器
3)按存储器工作方式分类
(1)读/写存储器
(2)只读存储器
①固定只读存储器
②可编程的只读存储器
③可擦除可编程的只读存储器
④电擦除可编程的只读存储器
⑤闪速存储器
4)按访问方式分类
(1)按地址访问存储器
(2)按内容访问的存储器
5)按寻址方式分类
(1)随机存储器
(2)顺序存储器
(3)直接存储器
-
相联存储器
-
高速缓存
1)高速缓存的组成
2)高速缓存的地址映像方法
(1)直接映像
(2)全相联映像
(3)组相连映像
3)替换算法
(1)随机替换算法
(2)先进先出算法
(3)近期最少使用算法
(4)优化替换算法
4)Cache的性能分析
容量越高,命中率越高,命中时间越长
5)多级Cache
L1容量较小,速度快,L2容量大
-
虚拟存储器
虚拟地址
-
外存储器
1)磁表面存储器
2)光盘存储器
3)固态硬盘
-
磁盘阵列技术
-
存储域网络
1.2.3 输入/输出技术
-
微型计算机中最常用的内存与接口的编址方法
1)内存与接口地址独立编址方法
2)内存与接口地址统一编址方法
-
直接程序控制
1)无条件传送
2)程序查询方式
(1)降低了CPU的效率
(2)对外部的突发事件无法做出实时响应
-
中断方式
1)中断处理方法
(1)多中断信号线法
(2)中断软件查询法
(3)菊花链法
(4)总线仲裁法
(5)中断向量表法
2)中断优先级控制
(1)优先处理高优先级的中断源
(2)中断嵌套
-
直接存储器存取方式
直接内存存取(Direct Memory Access,DMA)
-
输入/输出处理机(IOP)
1.2.4 总线结构
-
总线的分类
1)数据总线(Data Bus,DB)
2)地址总线(Address Bus,AB)
3)控制总线(Control Bus,CB)
-
常见总线
1)ISA总线
2)EISA总线
3)PCI总线
4)PCI Express总线
5)前端总线
6)RS-232C
7)SCSI总线
8)SATA
9)USB
10)IEEE-1349
11)IEEE-488
1.3 安全性,可靠性与系统性能评测基础知识
1.3.1 计算机安全概论
-
计算机的安全等级
三类安全性包括技术安全性,管理安全性,政策法律安全性
1)TCSEC
2)CTCPEC
3)PC
4)ITSEC
5)CC
-
安全威胁
分为故意,偶然两类
-
影响数据安全的因素
1)内部因素
2)外部因素
1.3.2 加密技术和认证技术
-
加密技术
1)对称加密技术
(1)数据加密标准(Digital Encryption Standard,DES)
(2)三重DES(3DES,或称TDEA)
(3)RC-5(Rivest Cipher5)
(4)国际数据加密算法(International Data Encryption Adleman,IDEA)
(5)高机加密标准(Advanced Encryption Standard,AES)
2)非对称加密技术
3)密钥管理
(1)密钥产生
(2)密钥备份和恢复
(3)密钥更新
(4)多密钥的管理
-
认证技术
完整的PKI系统:
1)认证机构
2)数字证书库
3)密钥备份及恢复系统
4)证书作废系统
5)应用接口
PKI标准化问题
1)Hash函数与信息摘要
MD5算法特点:
(1)压缩性
(2)容易计算
(3)抗修改性
(4)强抗碰撞
2)数字签名和数字加密
3)SSL协议(Secure Socker Layer,安全套接层)
(1)用户和服务器的合法性认证
(2)加密数据以隐藏被传送的数据
(3)保护数据的完整性
对通信过程进行安全保护
(1)接通阶段
(2)密码交换阶段
(3)会谈密码阶段
(4)检验阶段
(5)客户认证阶段
(6)结束阶段
4)数字时间戳技术
数字时间戳服务(Digital Time Stamp Service,DTS)
(1)需加时间戳的文件的摘要(Digest)
(2)DTS收到文件的日期的时间
(3)DTS的数字签名
1.3.3 计算机可靠性
- 计算机可靠性概述
- 计算机可靠性模型
1.3.4 计算机系统的性能评价
-
性能评测的常用方法
1)时钟频率
2)指令执行速度
3)等效指令速度法
4)数据处理速率(Processing Data Rate,PDR)
5)核心程序法
-
基准测试程序
1)整数测试程序
2)浮点测试程序
(1)理论峰值浮点速度
(2)Linpack基准测试程序
(3)Whetstone基准测试程序
3)SPEC基准程序(SPEC Benchmark)
4)TPC基准程序
第二章,程序设计语言基础知识
2.1 程序设计语言概述
2.1.1 程序设计语言的基本概念
-
低级语言和高级语言
-
编译程序和解释程序
-
程序设计语言的定义
-
程序设计语言的分类
1)程序设计语言发展概述
2)程序设计语言分类
(1)命令式和结构化程序设计语言
(2)面向对象的程序设计语言
(3)函数式程序设计语言
(4)逻辑型程序设计语言
2.1.2 程序设计语言的基本成分
-
程序设计语言的数据成分
1)常量和变量
2)全局量和局部量
3)数据类型
(1)基本类型
(2)特殊类型
(3)用户定义类型
(4)构造类型
(5)指针类型
(6)抽象数据类型:类类型
-
程序设计语言的运算成分
-
程序设计语言的控制成分
1)顺序控制
2)选择控制
3)循环控制
4)C(C++)语言提供的控制语句
(1)复合语句
(2)if语句和switch语句
-
程序设计语言中的传输成分
-
函数
1)函数定义
2)函数声明
3)函数调用
(1)值调用
(2)引用调用
2.2 语言处理程序基础
2.2.1 汇编程序基本原理
-
汇编语言
1)指令语句
2)伪指令语句
3)宏指令语句
-
汇编程序
将源程序翻译成机器指令程序
2.2.2 编译程序基本原理
-
编译过程概述
1)词法分析
2)语法分析
3)语义分析
4)中间代码生成
5)代码优化
6)目标代码生成
7)符号表管理
8)出错处理
-
文法和语言的形式描述
1)字母表,字符串,字符串集合及运算
2)文法和语言的形式描述
(1)文法的定义
(2)文法的分类
(3)句子和语言
-
词法分析
1)正规表达式和正规集
2)有限自动机
-
正规式与有限自动机之间的转换
1)有限自动机转换为正规式
2)正规式转换为有限自动机
-
词法分析器的构造
1)用正规式描述语言中的单词构成规则
2)为每个正规式构造一个NFA,它识别正规式所表示的正规集
3)将构造处于的NFA转换成等价的DFA
4)对DFA进行最小化处理,使其最简
5)从DFA构造词法分析器
-
词法分析
1)上下文无关文法
2)自顶向下语法分析方法
3)自底向上语法分析方法
-
语法制导翻译和中间代码生成
1)中间代码
2)常见语法结构的翻译
3)动态存储分配和过程调用的翻译
-
中间代码优化和目标代码生成
1)中间代码形式
2)目标代码形式
3)寄存器的分配
4)计算次序的选择
2.2.3 解释程序基本原理
-
解释程序的基本结构
-
高级语言编译与解释方式的比较
1)效率
2)灵活性
3)可移植性
第三章,数据结构
3.1 线性结构
元素一个接着一个排列
3.1.1 线性表
-
线性表的定义
1)存在唯一的一个称作“第一个”的元素
2)存在唯一的一个称作“最后一个”的元素
3)除第一个元素外,序列中的每个元素均只有一个直接前驱
4)除最后一个元素外,序列中的每个元素均只有一个直接后驱
-
线性表的存储结构
1)线性表的顺序存储
2)线性表的链式存储
(1)单链表
(2)双向链表
(3)循环链表
(4)静态链表
3.1.2 栈和队列
-
栈
1)栈的定义及基本运算
(1)栈的定义
先进后出的线性表,只允许在表的一端插入和删除元素
(2)栈的基本运算
①初始化栈InitialStack
②判断空栈isEmpty
③入栈Push
④出栈Pop
-
栈的存储结构
1)顺序存储
2)链式存储
3)栈的应用
-
队列
1)队列的定义及基本运算
(1)队列的定义
先进先出的线性表,只允许在表的一端插入元素,另一端删除元素
(2)队列的基本运算
①初始化队列InitQueue
②判队空isEmpty
③入队EnQueue
④出队DelQuene
⑤读队头元素FrontQue
2)队列的存储结构
(1)队列的顺序存储
(2)队列的链式存储
3)队列的应用
3.1.3 串
-
串的定义及基本运算
1)串的定义
仅由字符构成的有限序列,是一种线性表
2)串的几个基本概念
(1)空串
(2)空格串
(3)子串
(4)串相等
(5)串比较
3)串的基本操作
(1)赋值操作
(2)连接操作
(3)求串长
(4)串比较
(5)求子串
-
串的存储结构
(1)串的顺序存储结构
(2)串的链式存储
-
串的模式匹配
1)朴素的模式匹配算法(布鲁特—福斯算法)
2)KMP算法
3.2 数组,矩阵和广义表
3.2.1 数组
-
数组的定义及基本运算
1)数组的定义
2)数组的两个基本运算
-
数组的顺序存储
3.2.2 矩阵
- 特殊矩阵
- 稀疏矩阵
3.2.3 广义表
-
广义表的基本操作
1)取表头
2)取表尾
-
广义表的特点
1)广义表可以是多层次的结构
2)广义表中的元素可以是已经定义的广义表的名字
3)广义表可以是一个递归的表
-
广义表的存储结构
采用链式存储结构
3.3 树
3.3.1 树与二叉树的定义
-
树的定义
-
树的基本概念
1)双亲,孩子和兄弟
2)结点的度
3)叶子结点
4)内部结点
5)结点的层次
6)树的高度
7)有序(无序)树
-
二叉树的定义
3.3.2 二叉树的性值与存储结构
-
二叉树的性质
-
二叉树的存储结构
1)二叉树的顺序存储结构
2)二叉树的链式存储结构