流水线计算:
- 理论公式:
t1+t2+t3+...+tk为执行一次完整流程所需时间(流水线建立时间),为流水线周期(最长步骤时间),n为要执行的次数。
- 实践公式:。
k为流水线步骤数,n为要执行的次数。
- 理论公式:
流水线吞吐率:
定义:单位时间内可以完成的指令数。 计算:。
cache平均周期:
公式:
所需芯片数计算:
- 地址区间计算:例如A0000H~CFFFFH地址区间计算。
- 套用公式:
- 地址区间计算:例如A0000H~CFFFFH地址区间计算。
可靠性计算(串并联系统):
串联系统: 并联系统:
输入输出技术
CPU控制主存与外设之间数据交互的过程。
- 数据传输控制方式:
- 程序查询方式:分为无条件传送和程序查询方式两种。方法简单、硬件开销小,但是I/O能力不高。
- 程序中断方式:因为CPU无需等待而提高了请求的响应速度。
- DMA方式:为了在主存和外设时间实现高效、批量数据交互而设置的,最为高效。
- 通道方式
- I/O处理机
- 中断处理过程
- CPU无需等待也不必查询I/O状态。
- 当I/O设备准备好后,发出中断请求信号给CPU。
- CPU接收到中断信号后,保存正在执行程序的现场,即打断点。
- 转入I/O的服务程序执行,完成数据交换。
- 返回被打断程序继续执行。
- 数据传输控制方式:
段页式存储
页式存储:将程序和内存划分为同样大小的块,以页为单位将程序调入内存。
- 逻辑地址 = 页号 + 页内地址
- 无力地址 = 页帧号 + 页内地址
- 例题:在页式存储系统中,每页大小为4KB,逻辑地址为10110011011110


断页式存储
某些页码不在内存中,则称为断页式存储。将不在内存中的页调入内存中,采用以下规则淘汰旧页面:
访问位为0,优先淘汰访问位为0的页
若访问位为0有多个,则优先淘汰修改位为0的页
注意:状态位标识该页是否在内存中!
段式存储
按用户作业中的自然段来划分逻辑空间,然后调入内存,段长可以不一致。
逻辑地址:(段号, 段内偏移量),注意偏移量不得超过段长。
段页式存储
段式和页式综合体,先分段,后分页。一个程序有若干个段,每个段内有若干个页,每个页大小相同,但是每个段长度不同。
例题:段页式存储的地址结构如下图,则系统最多也多少个段?每个段最多有多少个页?每页大小为多少?

alt text - 最多有个段
- 每个段最多有个页
- 每页大小为
子网掩码计算
类别
- A类:8网络号,24主机号
- B类:16网络号,16主机号
- C类:24网络号,8主机号
计算
例:将B类IP地址168.195.0.0划分成27个子网,其子网掩码多少?
- B类IP,其网络号16位
- 划分为27个子网,至少需要5位二进制数字()
- 子网掩码:原网络号(1111 1111 1111 1111) 子网所需(1111 1000) 主机号(0000 0000) = 255.255.248.0
扩展:其能表示的主机个数为多少?
- 32 - 16 - 5 = 11;
- 主机数::排除全0和全1的情况
例题2:将B类IP地址168.195.0.0划分成若干个子网,每个子网内有主机700台,则子网掩码为多少?
- 主机有700台,,则主机位需要10个。
- 子网号则有32 - 16 - 10 = 6位。
- 子网掩码:11111111 11111111 11111100 00000000 = 255.255.252.0
速度传输速率计算
- bps含义:比特/秒,bit/s
- 例如1MB/s = 8* bps
磁盘
- 有效区域:(外径 - 内径)/ 2
- 格式化容量:面数 * (磁道数 / 面)* 扇区数/道 * (字节/扇区)
- 非格式化容量:面数 * (磁道数/面) * 内圆周长 * 密度
CPU组成:
- 运算器
- 算术逻辑单元ALU:执行算术运算(加减乘除)和逻辑运算(与或非)。
- 累加寄存器AC:暂存ALU的运算结果和操作数。
- 数据缓冲寄存器DR:数据中转站,用于在CPU与外设/存储器之间暂存正在读/写的数据,或暂存从内存取来的操作数。
- 状态条件寄存器:保存运算结果的状态标志与条件码。
- 控制器
- 程序计数器PC:保存下一条要执行的指令的地址。
- 指令寄存器IR:保存“当前正在执行/刚取到的指令”,为译码和执行阶段提供指令字段(操作码、寻址方式、寄存器编号等)。
- 指令译码器:对IR中的操作码等字段进行解释编译。
- 时序部件:负责协调CPU各部件的工作,确保指令按顺序执行。
浮点数运算步骤:
统一浮点数阶码,向高阶靠拢,例如1000和919,科学计数法后为1.000x103和0.119x103。
尾数相加,例如1.0 + 0.119 = 1.119。
结果格式化(确保小数点左边第一位不能为0且不能为一位以上的数字):1.119 x 103。
校验码 功能:在原有数据上,添加一些冗余数据来校验这些数据的准确性和正确性。 码距:任意两个码字之间最少变化的位数。
奇偶校验(可检错,不可纠错)
在若干个有效信息中,加一个校验位组成校验码。
奇校验(整个校验码中1的个数为奇数) 偶校验(整个校验码中1的个数为偶数)。
CRC循环冗余校验码(可检错,不可纠错)
在k位信息码后拼接r位校验码,校验码由多项式P(x)生成,P(x)由接收方定义。
接收方在收到数据后,使用约定的多项式P(x)对数据进行模二除法,若余数为0则表示正确,否则表示错误。不同位数出错其余数不同,余数和出错序号之间有唯一的对应关系。
海明校验码(可检错,可纠错)
- 海明校验位公式:2r >= m + r + 1,其中m为信息码位数,r为校验码位数。
- 海明码明确规定校验位的位置在信息码的第2n位,例如第20 = 1,第21 = 2,第22 = 4,...

OSI七层模型:
应用层:实现具体应用
表示层:数据加密、压缩
会话层:建立、管理、终止会话
传输层:端到端传输
网络层:分组传输、路由选择,设备有交换器、路由器
数据链路层:以帧为单位传输,设备有网桥、交换机、网卡
物理层:二进制传输,设备有中断器、集线器
TCP/IP 模型(4 层模型):
应用层:对应 7 层模型中的应用层+表示层+会话层
- 主要协议 如图
- DNS:域名解析,将域名转为 IP 地址
传输层:对应 7 层模型中的传输层
- 主要协议:TCP、UDP
网络层(网际层):对应 7 层模型中的网络层
- 主要协议:IP、ICMP、IGMP、ARP(ip 转 mac)、RARP(mac 转 ip)
网络接口层:对应 7 层模型中的数据链路层+物理层
- 主要协议:CSMA/CD、TokingRing

alt text 高内聚低耦合:一个模块的内部功能高度相关,外部功能相对独立。
- 内聚划分(高 -> 低):
- 功能内聚:各模块完成单一功能,互相协作
- 顺序内聚:各模块按顺序执行
- 通信内聚:处理元素集中在一个数据结构汇总
- 过程内聚:按特定次序执行
- 时间内聚:同一时间间隔内执行
- 逻辑内聚:一组逻辑相关
- 巧合(随机)内聚:无任何关联
- 耦合划分(低 -> 高):
- 非直接耦合:无任何直接关系,通过主模块控制和调用
- 数据耦合:借助参数表传递简单数据
- 标记耦合:借助参数表传递数据结构
- 控制耦合:传递的信息用于控制内部逻辑
- 外部耦合:访问同一全局简单变量
- 公共耦合:访问同一公共数据环境
- 内容耦合:一个模块直接访问另一个模块的内部数据;一个模块不通过正常入口进入另一个模块内部;两个模块有代码重叠;一个模块有多个入口
- 内聚划分(高 -> 低):
加密算法
- 对称加密:DES、3DES、RC-5、IDEA
- 非对称算法:RSA、ECC
稳定排序:冒泡排序、插入排序、归并排序、基数排序、计数排序
线条关系:

23种设计模式
- 创建型
- 抽象工厂(Abstract Factory):提供一个接口,创建一系列相关或依赖的对象,无需指定具体的类
- 构建器模式(Builder):表示和结构分离,使相同的构建过程得出不同的表示
- 工厂模式(Factory Method):子类决定实例哪一个类
- 原型模式(Prototype):用原型实例指定创建对象的类型,并clone方法来创建对象
- 单例模式(Single):只有一个实例,并提供一个访问其全局的访问点
- 结构型
- 适配器模式(Adapter):使不相容的得以协同工作
- 桥接模式(Bridge):抽象与实现分离,使得可以独立变化
- 组合模式(Composite):将对象组成树形结构
- 装饰模式(Decorator):给对象添加额外的职能
- 外观模式(Facade):定义高层接口,提供一个一致外观
- 享元模式(Fly weight):提供大量对象共享的有效方法
- 代理模式(Proxy):为其他对象提供代理,来控制这个对象访问
- 行为型
- 职责链模式(Chain of responsibility):多个对象都有处理这个请求的机会,将其组成一条链,沿着其进行传递,直到有一个对象将其处理
- 命令模式(Command):支持撤销
- 解释器模式(Interpreter):根据文法表示来解释语言中的句子
- 迭代器模式(Interator):顺序访问一个聚合对象的各个元素而不暴露对象的内部表示
- 中介者模式(Mediator):用一个中介对象封装一系列对象交互,使得对象间无需显式调用,从而达到低耦合,还可独立改变对象间交互
- 备忘录模式(Memento):恢复到原先保存的状态
- 观察者模式(Observer):当一个对象改变时,所有依赖它的对象都会得到通知并更新
- 状态模式(State):允许一个对象在其内部状态变化时改变其行为
- 策略模式(Strategy):将一系列算法封装起来,使得它们之间可以互相替换,从而独立
- 模版方法模式(Template):将一些步骤放到子类中实现
- 访问者模式(Visitor):在不改变各元素前提下定义作用于这些元素的新操作
- 创建型
面向对象设计七大原则
- 单一职责原则:设计目的单一的类
- 开放-封闭原则(开闭原则):对扩展开放、对修改封闭
- 李氏(Liskov)替换原则:子类可以替换父类
- 依赖倒置原则:要依赖于抽象,而不是具体实现;针对接口编程,不要针对实现编程
- 接口隔离原则:使用多个专门的接口比使用单一的总接口更好
- 组合重用原则:要尽量使用组合,而不是继承关系达到重用目的
- 迪米特原则(最少知识法则):一个对象应当对其他对象尽可能少的了解
其他原则:
- 重用发布等价原则:重用的粒度就是发布的粒度
- 共同封闭原则:包中所有类对于同一性质的变化应该是共同封闭的。一个变化若多一个包产生影响,则将该包中所有类产生影响,而对于其他的包不造成任何影响
- 共同重用原则:一个包里的所有类应该是共同重用的。如果重用了包中的一个类,那么就要重用包中的所有类
- 无环依赖原则:在包的依赖关系图中不允许存在环,即包之间的结构必须是一个直接的无环图形。
- 稳定依赖原则:朝着稳定的方向进行依赖
- 稳定抽象原则:包的抽象程度应该和其稳定程度一致
UML图
- 静态图 1. 类图:一组对象、结构、协作和它们之间的关系 2. 对象图:一组对象以及它们之间的关系 3. 包图:描述类或其他UML如何组织成包,以及包之间的依赖关系 4. 组合结构图:分解类、组件或用例的内部结构 5. 构件图(组件图):一组构件之间的组织和依赖,专注于系统的静态实现视图 6. 部署图:软硬件之间映射,运行处理结点以及构件的配置,给出体系结构的静态实施视图 7. 制品图
- 动态图 1. 用例图:系统与外部参与者的交互,描述用例、参与者以及它们之间的关系 2. 顺序图:强调按时间顺序 3. 通信图(协作图),强调收发消息的对象之间的组织结构 4. 定时图:关注对象在改变状态时的时间约束条件 5. 状态图:展现了一个状态机,由状态、转换、事件和活动组成。 6. 活动图:类似程序流程图,并行行为。专注于系统的动态视图,一个活动到另外一个活动到流程。 7. 交互概览图
泛化:将对象之间的共性进行抽象的过程叫做泛化,结果为生成一个父类,子类可继承(extends)父类中的属性和方法。
