第1章 预备知识 1
1.1 故障分类 1
1.2 冗余类型 3
1.3 容错的基本度量 4
1.3.1 传统度量 4
1.3.2 网络度量 6
1.4 本书要点 7
1.5 补充读物 8
参考文献 9
第2章 硬件容错 10
2.1 硬件故障率 10
2.2 故障率、可靠性和平均故障时间 11
2.3 典型的和弹性的结构 13
2.3.1 串行和并行系统 13
2.3.2 非串行/非并行系统 15
2.3.3 M-of-N系统 17
2.3.4 表决器 19
2.3.5 关于N模块冗余的变异 20
2.3.6 双工系统 23
2.4 其他可靠性评价技术 26
2.4.1 泊松过程 26
2.4.2 马尔科夫模型 28
2.5 处理器级容错技术 31
2.5.1 看门狗处理器 32
2.5.2 多线程同步容错 34
2.6 拜占庭式故障 35
2.6.1 具有消息认证的拜占庭协议 39
2.7 补充读物 40
2.8 习题 41
参考文献 44
第3章 信息冗余 47
3.1 编码 47
3.1.1 奇偶校验码 49
3.1.2 校验和 55
3.1.3 M-of-N编码 55
3.1.4 伯格码 57
3.1.5 循环码 57
3.1.6 算术码 63
3.2 弹性磁盘系统 66
3.2.1 1级RAID 66
3.2.2 2级RAID 68
3.2.3 3级RAID 68
3.2.4 4级RAID 70
3.2.5 5级RAID 70
3.2.6 关联错误建模 71
3.3 数据复制 74
3.3.1 表决:无等级组织 75
3.3.2 表决:等级化组织 79
3.3.3 主要备份方法 81
3.4 基于算法的容错 83
3.5 补充读物 84
3.6 习题 85
参考文献 88
第4章 容错网络 91
4.1 恢复能力测量 91
4.1.1 基于图论的测量 92
4.1.2 计算机网络测量 92
4.2 普通网络拓扑及其恢复能力 93
4.2.1 多级和附加级网络 93
4.2.2 交叉开关网 98
4.2.3 长方网格和空隙网格 100
4.2.4 超立方体网络 102
4.2.5 立方体连接循环网络 105
4.2.6 循环网络 106
4.2.7 点对点网络 108
4.3 容错路由 110
4.3.1 超立方体容错路由 111
4.3.2 网格中基于源的路由 113
4.4 补充读物 115
4.5 习题 116
参考文献 118
第5章 软件容错 121
5.1 接受测试 121
5.2 单一版本容错 123
5.2.1 封装器 123
5.2.2 软件复位 124
5.2.3 数据差异 127
5.2.4 软件在硬件容错系统上的应用 129
5.3 N版本编程 131
5.3.1 一致比较问题 131
5.3.2 版本独立性 133
5.4 恢复块方法 137
5.4.1 基本原理 137
5.4.2 成功概率计算 138
5.4.3 分布式恢复块 140
5.5 先决条件、后决条件和论断 140
5.6 异常处理 141
5.6.1 异常处理器的要求 141
5.6.2 异常和异常处理的基础 142
5.6.3 语言支持 144
5.7 软件可靠性模型 144
5.7.1 杰林斯基-莫兰达模型 145
5.7.2 利特尔伍德-弗罗尔模型 145
5.7.3 穆萨-奥本模型 146
5.7.4 模型选择和参数估计 147
5.8 远程调用容错 148
5.8.1 主-备方法 148
5.8.2 马戏方法 148
5.9 补充读物 150
5.10 习题 151
参考文献 152
第6章 校验点 156
6.1 校验点简介 157
6.1.1 校验点的重要性 159
6.2 校验点级别 159
6.3 最佳校验点——分析模型 160
6.3.1 校验点之间的时间间隔——一阶近似 161
6.3.2 优化校验点布局 162
6.3.3 校验点间隔时间——一个更精确的模型 163
6.3.4 降低开销 164
6.3.5 降低延迟 165
6.4 错误恢复缓存辅助回滚法 165
6.5 分布式系统中的校验点 166
6.5.1 骨牌效应和活锁 168
6.5.2 协调式校验点算法 169
6.5.3 基于时间的同步 171
6.5.4 无盘校验点 172
6.5.5 消息日志记录 173
6.6 存储器共享系统的校验点 176
6.6.1 基于总线的一致性协议 176
6.6.2 基于目录协议 177
6.7 实时系统中的校验点 178
6.8 校验点的其他应用 180
6.9 补充读物 181
6.10 习题 181
参考文献 183
第7章 案例研究 186
7.1 不间断系统 186
7.1.1 体系结构 186
7.1.2 维护和维修帮助 189
7.1.3 软件 189
7.1.4 不间断结构的修正 190
7.2 Stratus系统 192
7.3 卡西尼命令和数据子系统 193
7.4 IBM G5 195
7.5 IBM Sysples 197
7.6 Itanium处理器 198
7.7 补充读物 200
参考文献 201
第8章 超大规模集成电路缺陷容错 203
8.1 制造缺陷与电路故障 203
8.2 故障概率和临界区 204
8.3 基本成品率模型 206
8.3.1 泊松和混合泊松成品率模型 207
8.3.2 简单成品率模型的变化 208
8.4 通过冗余提高成品率 210
8.4.1 具有冗余性的集成电路成品率预测 210
8.4.2 具有冗余性的存储器阵列 213
8.4.3 具有冗余性的逻辑集成电路 219
8.4.4 修改平面布局图 221
8.5 补充读物 224
8.6 习题 225
参考文献 227
第9章 密码系统中的故障检测 231
9.1 密码综述 231
9.1.1 对称密钥密码 231
9.1.2 公钥密码 239
9.2 通过植入错误进行安全攻击 240
9.2.1 对称密钥密码的故障攻击 241
9.2.2 公钥(非对称的)密码的差错攻击 241
9.3 对策 242
9.3.1 空间域和时间域复制 242
9.3.2 错误检测码 243
9.3.3 这些对策是否充分 246
9.3.4 最后的说明 248
9.4 补充读物 248
9.5 习题 249
参考文献 249
第10章 模拟仿真技术 252
10.1 写一个模拟程序 252
10.2 参数估计 254
10.2.1 点对比区间估计 255
10.2.2 矩方法 255
10.2.3 最大似然法 257
10.2.4 参数估计的贝叶斯法 259
10.2.5 置信区间 261
10.3 方差缩减法 263
10.3.1 对偶变量 264
10.3.2 利用控制变量 265
10.3.3 分层取样 266
10.3.4 重点采样 267
10.4 随机数生成 274
10.4.1 均匀分布随机数发生器 274
10.4.2 测试均匀随机数发生器 277
10.4.3 生成其他分布 280
10.5 故障注入 284
10.5.1 故障注入技术类型 284
10.5.2 故障注入应用和工具 286
10.6 补充读物 286
10.7 习题 287
参考文献 290