基于Ada语言的持久可靠流技术解析
1. 引言
在编程领域,保存程序内部数据以供后续使用是一项极为实用的技术。目前,开发通用的数据保存和恢复功能是一个活跃的研究方向。其中,容错系统开发和持久系统构建是两个最需要这类功能的重要领域。
在构建容错系统时,主要采用两种恢复方式:前向错误恢复和后向错误恢复。后向错误恢复需要将程序内部数据保存在不受假定故障影响的内存中。一旦检测到错误,可通过恢复内部数据使程序回到之前的正确状态,这可能涉及程序重启或尝试使用备用程序。而数据持久化则是将程序执行空间中的数据值保存下来,以便在后续执行中使用。
容错和持久化虽然都涉及数据保存,但它们是截然不同的程序属性。持久化侧重于保存数据值,而容错系统则需要保存程序在特定时刻的整体状态,且这些状态必须是一致的。在实现持久化服务时,通常无需考虑故障假设;而在为容错保存数据时,则要确保数据能在所有假定故障中存活。
2. Ada 95中的流
Ada 95引入了流的概念,流是由可能不同类型的值组成的元素序列,其中存储的值只能按顺序访问。Ada流可看作是序列化器设计模式的早期实现之一。该模式允许程序员将对象高效地流式传输到所选的数据结构中,也能从这些数据结构中创建对象。其参与者包括Reader/Writer、ConcreteReader/ConcreteWriter、Serializable接口、ConcreteElement和Backend。
在Ada 95中,标准包Ada.Streams定义了流的接口,声明了抽象类型Root_Stream_Type,所有其他流类型都必须从该类型派生。每个具体的流类型都必须重写Read和Write操作,还可根据特定流的功能
超级会员免费看
订阅专栏 解锁全文
13

被折叠的 条评论
为什么被折叠?



