嵌入式数据库引擎中虚拟机技术的研究new

嵌入式数据库引擎中虚拟机技术的研究new

ID:34525737

大小:310.10 KB

页数:5页

时间:2019-03-07

嵌入式数据库引擎中虚拟机技术的研究new_第1页
嵌入式数据库引擎中虚拟机技术的研究new_第2页
嵌入式数据库引擎中虚拟机技术的研究new_第3页
嵌入式数据库引擎中虚拟机技术的研究new_第4页
嵌入式数据库引擎中虚拟机技术的研究new_第5页
资源描述:

《嵌入式数据库引擎中虚拟机技术的研究new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、http://www.paper.edu.cn嵌入式数据库引擎中虚拟机技术的研究黄加喜,陈天煌,郑胜英,高庆锋武汉理工大学计算机学院,武汉(430063)E-mail:jiaxi@163.com摘要:嵌入式系统所要求的硬件环境决定了嵌入式数据库的引擎必须具有平台独立性。而虚拟机可以保证程序设计语言在任意硬件平台上实现。所以嵌入式数据库引擎采用虚拟机技术是最好的选择。本文介绍了虚拟机技术的相关概念,阐述了虚拟机的体系结构,研究了解析SQL语言的虚拟机代码,分析虚拟机与平台无关性,最后给出了虚拟机解析

2、SQL语言的具体实例。关键词:嵌入式数据库;嵌入式数据库引擎;虚拟机;SQL语言1.引言嵌入式数据库技术已经从研究领域向更广泛的应用领域发展,随着通信技术的进步和人们对数据处理和管理需求的不断提高,与各种智能设备紧密结合的嵌入式数据库技术已经得到了学术界、工业界、军事领域、民用部门等各方面的重视。不久的将来嵌入式数据库将无处不在。人们希望随时随地存取任意数据信息的愿望终将成为现实。而嵌入式数据库中的关键技术就是数据库引擎的设计。嵌入式系统所要求的硬件环境决定了嵌入式数据库的引擎必须具有平台独立性。

3、而虚拟机可以保证程序设计语言在任意硬件平台上实现。所以嵌入式数据库引擎采用虚拟机技术是最好的选择。2.虚拟机的概念虚拟机技术得到重视并得以快速发展,基于虚拟机的虚拟计算环境成为当前网络计算领域的热点研究问题,典型的工作有VirtualWorkspaces,VIOLIN,Virtuoso等等。这些研究项目也从不同侧面展示了虚拟计算环境的共同特点。我们认为,虚拟机(virtualmachine,亦称Hypervisor)是在软、硬件之间引入虚拟层,可为应用提供独立的运行环境,屏蔽硬件平台的动态性、分布

4、性和异构性,支持硬件资源的共享和复用,并为每个用户提供属于个人的独立、隔离的计算环境,同时,为管理员提供硬件资源和软件资源的集中管理。在文中采用了与Java虚拟机类似的机制。此类虚拟机类似于计算机的一个软件程序,它会像真正的处理器那样取出并执行程序的指令,但两者的区别在于虚拟机的指令过程发生在软件级而不是硬件级,即指令是由软件而不是硬件执行的。虚拟机不是某个特定的软件实现,而是由一套规范定义的,即规则。这套规则构成了一个规范。虚拟机可以用任意一种程序设计语言实现在任意一种硬件平台上,但前提必须是遵

5、守它的规范。3.虚拟机的构成嵌入式数据库引擎实现了一个虚拟的计算机。这个计算机上运行虚拟机的语言,为了保证虚拟机代码可以在符合某一规范的任何平台上运行,实现平台无关性,本系统提供了一个基于抽象规格描述的计算机模型。而每个程序的目标是查询或者改变数据库。为了这个目标,数据库引擎的机器语言特别设计成搜索,读取和修改数据库。虚拟机具体包括以下几个方面:1)数据类型。本虚拟机引擎支持Null(空)、Integer、Real、Text等数据类型。2)栈结构。本系统中虚拟机技术也采用了面向堆栈的体系结构。构建

6、了一个深度无限的-1-http://www.paper.edu.cn操作数堆栈,绝大多数的操作码都可以通过该堆栈获得对应的操作数。操作数栈是指令集的工作区,具体过程为指令从操作数栈中取出操作数,运算后把返回结果压入栈。3)指令集。本系统中虚拟机的指令与一般的机器指令系统很接近,指令集同样也是由操作码和操作数组成,采用的是一个3原运算符,它至多带3个操作数。操作数分别命名为P1、P2和P3。其中P1一般为任意的整数,具体的用途和操作码相关;P2为一个非负整数,它一般表示的是一个目标地址,指操作码发生

7、跳转操作时的地址P3是一个字符串或者为空,当前操作码的相关信息存储在这里。操作码的个数不等,可能有3个操作数,也可能有2个或1个,甚至没有操作数,没有操作数的指令从栈顶读取数据,并把执行后得到的数据压入栈进行存储。如含3个操作数的操作码String(P1,P2,P3),表示把P3所指的内容压入栈。部分操作码具体的含义详细描述如下:Clear清空数据库文件中根页面为P1的表或索引中的所有记录,保留表或索引结构,相当于删除表中的所有记录Close关闭游标P1Column从游标P1所指向的行记录中取出第

8、P2列的值压入栈中Commit提交事务,完成此次操作CreateTable在数据库文件中申请分配一个表结构,并把表的根页面号压入栈中Goto无条件跳转指令,跳转到P2指令处执行Halt停止退出指令,自动关闭所有打开的游标。Transaction开始一个事务,P1是要打开的数据库的索引OpenRead以只读方式打开数据库文件中根页面为P2的表OpenWrite以可写方式打开数据库文件中根页面为P2的表4.虚拟机实现了平台的独立性在通常情况下,编译程序最后输出的是绝对机器码。机器码能够

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。