图书目录

目录

第1章云计算与微服务绪论1

1.1资源共享2

1.2资源管理3

1.3资源共享的特性5

1.4规模效应和集约效应6

1.5资源共享类别8

1.6分布式系统10

1.7数据的一致性12

1.8服务的可用性14

1.9数据处理的高效性15

1.10系统的安全性17

1.11系统的可伸缩性19

1.123种组合系统的联系和差异21

1.13大数据处理系统23

1.14云计算24

1.15云原生程序26

1.16虚拟化和虚拟机27

1.17抽象与动态自适应29

1.18微服务30

1.19技术演进的历史32

1.20本章小结36

习题37

第2章计算机资源的共享38

2.1计算机工作原理39

2.2单任务操作系统的实现42

2.3多任务操作系统44

2.4进程的调度和管理45

2.4.1进程调度45

2.4.2进程管理50

2.4.3多任务并发执行51

2.5内核空间和用户空间52

2.6内存共享53

2.7网络共享54

2.8代码共享58

2.8.1地址重定位60

2.8.2基于间接寻址的跨模块函数调用实现方法63

2.8.3静态链接与动态链接65

2.8.4相对寻址中的基地址选择65

2.8.5虚拟内存67

2.8.6局部变量的存储分配和函数调用的实现70

2.8.7全局变量的动态存储分配和虚实转换的去除72

2.8.8全局变量和静态变量与多线程76

2.8.9操作系统中全局变量的共享问题78

2.9数据文件的共享79

2.10进程间的交互80

2.10.1信号处理81

2.10.2消息队列84

2.11进程与外设的交互86

2.12异常处理89

2.12.1异常处理的特性分析89

2.12.2异常处理的实现92

2.12.3异常处理的应用97

2.13本章小结99

习题100

第3章分布式计算103

3.1跨机器边界的函数调用104

3.1.1远程过程调用104

3.1.2Web交互111

3.1.3函数调用小结112

3.2网络传输113

3.2.1网络通信的抽象117

3.2.2同步I/O和异步I/O123

3.2.3网关服务器126

3.2.4应用层协议134

3.3事务处理的并发控制134

3.3.1基于访问冲突判定的并发控制136

3.3.2细粒度的并发控制140

3.3.3通过强化冲突判定条件的死锁避免方法145

3.3.4基于时间戳的乐观性并发控制146

3.3.5基于锁的乐观性并发控制148

3.4事务处理与故障恢复151

3.4.1事务处理152

3.4.2系统故障及其恢复策略153

3.4.3基于日志的故障恢复154

3.4.4磁盘故障的恢复159

3.4.5灾害故障的恢复160

3.4.6故障检测及恢复的实现161

3.4.7事务处理与故障恢复小结162

3.5分布式事务处理163

3.5.1分布式服务器163

3.5.2分布式服务器中的事务处理和故障恢复165

3.6本章小结168

习题169

第4章去中心化计算170

4.1Paxos共识协议171

4.1.1无故障时的id申请173

4.1.2故障对id申请的影响175

4.1.3故障对系统一致性的影响175

4.1.4有故障情形下副本一致性的实现177

4.1.5协议的特性分析179

4.1.6故障副本的恢复181

4.2Paxos协议的具体实现181

4.2.1对proposal消息的处理184

4.2.2对vote消息的处理186

4.2.3对decision以及ack和validation消息的处理187

4.2.4对termination消息和outcome消息的处理189

4.2.5对timeout消息的处理191

4.2.6对recovery和progress消息的处理192

4.2.7对fetch和item消息的处理194

4.2.8实现的特性分析195

4.3实用拜占庭容错协议195

4.4PBFT协议的实现199

4.5本章小结200

习题201

第5章虚拟化与云计算202

5.1应用程序与其运行环境203

5.2应用程序的编译运行与解释运行205

5.2.1高级程序语言的特性205

5.2.2源程序的构成特性206

5.2.3编译过程与方法207

5.2.4中间代码的优化211

5.2.5应用程序的解释运行213

5.2.6解释器的实现214

5.2.7指令的解释执行218

5.2.8逻辑地址与内存地址的映射222

5.2.9解释运行的特性分析226

5.2.10中间代码到机器代码的翻译227

5.2.11基于指令流水线处理的代码优化228

5.2.12基于高速缓存的代码优化229

5.2.13基于多核处理器的代码优化230

5.2.14基于解释和编译的混合运行模式231

5.3运行环境的虚拟化232

5.4文件的虚拟化234

5.5函数的虚拟化236

5.5.1基于代理的解耦和封装实现方案238

5.5.2基于函数虚拟化的解决方案239

5.5.3接口特性243

5.5.4由一个接口获取另一个接口244

5.5.5函数虚拟化的本质245

5.6应用程序的迁移247

5.7虚拟机的实现248

5.8虚拟机自己的文件系统252

5.9服务端口号的虚实映射253

5.10数据的持久存储255

5.11虚拟机拥有的资源量257

5.12虚拟局域网的实现259

5.13虚拟机上应用程序的更新262

5.14应用程序的容器化262

5.15云服务管理系统263

5.16本章小结265

习题267

第6章微服务269

6.1数据处理的高效性270

6.1.1树索引271

6.1.2散列索引273

6.1.3基于访问特性组织数据的存储274

6.1.4线程池和连接池277

6.1.5批处理280

6.2安全技术280

6.2.1注入攻击的防御281

6.2.2客户与服务器彼此之间的认证282

6.2.3其他互联网攻击的防御285

6.2.4客户访问权限的管理286

6.2.5对客户访问操作的审计追踪288

6.3服务器的可伸缩性289

6.4服务集群290

6.5抽象与动态自适应292

6.6本章小结294

习题295

参考文献297