论文部分内容阅读
计算机系统的多任务处理功能最初只应用于企业级计算,现在Intel公司和其他硬件厂商正在推出的多核微处理器,试图为个人电脑提供性能强劲的多任务处理能力,而作为与人们生活关系日益紧密的小型消费类电子产品却没有一套完善的多任务解决方案。J2ME平台是一个日趋庞大而强大的平台,在小型移动设备领域软件平台支持上占有不可替代的一席。J2ME的架构由“配置”、“描述”和“可选包”组成,开发者可以对其进行选择从而构建成一个完整的Java运行环境。因此,完善J2ME平台,为其增加多任务处理功能,成为了为小型消费类电子产品提供多任务解决方案最直接、最有效的方法之一。
Intel公司基金项目‘J2MEClassLibswithSmallFootprint。LowPowerandHighPerformanceonXScaleProcessor”的目标是开发一个称为XORP的J2ME虚拟机和一套遵循J2ME规范要求的类库。XORP是在原先支持J2SE的开源项目ORP(OpenRuntimePlatform)的基础上改造的。XORP和相应类库原先定位在CLDC规范上,而CLDC规范并未涉及多任务管理,也就是说某时刻在一个XORP运行实体上只能运行一个Java应用程序。
JCP组织发布的JSRl21规范为Java平台提供了完善的多任务管理方法,该方法使得在一个Java虚拟机上可以同时运行多个Java应用程序;而正在制定过程中的JSR278规范为多任务J2ME平台定义了一套资源管理框架。本文的工作是在已经实现的XORP和类库基础上,实现了JSRl2l规范和JSR278规范中定义的部分功能,包括设计并实现多任务间的通讯机制,在资源管理框架基础之上设计并实现了资源消耗的速率控制。
任务间通讯机制为运行于多任务Java虚拟机之上的程序提供了稳定、高效的数据传输通道。出于安全因素的考虑,在多任务虚拟机上运行的任务,必须遵循JSRl21规范中定义的隔离机制,所以,任务问通讯机制成为了任务与外界通信、获取信息和传送数据的唯一方法。本文实现的通讯机制严格遵守JSRl21规范,同时以发送者和接收者之间传递字符串为目标,使字符串可以在发送者和接收者之间被完整地传输,然后在接收端被正确地提取。采用这种设计方式的目的是为了在满足规范要求的前提下,快速开发一个可以实现基本功能的原型系统,并为将来的功能扩展提供基础保证。
一直以来,程序运行时的资源管理都由操作系统负责实现。但随着多任务环境的普及,应用程序需要更加灵活、安全的资源管理方式,因此,必须提供一套可以由应用程序自行完成资源管理的解决方案。对于Java平台而言,唯一的资源管理工具就是Java虚拟机的垃圾回收器,但垃圾回收器无法管理本地资源,例如文件、套接字以及由Java本地方法分配的堆空间。JSR278规范为具备处理多任务能力的J2ME平台定义了一套用于回收、统计和监控资源的管理框架。本文设计了资源管理框架中的重要模块,包括资源域、资源属性、资源分配器,触发器和回调函数;并且在资源管理框架基础上以消耗堆空间资源为例,设计并实现了资源消耗的速率控制功能原型系统,使Java应用程序可以自行监控资源消耗状况并调节资源消耗速度,增强了多任务J2ME平台的灵活性和稳定性。