首页 > 代码库 > 假期阅读笔记八
假期阅读笔记八
架构之美——系统架构(二)
时间很快,转眼假期过去了一半,理所当然《架构之美》也已经阅读了一半。直到今天,我才明白“不积跬步,无以至千里;不积小流,无以成江海!”的真正内涵,只要每天都月读一点点书籍,时间久了,再厚的书籍也会读完。今天我阅读的是《架构之美》的第八章——一个容错操作系统环境,在这一章中我的感悟最深刻。
在刚刚结束一个学期里,给我印象最深的一个名词就是系统容错性。容错是指在故障存在的情况下计算机系统不失效,仍然能够正常工作的特性。容错即是Fault Tolerance,确切地说是容故障(Fault),而并非容错误(Error)。例如在双机容错系统中,一台机器出现问题时,另一台机器可以取而代之,从而保证系统的正常运行。在早期计算机硬件不是特别可靠的情况下,这种情形比较常见。现在的硬件虽然较之从前稳定可靠得多,但是对于那些不允许出错的系统,硬件容错仍然是十分重要的途径。计算机系统的容错性是指软件检测应用程序所运行的软件或硬件中发生的错误并从错误中恢复的能力,通常可以从系统的可靠性、可用性、可测性等几个方面来衡量。可靠性对于火箭发射之类关键性应用领域来说尤为重要。而对于通用计算机来说,一个重要的指标就是系统的可用性。可用性是指在一年的时间中确保系统不失效的时间比率。可测性在容错系统的设计过程中也是一个非常重要的指标,如果我们无法对某个系统进行测试,又如何能保证它不出问题呢?此外还有MTBF(故障间的平均时间),即当系统正常运行后能坚持多长时间不失效。MTTR(故障修理的平均时间),即指系统要清除故障所需的时间。MTTR的大小直接影响着系统的可用性,而MTBF则反映了系统的可靠性。
《架构之美》第八章是这样介绍Guardian和Tandem的:Guardian是Tandem的容错“NonStop”系列计算机的操作系统。它设计成与硬件并行以便用最小的开销提供容错性。Guardian是一个微核系统:除了低级别的中断处理器(一个单独的过程,IOINTERRUPT)和一些非常低级别的代码之外,所有的系统服务都由运行在系统代码和数据空间中的系统进程处理。Tandem把计算机描述成有多个处理器的单独的计算机,但是,从21世纪的观点来看,它们更像是与单个计算机一样运行的计算机网络。尤其是每个处理器都几乎完全不依赖其他处理器而独立地工作,而系统可以从任何单个组件(包括处理器)的故障中恢复。和传统联网的处理器最大的区别是整个系统都从单个内核映像开始运行。Tandem的硬件设计成不可能存在“单个故障点”:系统、硬件或软件的任何一个组件都可以出故障而不引起整个系统出故障。它设计成优雅降级。在大多数情况下,尽管系统有多个故障,但总体上还能将继续运行,虽然这很大程度上依赖个别故障的种类。Tandem的编程模式受Algol和Pascal的很大影响,所以,它为返回一个值的函数提供了保留字function,并为不返回值的函数提供了保留字procedure。有两个指令用于调用一个过程:PCAL用于当前代码空间中的过程。SCAL用于系统代码空间中的过程,SCAL实现了其他架构中的系统调用的功能。‘
最后,用三个公式来激励大家以及自己:
有梦想 – 没行动 = 零
有机会 – 没抓住 = 零
有能力 – 没努力 = 零
假期阅读笔记八