软考中级

简介

第一章:计算机组成与体系结构

  • 考点(6分)
    • 数据的表示(4星)
    • 运算器与控制器(4星)
    • Flynn分类法(2星)
    • CISC与RISC(2星)
    • 流水线技术(4星)
    • 存储系统(4星)
    • 总线系统(1星)
    • 可靠性(1星)
    • 校验码(3星)

数据表示

  • R进制转十进制(按权展开法)
    • 100 => 0*2^0 + 0*2^1 + 1*2^2 = 4 (R进制则底数为R)
  • 十进制转R进制(如短除法)
1
2
3
4
5
6
7
8
9
# 右边记录余数,然后从下往上开始排列数字即为 1100100
# R进制则除数为R
100 / 2 => 0
50 / 2 => 0
25 / 2 => 1
12 / 2 => 0
6 / 2 => 0
3 / 2 => 1
1 / 2 => 1 # 1/2除不了则直接留下
  • 二进制转8进制
1
2
3
4
# 二进制 111 => 1*2^2 + 1*2^1 + 1*2^0 = 7 (如果是8进制,到7之后就要进位了)
# 所以3位二进制数可以转换为1位8进制数;反之,1位8进制数可转换为3位二进制数
111 => 7
11001 => 011 001 => 31 => O31(O开头)
  • 二进制转16进制
1
2
3
4
5
6
# 二进制 1111 => 1*2^3 + 1*2^2 + 1*2^1 + 1*2^0 = 15 (如果是16进制,到15之后就要进位了)
# 所以4位二进制数可以转换为1位16进制数;反之,1位16进制数可转换为4位二进制数
# 0-9 10/11/12/13/14/15=> A/B/C/D/E/F
# F=1111, E=1110, D=1101, C=1100, B=1011, A=1010
1111 => F
11001 => 0001 1001 => 19 => Ox19(Ox开头) => 19H
  • 原码/反码/补码/移码
    • 高8位(左边第一位)为符号位,用来区分正数和负数,0表示正数,1表示负数;后7位为数据位
    • 正数的原/补/反码一样;
    • 负数的反码是基于原码取反(但符号位不变),补码是基于反码加1(符号位不变)
    • 移码是基于补码数据位不变,仅符号位取反
    • 下例可看出计算机是基于补码进行数学计算的
1
2
3
4
5
        1               -1              1-1         => 等同于1+(-1)
原码 0000 0001 1000 0001 1000 0010 => -2
反码 0000 0001 1111 1110 1111 1111 => -127
补码 0000 0001 1111 1111 0000 0000 => 0 (正确答案)
移码 1000 0001 0111 1111 1000 0000 => -0

浮点运算

  • 浮点表示: N = 尾数 基数^指数 (3.14 10^3 = 0.314 * 10^4)
  • 一般尾数用补码,阶码(指数位)用移码表示
  • 运算过程: 对阶 - 尾数计算 - 结果格式化
    • 3.14 10^3 + 1.2 10^5 = 0.0314 10^5 + 1.2 10^5
    • 对阶就是让指数位一致,对阶时,小数向大数看齐;对阶是通过比较小数的尾数右移实现的
      -存储方式: 阶符(0/1)、阶数、尾符(0/1)、尾数

计算机结构

  • 运算器
    • 算术逻想单元ALU:数据的算术运算和逻辑运算
    • 累加寄存器AC:通用寄存器,为ALU提供一个工作区,用在暂存数据
    • 数据缓冲奇存器DR:写内存时,暂存指令或数据
    • 状态条件寄存器PSW :存状态标志与控制标志(争议:也有将其归为控制器的)
  • 控制器
    • 程序计数器PC:存储下一条要执行指令的地址
    • 指令寄存器IR:存储即将执行的指令
    • 指令译码器ID:对指今中的操作码宇段进行分析解释
    • 时序部件:提供时序控制信号

计算机体系结构分类(Flynn)

  • 单指令流单数据流 SISD(I表示指令)
  • 单指令流多数据流 SIMD: 控制部分一个,处理器和主存模块多个
  • 多指令流单数据流 MISD
  • 多指令流多数据流 MIMD

指令的基本概念

  • 组成: 操作码字段、地址码字段
  • 三地址指令: a+b=c => +,a,b,c
  • 二地址指令: a+=b => +,a,b
  • 一地址指令: a++ => +,a

寻址方式

  • 立即寻址(操作数在指令中)
  • 直接寻址(存放主存储中操作数的地址)
  • 间接寻址(存放的是地址的地址)
  • 寄存器直接寻址
  • 寄存器间接寻址

CISC与RISC指令集

  • CISC复杂
  • RISC精简
    • 指令: 数量少,定长格式,单周期,少寻址,只有Load/Store操作内存
    • 实现方式: 增加了通用寄存器,硬布线逻辑控制为主,适合采用流水线

流水线

  • 是指在程序执行时多条指令重叠进行操作时的一种并行处理技术
  • 流水线周期是执行时间最长的一段的耗时
  • 流水线计算公式
    • 理论公式 1条指令执行时间 + (指令条数-1)*流水线周期
    • 实践公式(将第1条指令的各个阶段都按流水线周期计算): k*流水线周期 + (指令条数-1)*流水线周期 (k为指令执行包含k个阶段)
  • 吞吐率: 单位时间内完成的任务或输出结果的数量
    • 公式 指令条数/流水线执行时间
    • 最大吞吐率公式: 1/流水线周期

层次化存储结构

  • CPU(寄存器)
  • Cache: 按内容存取, 时间/空间
  • 内存(主存): RAM/ROM
  • 外存(辅存,如硬盘)

Cache

  • 映象
    • 直接相联映像:硬件电路较简单,但冲突率很高。
    • 全相联映像:电路难于设计和实现,只适用于小容量的cache,冲突率较低
    • 组相联映像:直接相联与全相联的折中
  • 地址映像是将主存与Cache的存储空间划分为若干大小相同的页(或称为块)
    • 例如,某机的主存容量为1GB,划分为2048页,每页512KB; Cache客最为8MB,划分为16页,每页512KB

主存-编址与计算

  • 按字节编址: 存储体的存储单元是字节存储单元,最小寻址单位是一个字节

总线

  • 一条总线同一时刻仅允许-个设备发送,但允许多个设备接收。
  • 总线的分类
    • 数据总线(Data Bus)
    • 地址总线(Address Bus)
    • 控制总线(Control Bus)

校验码

  • 奇偶校验: 可检查1位的错误 (最后1位表示奇偶)
  • 循环校验码CRC: 可检错,不可纠错 (将余数拼接在最后,传输后可整除则正确)
  • 海明校验码: 可检错,也可纠错

第二章:操作系统

  • 考点(6-8分)
    • 进程管理
      • 进程的状态(2星)
      • 前趋图(3星)
      • 信号量与PV操作(4星)
      • 死锁及银行家算法(4星)
    • 存储管理
      • 段页式存储(4星)
      • 页面置换算法(1星)
    • 文件管理
      • 绝对路径与相对路径(3星)
      • 索引文件(2星)
      • 位示图(2星)
    • 作业管理
    • 设备管理
      • 虛设备与SPOOLING技术(1星)

进程管理

  • PV操作: P申请资源(没有则等待),V释放资源(之后可唤醒其他进程)
  • S信号量(一般为可用资源数)
  • 互斥模型: 多个进程共用一个打印机
  • 同步模型: 单缓冲区生产者、消费者问题
  • 死锁的避免
    • 有序资源分配法
    • 银行家算法

存储管理

  • 页式存储: 将程序和内存均划分为同样大小的块,以页为单位将程序调入内存中
    • 优点: 利用率高、碎片小、分配管理简单
    • 缺点: 增加了系统的开销,可能产生抖动现象
  • 段式存储: 按用户作业中的自然段来划分逻辑空间,段的长度可以不一样
    • 优点: 多道程序共享内存,各段程序修改互不影响
    • 缺点: 利用率低,内存碎片大
  • 段页式存储: 先分段再分页
  • 页面置换算法
    • 最优(OPT)算法
    • 随机算法
    • 先进先出(FIFO),可能产生抖动
    • 最近最少使用(LRU)
  • 磁盘管理
    • 读取数据时间: 寻道时间(磁头移动到磁道) + 寻找扇区时间(即旋转延迟) + 传输时间
  • 磁盘调度算法
    • 先来先服务FCFS
    • 最短寻道时间优先SSTF
    • 扫描算法SCAN
    • 循环扫描算法CSCAN

作业管理

  • 作业调度算法
    • 先来先服务
    • 时间片轮转法
    • 短作业优先法
    • 最高优先权法
    • 高响应比优先法

文件管理

  • 索引文件结构

第三章:数据库系统

  • 考点(6-8分)
    • 数据库模式(2星)
    • ER模型(5星)
    • 关系代数(3星)
    • 规范化理论(5星)
    • SQL语言(4星)
    • 并发控制(2星)
    • 数据库完整性约束(1星)

三级模式-两层映射

  • 三级模式
    • 外模式(视图级, 用户视图)
    • 概念模式(表级, DBA视图)
    • 内模式(文件级)
  • 数据库设计过程
    • 需求分析
    • 概念结构设计(ER模型)
    • 逻辑结构设计(关系模式)
    • 物理设计

E-R模型

  • 长方形: 实体
    • 长方形(含两条竖线): 弱实体
  • 椭圆形: 属性
  • 菱形: 联系
    • 一条线中间有个小圆圈: 特殊化
  • 线上标记1/m/n: 表示1对1, 1对多, 多对多

规范化理论

  • 求候选建(业务主键): 使用图示法
    • A -> B -> C, 此时侯选建为A
    • 只有入没有出的肯定不是,箭头出的时候只要可以推导出其他所有节点即可(尽管有入的箭头也可以)
  • 所有侯选建的组合涉及到的字段即为主属性,其他为非主属性
  • 范式,参考三范式
    • 1NF: 要有主键,列不可分
    • 2NF: 不能存在部分依赖(每一个非主属性完全依赖侯选建)
      • A,B->C, B->D 此时A,B如果为侯选建,则D不完全依赖A,B(仅依赖B)
      • 可能存在数据冗余,增删改异常
    • 3NF: 不能存在传递依赖
      • A->B->C, 此时不能把这个3个字段放到一张表,否则存在传递依赖
      • 有传递依赖则为(仅符合)2NF
    • BCNF(第4范式): 消除主属性对侯选建的部分和传递依赖
  • 模式分解

    • 将关系R(A,B,C,D,E)分解成多个关系p={R1(A,B,C),R1(A,D,E)}
    • 如果分解之后的模式可以还原成原关系依赖,则为无损分解,否则为有损分解
    • 公式法(仅限于分解后关系模式只有2个,否则只能用表格法): R1^R2(交集) ->(推导) R1-R2(差集) 或 R2-R1
      • 如关系R(A,B,C),函数依赖F={A->B}
        • 当分解成 p1={R1(A,B), R2(A,C)} 此时交集为A, 差集为B、C, 所以存在关系依赖A->B、A->C, 任然存在F, 所以为无损
        • 当分解成 p1={R1(A,B), R2(B,C)} 此时无法推导出F,所有为有损
    • 表格法

      软考-模式分解-表格法.png

第四章:计算机网络和网络安全

  • 计算机网络考点(4分)
    • 开放系统互连参考横型(2星)
    • TCP/P协议族(4星)
    • IP地址与子网划分(5星)
    • 网络规划与设计(1星)
    • 3G与4G标准(2星)
    • HTML语言(2星)
  • 网络安全考点(3分)
    • 对称加密与非对称加密(3星)
    • 信息摘要与数宇签名(2星)
    • 数宇证书(2星)
    • 网络安全协议(3星)
    • 防火墙技术与网络攻击(3星)
    • 计算机病毒与木马(3星)
  • OSI七层模型和TCP/IP四层模型

    OSI七层模型

    • 链路层协议如: PPTP/L2TP
    • TCP传输: POP3邮件收取(110)、SMTP邮件发送(25)、FTP、HTTP、Telnet(23)
    • UDP传输: DHCP地址自动分配(67)、TFTP(69)、SNMP简单网络管理协议(161)、DNS域名解析协议(53)
  • IP地址: 参考计算机网络.md
  • 网络规划与设计
    • 需求分析
    • 网络规划原则
    • 网络设计与实时原则
    • 层次化网络设计: 核心层、汇聚层、接入层
      • Internet - 核心交换机 - 汇聚交换机(过滤) - 接入交换机
  • 计算机网络分类
    • 分布范围: 局域网(LAN)、城域网(MAN)、广域网(WAN)、因特网
    • 拓扑: 总线、星型、环形
    • 无线网络
      • 无线局域网: WLAN, 802.11, Wi-Fi
      • 无线城域网: WMAN, 802.16, WiMax
      • 无线广域网: WWAN, 3G/4G
      • 无线个人网: WPAN, 802.15, Bluetooth
  • 对称加密与非对称加密
    • 对称加密: 加密解密秘钥一样
    • 非对称加密: 加密解密秘钥不一样(公钥和私钥), 但是是成对出现的
      • A公钥加密只能用A私钥解密, B私钥加密只能用B公钥解密
      • 如A给B发送加密信息时,可使用B的公钥加密,从而B使用私钥解密
  • 数字签名
    • A给B发送数字签名信息
      • 明文 - hash函数 - 消息摘要 - 用A的私钥加密(签名过程) - Internet
      • 用A的公钥解密 - 得到消息摘要 - 和接受到的明文进行Hash函数获取的摘要比对 - 一致说明确实为A发送过来的信息
  • 消息摘要
    • 使用MD5/SHA等函数加密成固定长度的散列值,基本不可逆
    • MD5使用128位,SHA使用160位,因此SHA安全性更高
  • 网络安全
    • DoS(拒绝服务)

第五章:系统开发基础

  • 考点(11分)
    • 开发模型(5星)
    • 软件开发方法(1星)
    • 需求分析(1星)
    • 软件设计(2星)
    • 软件测试与维护
      • 白盒测试用例(4星)
      • 软件维护类型(3星)
      • McCabe复杂度计算(4星)
        — 软件质量保证(1星)
    • 软件过程改进(2星)
    • 项目管理基础
      • Gant图与Pert图(4星)
      • 风险管理(3星)
  • 开发模型
    • 瀑布模型
      • 确定需求,项目设计,编码
      • 缺点: 无法解决设计阶段出现的问题
    • V模型
      • 比较重视测试: 编码-单元测试, 集成测试, 系统测试, 验收测试
      • 缺点: 测试晚于编码, 无法解决设计阶段问题
    • 喷泉模型
      • 面向对象的开发模型,每个阶段没有界限
    • 原型化模型
      • 通过与用户的重复沟通,得到原型
      • 分为: 探索型、实验型、演化型(最终的原型可用于后续开发)
    • 螺旋模型
      • 基于瀑布模型+原型化模型
      • 适合开发高风险项目
    • 统一过程(UP/RUP)
      • 以用例驱动, 以架构为中心, 迭代和增量
      • 步骤: 初始、细化、构建、交付
    • 敏捷方法
      • 4大价值观: 沟通、简单、反馈、勇气(接收变更)
      • 基本原则
        • 短平快的会议
        • 小型版本发布
        • 较少的文档
        • 合作为重
        • 客户直接参与
        • 自动化测试
        • 结对编程
        • 测试驱动开发
        • 持续集成
        • 重构
      • 开发方法
        • XP(极限编程)
        • Cockbum水晶系列方法
        • 开放式源码
        • SCRUM(并列争球法)
        • Coad功用驱动开发
        • ASD
  • 软件开发方法
    • 结构化方法: 面向数据流的方法
    • 原型法
    • 面向对象方法
    • 面向服务的方法
    • 面向数据结构的方法: json

第六章:面向对象技术

  • 考点(12分)
  • UML图
  • 设计模式

第七章:数据结构与算法基础

  • 考点(10分)

  • 二叉树

    • 前序遍历: 根左右。对应前缀表达式
    • 中序遍历: 左根右。对应中缀表达式
    • 后续遍历: 左右根。对应后缀表达式
  • 树转二叉树
    • 孩子节点(第一个左节点) - 作为二叉树的左子树节点
    • 兄弟节点(右边节点) - 作为(树的)左节点的(二叉树的)右子树节点
  • 查找二叉树
    • 左孩子小于根,右孩子大于根
  • 满二叉树
    • 约定编号从根结点起, 自上而下, 自左而右
    • 无空节点,一定是完全二叉树
  • 完全二叉树
    • 约定编号同满二叉树
    • 除去叶子节点,其他节点都包含两个子元素,如果最后一层的枝干节点正在填充叶子节点也算
  • 最优二叉树(哈夫曼树)
    • 节点数一定是奇数
    • 只有度为0(无叶子节点)和2(有两个叶子节点)的节点,且度为0的节点比度为2的节点多1
  • 平衡二叉树
    • 整个树中任意节点的左子树和右子树的高度差的绝对值不大于1
    • 可以认为是完全二叉树

第八章:程序设计语言与语言处理程序基础

  • 考点(3-5分)

第九章:多媒体基础知识

  • 考点(3分)
  • 计算图像大小
    • 知道像数,位数: 每个使素为16位,图像为640x480像素,求容量:640x480x16/8=614,400B (1Byte=8位)
    • 知道像数,色数: 640x480使素,256色的图像,求容量:640x480xlog(256)/8=307,200B
  • 媒体的种类
    • 感觉媒体: 如声音人体能感知的
    • 表示媒体: 人为构造出来的媒体,编码如文本编码、图像编码
    • 显示媒体(表现媒体): 如键盘等输入输出设备
    • 交换/转换媒体
      • 存储媒体
      • 传输媒体

第十章:知识产权与标准化

  • 考点(2分)
  • 标准分类
    • 国际标准:ISO、IEC等国际标准化组织
    • 国家标准:GB一-中国、ANSI-美国、BS一英国、J1S—日本
    • 区域标准:又称为地区标准,如PASC—太平洋地区标准会议、CEN-欧洲标准委员会、ASAC—亚洲标准咨询委员会、ARSO—非洲地区标准化组织
    • 行业标准:GJB一中国军用标准、MTT-S— 美国军用标准、IEEE— 美国电气电子工程师协会
    • 地方标准:国家的地方一级行政机构制订的标准
    • 企业标准
    • 项目规范
  • 标准编号
    • 国际、国外标准代号:标准代号+专业类号+顺序号+年代号
    • 我国国家标准代号:强制性标准代号为GB、推荐性标准代号为GB/T、指导性标准代号为GB/Z、实物标准代号GSB
    • 行业标准代号:由汉语拼音大写字母组成(特殊的如电子行业为SJ)
    • 地方标准代号:由DB加上省级行政区代码的前两位
    • 企业标准代号:由Q加上企业代号组成

第十一章:数据流图

  • 考点(12-15分)
  • 符号
    • (外部)实体: 长方形, 为人或组织
    • 箭头: 数据流
    • 加工: 圆形或椭圆形
    • 存文件: 长方形去掉一条或两条宽线
  • 数据流图平衡原则
    • 父图与子图之间的平衡
    • 子图内平衡
    • DFD图: 顶层图到0层图的转换时,外部实体保持不变,且实体的流入流出保持不变
    • 常见错误: 加工无进(奇迹)、或无出(黑洞)

第十二章:数据库设计

  • 考点(15分)
  • 数据库设计过程
    • 需求分析: 得出数据流图
    • 概念结构设计: 得出E-R模型
    • 逻辑结构设计: 得出关系模式
    • 物理设计

第十三章:UML建模

  • 考点(15分)
  • 类关系符号
    • 依赖: 虚线实三角
    • 泛化: 实线虚三角
    • 组合: 实线实菱形
    • 聚合: 实线虚菱形
    • 实现: 虚线虚三角

第十四章:数据结构与算法应用

  • 考点(10分)
  • 算法
    • 分治法
    • 回溯法: 有岔路口则一直往下走,走不通则回溯到上一个路口选择另外一条路往下走。如走迷宫
    • 贪心法: 找到局部最优,不一定是整体最优。如装背包,找零钱
    • 动态规划法: 先找到局部最优,最后找到整体最优
  • 时间复制度
    • 无循环: O(1)
    • k个嵌套循环: O(n^k)
    • 某个循环一个元素基于二叉树: O(log_2_n)
    • 堆排序: 每次重建的复杂度为 log_2_n,如果n个元素复杂度就为 nlog_2_n

第十五章章:面向对象程序设计

  • C++
    • 派生类: class CashNormal : public CashSuper {}
    • 类外定义函数体: double CashNormal :: acceptCash(double money) {}
    • 虚函数: virtual double acceptCash(double money) {}
    • 纯虚函数: virtual 函数类型 函数名(形惨列表) = 0 (主要是 = 0)
      • 如果类里面存在一个纯虚函数则此类为抽象类
    • 对象指针与对象引用
      • 对象指针: 类名 *对象指针名
      • 对象引用: 类名 &对象引用名 = 被引用的对象
      • 使用 -> 访问对象成员

软考高级

  • 数据流图
    • 外部实体(长方形)、数据流(箭头)、加工(原型/椭圆形)、存储(平行线/少一条边的长方形)
    • 对比顶层图、0层图,使用数据平衡原则(箭头个数和方向是否匹配)
  • UML图
    • 用例图
      • 参与者->用例(功能单元)
      • 关系: 包含(include)、扩展(extend)、泛化
      • 用例细化(用例规约包含项)
        • 用例名称:登录
        • 用例ID:IBM_ESHOP_002.1
        • 角色:普通用户
        • 用例说明:用例主要显示登录功能
        • 前置条件:启动程序,进入登录页面
        • 基本事件流:用户输入账号密码,点击确定;系统查询数据库进行匹配
        • 其他事件流:无
        • 异常事件流:用户输入错误密码,系统进行提示密码错误
        • 后置条件:登录成功
    • 类图
      • 实现(虚线空心箭头)、依赖(虚线实行箭头,调用)、泛化(实线空性箭头,继承,箭头指向父类)、关联(聚合:实线空心菱形箭头、组合:实线实心菱形箭头)
    • 顺序图
    • 协作图(通信图)
      • 强调对象之间存在消息收发关系
    • 状态图
    • 活动图
      • 特殊的状态图,活动图的每个节点是一个动作和业务逻辑,而状态图里面的节点不是某个动作
    • 定时图(UML2.0)
    • 构件图
    • 部署图
      • 描述硬件节点与软件构件间的关系
  • 软件架构风格:五大架构风格及其子风格
    • 数据流风格:批处理、管道-过滤器
    • 调用/返回风格:主程序/子程序、面向对象、层次结构
    • 独立构件风格:进程通信、事件驱动系统(隐式调用)
    • 虚拟机风格:解释器、规则系统;有自定义场景时使用
    • 仓库风格:数据库系统、黑板系统(语言处理、信号处理)、超文本系统
  • 层次型软件架构风格
    • C/S和B/S
      • 两层C/S:胖客户端(业务逻辑) + 服务器(数据库);升级维护困难
      • 三层C/S:瘦客户端(进界面) + 应用服务器(业务逻辑) + 服务器(数据库)
      • 三层B/S:零客户端(浏览器) + WEB应用服务器(业务逻辑) + 服务器(数据库)
    • 常用层次型架构:表现层(MVC、MVP、MVVM)、中间层、访问层(ORM)、数据层
      • MVC架构风格(也有说是设计模式的),J2EE体系结构中对应EJB(EntityBena/JavaBean)、JSP、Servlet
      • RIA(中间层?):富客户端(临时下载客户端):Ajax、HTML5、小程序
    • 物联网分层架构:应用层、网络层、感知层(传感器/芯片/通信模组)
    • 大数据分层架构:数据应用层、数据接口层、数据层(数据仓库、分布式数据库、Hadoop平台)、数据采集层、数据源
  • 分布式软件架构风格
  • 面向服务的软件架构风格
    • SOA(面向服务的架构)
    • 微服务架构风格
      • 微服务架构模式方案:数据共享微服务、异步消息传递微服务、聚合器微服务、链式微服务
  • 云原生架构风格
  • 质量属性与架构评估
  • Web架构综合考查
ChatGPT开源小程序