系统架构师
1.2.3 Cache存储器
如果以 h 代表对 Cache 的访问命中率(“1-h”称为失效率,或者称为未命中率),t1 表 示 cache 的周期时间,t2 表示内存的周期时间,以读操作为例,使用“Cache+主存储器” 的系统的平均周期为 t3。
则: $$ t3 =t1′h+t2′(1-h) $$
映射机制
直接映射,全相联映射,组相联映射
cache和贮存均分成容量相同的块(页)
替换算法
随机算法,先进先出(First In and First Out,FIFO)算法,近期最少使用(Least Recently Used,LRU)算法
写操作
写直达(write through),写回(write back),标记法
1.3.1 流水线周期
流水线应用过程中,会将需要处理的工作分为 N 个阶段,最耗时的那一段所消耗的时 间为流水线周期。如:使用流水线技术执行 100 条指令,每条指令取指 2ms,分析 4ms,执 行 1ms,则流水线周期为 4ms。
1.3.3流水线吞吐率
任务数为n,单个任务分为k个阶段,处理完成k个任务所用的时间为$T_k$
计算流水线吞吐率的最基本的 公式如下: $$ TP = \frac n T_k $$ 流水线的最大吞吐率为: $$ TP_{max}=\lim_{x\to 0} \frac n {(k+n-1)\Delta t} = \frac 1 {\Delta t} $$
1.3.4 流水线的加速比
各个流水段执行时间均相等的一条 k 段流水线完成 n 个连续任务时的实际加速比为: $$ S = \frac {nk\Delta t} {(k+n-1)\Delta t} = \frac {nk} {k+n-1} $$ 最大加速比: $$ S_{max} = \lim_{n \to \infty} \frac {nk} {k+n-1} = k $$
2.2.2 存储管理
页面调度算法:最优(OPT)算法,随机(RAND)算法,先进先出算法(FIFO),最近最少使用(Least Recently Used,LRU)算法
3.1 数据库管理系统的类型
数据库管理系统(DBMS)
按模型划分:
- 关系型DBMS
- 文档型DBMS
- 键值型DBMS
- 对象型DBMS
3.2.2 数据模型
数据模型分两大类:概念数据模型(E-R模型)、基本数据模型
概念模型(E-R模型)主要用实体-联系(Entity-Relationshap Approach)表示
常用的基本数据模型:层次模型、网状模型、关系模型、面向对象模型
3.2.4 数据的规范化
→表示决定,A→B,表示A决定B或B依赖于A
范式:
- 第一范式(1NF):关系R中的所有属性不可再分
- 第二范式(2NF):关系R中的所有非主属性都完全依赖于主属性
- 第三范式(3NF):关系R中每个非主属性都不传递依赖与主属性
3.3.1 数据库设计的方法
设计步骤阶段:
- 需求分析
- 企业概念模式设计(概念设计)
- 数据库逻辑模式设计
- 存储模式设计
- 存储模式评价
- 数据库实现
9.2.1 软件质量属性
一般分为6种:可用性、可修改行、性能、安全性、可测试性、易用性
- 运行期质量属性
- 性能
- 安全性
- 易用性
- 可伸缩性
- 互操作性
- 持续可用性
- 鲁棒性
- 开发期质量属性
- 易理解性
- 可扩展性
- 可重用性
- 可测试性
- 可维护性
- 可移植性
9.2.2 6 个质量属性及实现
- 可用性及其实现战术:
可用性战术的目标是阻止错误发展成故障,至少能够把错误的影响限制在一定范围内,从而使修复成为可能
| 战术 | 架构设计策略 |
|---|---|
| 错误检测 | 心跳检测 |
| 错误恢复 | 表决、主动冗余、被动冗余、备件、状态在同步、检查点/回滚 |
| 错误预防 | 从服务种删除、事务、进程监视器 |
- 可修改性战术
| 战术 | 架构设计策略 |
|---|---|
| 局部化修改 | 维持语义一致性、预期期望的变更、泛化模块、限制可能的选择 |
| 防止连锁反应 | 信息隐藏、维持现有的接口、限制通信路劲、仲裁者的使用 |
| 推迟绑定时间 | 运行时注册、配置文件、多态、构建更换 |
- 性能战术
| 战术 | 架构设计策略 |
|---|---|
| 资源需求 | 减少处理事件流所需的资源、减少所处理时间的数量、控制资源的使用 |
| 资源管理 | 引入并发、维持数据或计算的多个副本、增加可用资源 |
| 资源仲裁 | 通过调度实现(FIFO、固定优先级调度、静态调度) |
- 安全性及其实现战术
| 战术 | 架构设计策略 |
|---|---|
| 抵抗攻击 | 对用户进行身份验证、对用户进行授权、维护数据的机密性、维护完整性、限制暴露的信息、限制访问 |
| 检测攻击 | |
| 从攻击种恢复 | 恢复(与可用性中的战术相同)、识别攻击者 |
- 可测试性及其实现战术
| 战术 | 架构设计策略 |
|---|---|
| 抵抗攻击 | 对用户进行身份验证、对用户进行授权、维护数据的机密性、维护完整性、限制暴露的信息、限制访问 |
| 检测攻击 | |
| 从攻击种恢复 | 恢复(与可用性中的战术相同)、识别攻击者 |