“和欣” 手机的数据完整性技术研究.docVIP

“和欣” 手机的数据完整性技术研究.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
“和欣”手机的数据完整性技术研究 刘文荣 陈榕 (同济大学基础软件工程中心 上海 200092) 摘要:“和欣”嵌入式操作系统是基于CAR构件技术、支持构件化应用的操作系统,是国家863支持的TD-SCDMA的操作系统标准。本文简要介绍了“和欣”操作系统上的数据库系统SQLite,并着重分析了SQLite的数据库原子性在单文件数据库与多文件数据库中的具体实现过程,并且介绍了错误发生时执行数据恢复的过程。 关键词: “和欣”操作系统,嵌入式数据库,SQLite,原子性 中图法分类号: TP311  文献标识码: A The ACID in Elastos Smartphone LIU Wenrong, CHEN Rong* (System Software Engineering Centre of Tongji University, Shanghai 200092, China) Abstract: Elastos is an embedded operating system based on CAR component technology, and the standard of TD-SCDMA operating system supported by the 863 Program. This paper introduced the DB system SQLite on the system, and analyzed the implementation of the Atomic technology on single/multiple file database. Introduced the process of the time when error occurred. Key words: Elastos, Embedded Database, SQLite, Atomic 1 引言 目前,移动计算已经渐渐成为重要的计算模式之一,“和欣”嵌入式操作系统是一个完全我国自主研发,完全自主知识产权的国际先进的嵌入式操作系统,在国内是最适合嵌入式设备搭建面向服务软件结构基础的嵌入式操作系统。“和欣”系统是一个基于构件化软件模型的嵌入式操作系统,构件化软件设计思想贯穿了整个系统的设计与实现中,系统实现本身就是构件模式。绝大多数系统功能都是以构件接口的形式提供。另外,操作系统对构件化软件模型提供了必要的运行环境,来源不同的构件可以在该环境上实现互操作。系统提供了构件自动寻址/自动加载机制,构件运行环境可以对用户透明。构件化系统的实现,使得操作系统本身具有高度的灵活性和扩展性1。 SQLite是一个小型的C程序库,实现了独立的,可嵌入的,零配置的SQL数据库引擎。特性包括: 事务操作是原子,一致,孤立,并且持久的(ACIDAtomicity, Consistency, Isolation, Durability),即使在系统崩溃和电源故障。支持SQL92标准支持大多数计算机语言。直接在应用程序进程中运行,消除了与客户机服务器配置相关的开销提供了零配置运行模式随着计算机技术与其它学科间的不断交融、渗透,数据库应用的范围更加深入和具体。那些仅适用于PC机,体积庞大、延时较长的数据库技术已不能满足针对性较强的嵌入式系统开发的需求 3.2 建立回滚日志文件 在对数据库文件进行任何修改之前,SQLite首先建立一个单独的回滚日志文件,并且将数据库将要修改的页的原始内容写入。回滚日志的思想是包含需要将数据库恢复到其原始状态的所有信息。回滚日志文件包含一个小的头部记录了原始数据库文件的大小。所以如果变化导致数据库文件增长,我们依然可以知道它的原始大小。数据库页的编号与回滚日志中的 数据库页写在一起。 3.3 在用户空间更改数据库页 在原始内容保存到回滚日志之后,就可以在用户内存中修改页。每一个数据库连接都有一份用户空间的私有数据拷贝,所以用户空间中做的更改仅仅在做出改变的数据库连接中是可见的。其他数据库连接仍然看到的是操作系统缓存中的未改变的数据。而且其实一个进程正在修改数据库时,其他进程仍然可以继续读取他们的原始的数据库内容。 3.4 将回滚日志刷新至磁盘 这是数据库保证在突然掉电时不会崩溃的关键一步。这一步比较耗时,因为写入非易失存储设备一般是很慢的操作。 3.5 获得一个排他锁 在对数据库文件做更改之前,我们必须获得一个数据库文件的排他锁。获得一个排他锁是一个两步的过程。首先获得一个等待锁,然后将等待锁提升为排他锁。 一个等待锁允许其他已经拥有一个共享锁的进程继续读取数据库文件。但是它阻止建立新的共享锁。等待锁的目的是防止写进程由于有大量的读进程而饿死。设计等待锁通过允许已经存在的共享锁并且阻止建立新的共享锁来防

文档评论(0)

lingyun51 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档