基于VxWorks的嵌入式数据库管理系统设计

上传人:206****923 文档编号:41650686 上传时间:2018-05-30 格式:DOC 页数:8 大小:1.02MB
返回 下载 相关 举报
基于VxWorks的嵌入式数据库管理系统设计_第1页
第1页 / 共8页
基于VxWorks的嵌入式数据库管理系统设计_第2页
第2页 / 共8页
基于VxWorks的嵌入式数据库管理系统设计_第3页
第3页 / 共8页
基于VxWorks的嵌入式数据库管理系统设计_第4页
第4页 / 共8页
基于VxWorks的嵌入式数据库管理系统设计_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《基于VxWorks的嵌入式数据库管理系统设计》由会员分享,可在线阅读,更多相关《基于VxWorks的嵌入式数据库管理系统设计(8页珍藏版)》请在金锄头文库上搜索。

1、基于基于 VxWorks 的嵌入式数据库管理系统设计的嵌入式数据库管理系统设计敖磊1 姜立秋2(大连理工大学城市学院计算机工程学院,辽宁大,116600)摘要:摘要:嵌入式数据库管理系统是最近几年才兴起的一项新的数据管理技术。它以目前成熟的数据库技术为基础,针对嵌入式设备的具体特点,实现了对嵌入式数据库中数据的存储、组织和管理。在论文的阐述当中,主要针对存储管理模块、并发控制模块、事务处理模块和日志管理模块的设计和实现进行了详细说明。在实现的过程中,充分利用 VxWorks 提供的各种接口,以提高嵌入式数据库管理系统的效率。关键词:关键词:EDBMS;并发控制;事务The Design and

2、 Implementation of the Embedded Database Management System Based on VxWorksAO Lei1, JIANG Liqiu2(School of Computer Engineering, City Institute, Dalian University of Technology, Liaoning Dalian, 116600)Abstract: Embedded database system is an emerging data management technology in recent years. It b

3、ased on the mature database technology the specific characteristics for embedded devices; and achieved the data storage, organization and management on embedded database. This thesis focuses on the design and implementation of the data storage module, concurrent control module, transaction module an

4、d the logging module. In order to improve the efficiency of the system, the implementation utilized various interface provided by VxWorks. Key Words: EDBMS; Control Concurrent; Transaction;嵌入式数据库管理系统,也称为 EDBMS。由于嵌入式系统具有面向特定应用、成本敏感性高、软件固化等特点1,因此 EDBMS 主要的设计目标是拥有一个完全模块化的核心。具体地讲,嵌入式数据库管理系统的核心可以由最基本的功能模

5、块所组装成的一个DBMS 微内核。通过核心配置工具,针对不同的嵌入式设备及具体的应用选择所必需的可选功能模块,进而组成一个特定的嵌入式数据库管理系统的完整核心,真正实现 EDBMS的核心可配置性,从而实现系统的高伸缩性和高扩展性,为实现一个通用的嵌入式数据库管理系统奠定基础。嵌入式数据库管理系统可以由存储管理模块、并发控制模块、事务管理模块、日志管理模块等几个部分组成。一、存储管理模块的设计与实现一、存储管理模块的设计与实现结合嵌入式系统的特点以及 VxWorks 文件系统的操作方式,可以设计一种简易存储管理模式,如图 1 所示。EDBMS 的存储管理基本上完成四种处理及相应的可行性分析2。(

6、1) 数据在内、外存间的有效读写借助与 VxWorks 提供的强大文件系统功能,完成数据文件和系统文件在内外存之间的有效读写。VxWorks 文件系统FLASH 文件存储区数据 文件1数据 文件2 数据 文件N通信端口 缓冲区通信 端口1通信 端口2 通信 端口3网络通信处 理模块监视模块定位到文 件逻辑地址-内存 地址转换EDBMS对表项操 作(表名、偏移)(文件描述符 偏移)R A M 空 间文件视 图1文件视 图2 文件视 图N存储消息接收模 块EDBMS 系统文件表名-文件描 述符映射结 果 集查查询询 修修改改图 1 存储管理简易管理模型(2)数据在内存与结果集间的有效存取用户/应用

7、对于数据库的增、删、改、查、排序、归并等操作过程,往往会产生大量的中间集以及一个结果集,为了避免同样的记录在内存中的多次被复制,可以使用结果集这样一个结构体,它提供操作结果与数据文件间的映射关系表。在结果集中只是记录相应记录所在的文件 FD,记录编号,而并不复制记录的字段,只有到应用程序真正需要访问时,才从打开的文件中取出。这样也可以保证读出的数据是最新的,避免了不同副本之间一致性保持的问题。(3) 数据写回外存的时机选择VxWorks 打开一个文件时,是将所有的数据全部读到内存中。当用户提交事务时再将修改的页面更新到 FLASH 中。一个小的变动都有可能导致写 FLASH,对于寿命有限的FL

8、ASH 来说这种处理方式是不可以接受的。对于一般的应用来说,只需要将变动的内容暂时保留于内存当中,并置位“脏页标识” 。EDBMS 的监视模块根据预配置的“写策略” ,选择合适的时机(系统空闲、系统退出或是接受到命令等)写回 FLASH。此方式的实现同时也需要日志管理模块的支持。(4) 逻辑/内存地址转换模块EDBMS 提供的一个重要功能模块就是逻辑/内存地址转换模块,用来实现数据库系统的外模式。对于用户/应用而言,操作的对象是二维表,通过表名、属性名、记录号即可访问该数据记录。而作为用户数据文件,只是一些毫无意义的二进制编码,在内存中的组织形式是连续的一片存储空间。逻辑/内存地址转换模块负责

9、根据用户提供的参数,依据用户数据文件中的头结构,定位记录,并根据要求的格式填写结构体的字段。二、并发控制模块的设计与实现二、并发控制模块的设计与实现并发控制的主要目的是保证事务处理以及数据库状态的一致性,进行冲突解决。可能引发冲突的事务序列包括:(1) 写写冲突:多个事务同时要求对同一个表中的记录进行修改。(2) 读写冲突:先有事务读操作,又有事务写操作。作为嵌入式操作系统,必须在进程管理、进程间通信以及同步机制给予支持3。VxWorks 实现了强大的进程调度功能,提供良好的进程间通信机制。EDBMS 的并发控制采用“锁机制” ,就是基于信号量来实现多个并行事务并发的访问同一数据。系统在实现时

10、,允许一定数目的事务对同一个表进行读操作,但写操作只能有一个,所以引入两种锁:共享锁(Share Lock)、排他锁 (Exclusive Lock)。在这个 EDBMS 中,并发控制模块类似于一个服务器的后台守护进程,它对系统资源的要求很低。当有数据库操作的请求后,事务处理模块就产生一个服务进程 SubTransaction来完成该操作。而并发控制模块借助于 VxWorks 的进程调度机制保证所有事务执行的串行化。在整个操作执行结束后,无论成功或是失败,这个 SubTransaction 进程都将被释放。为了避免死锁,并发控制模块同时需要实现死锁检测机制。传统的死锁检测主要是以等待图作为基本

11、工具的。这种检测方式牵扯到死锁回路的检测,实现起来比较复杂。所以在具体的实现中,采用了一种乐观的假设,即认为在所有事务调度是可串行化的情况下,是不会产生死锁的,那么死锁检测的机制也被弱化。以锁为节点(Node),为每个等待该锁的事务加盖一个时戳(Time Stamp)。周期性更新每个等待事务的时戳。一旦有两个以上的锁节点上绝大部分的时戳超过了预设定的门限,既认为有死锁产生,即可通知监视模块,进行相关的处理。对于并发控制模块的总体设计如图 2 所示。并并发发控控制制 模模块块事事务务处处理理 模模块块U Us se er r A Ap pp pl li ic ca at ti io on n 1

12、 1U Us se er r A Ap pp pl li ic ca at ti io on n 2 2S Su ub bT Tr ra an ns sa ac ct ti io on n 1 1S Su ub bT Tr ra an ns sa ac ct ti io on n 2 2锁锁D DB B锁锁S Su ub bT Tr ra an ns sa ac ct ti io on n 1 1释释放放 回回收收修修改改查查阅阅、修修改改C Cr re ea at te e T Ta as sk kC Cr re ea at te e T Ta as sk kC Cr re ea at te

13、 e T Ta as sk kR Re eq qu ue es st tR Re eq qu ue es st tR Re eq qu ue es st tR Re eq qu ue es st tR Re eq qu ue es st tR Re eq qu ue es st tT Ta ak ke e L Lo oc ck k S Se em mp ph ho or re eG Gi iv ve e L Lo oc ck k S Se em mp ph ho or re eS St ta at tu us s R Re ep po or rt tS St ta at tu us s R R

14、e ep po or rt t检检测测到到死死锁锁D DB BM MS S进进程程控控制制块块监监视视模模块块事事务务处处理理 模模块块D DB BM MS S进进程程控控制制块块图 2 并发控制模块的总体设计三、事务管理模块的设计与实现三、事务管理模块的设计与实现在一个分布式数据库管理系统的结构中,事务管理一般都处于核心位置。它的主要任务是调度、管理分布式数据库上运行的事务,负责子事务的初启与结束,并监督执行。事务是完整性和可恢复性的单位,一个事务的执行把数据库从一个一致的状态转移另一个一致的状态。事务同样有自己的状态,可以将系统中所有事务状态分为四种,包括:开始提交、正在提交、事务回滚、事

15、务空闲。可以用一个简单的状态机来描述事务模块的处理过程。如图 3 所示。事事务务空空闲闲 状状态态开开始始提提交交 状状态态正正在在提提交交 状状态态事务请求提交事务事务成功请请求求失失败败提交失败事事务务回回滚滚 状状态态回滚成功图 3 事务管理模块状态转移图EDBMS 事务管理模块实际上由两部分功能模块组成。(1) 单一事务分析模块:接受来自用户(通过函数调用)或是系统内部(通过消息机制)的事务请求,按照操作类型的不同产生相应的事务管理实体。(2) 若干事务管理实体:按照可串行化调度的方法,依据具体操作对象(系统表或用户数据表)的不同,将每个具体的操作划分为若干“写事务”和“读事务”的序列

16、。同时,对于写事务产生相应的日志机制并协调日志管理模块的动作。EDBMS 产生的所有可并发的读事务和写事务,构成一个子事务空间,这些子事务访问文件视图(数据空间)完成整个事务的阶段性操作。这个过程同时受到并发控制模块的管理。图 4 显示了事务管理模块的组成以及在处理过程中与之直接相关的若干模块。子子事事务务空空间间事事务务管管理理模模块块事事务务分分析析模模块块E ED DB BM MS S其其他他模模块块 请请求求用用户户/ /应应用用 请请求求事事务务管管 理理实实体体创创建建创创建建子子事事务务1 1子子事事务务n n子子事事务务1 1子子事事务务m m数数据据文文件件系系统统文文件件索索引引文文件件系系统统目目录录 文文件件R R A A M M锁锁锁锁锁锁锁锁锁锁锁锁进进程程级级间间模模块块通通信信进进程程级级模模块块函函数数调调用用文文件件视视图图逻逻辑辑概概念念数数据据流流向向并并发发控控制制模模块块日日

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号