一种单进程DirectFB的虚拟多进程运行方法技术

技术编号:8452867 阅读:308 留言:0更新日期:2013-03-21 13:53
本发明专利技术公开了一种单进程DirectFB的虚拟多进程运行方法,该方法用于在单进程DirectFB嵌入式平台上支持多业务时,每个业务都可以单独使用DirectFB,所述方法包含如下步骤:步骤1,用于后台业务管理进程初始化DirectFB资源的步骤;步骤2,用于各个子进程向所述后台业务管理进程申请获取DirectFB资源后才能使用DirectFB资源的步骤;其中,所述后台业务管理进程在系统启动后创建并一直处于运行状态,所述后台业务管理进程负责管理业务间切换,资源使用与分配,特别是DirectFB资源的使用,业务管理进程启动时初始化DirectFB的资源,通过父子进程共享进程空间的方式将DirectFB资源提供给子进程使用;业务子进程对应于每个业务。基于本发明专利技术提供的方法单进程DirectFB嵌入式平台上支持多业务进程时,每个业务子进程都可以单独使用DirectFB,且业务间切换流畅,无黑屏现象。

【技术实现步骤摘要】

本专利技术涉及嵌入式平台领域,特别涉及。
技术介绍
DirectFB是专门为满足嵌入式设备要求而开发的小巧、强大、灵活和易于使用的图形系统,并且试图成为一个建构于Linux Framebuffer Device之上的新图形标准。它在FrameBuffer的基础上提供了图形加速、输入设备处理提取、透明窗口和多重显示层的功能,能够对嵌入式系统GUI有较好的支持。与那些通用的嵌入式GUI系统相比,它具有非常简洁、高效的体系结构和硬件图形加速功能。目前国内外大多数嵌入式平台均已支持DirectFB 图形系统,如 sigma design, broadcom, NXP,华为的海思等。DirectFB主要有两种工作方式单进程和多进程。在单进程方式下,使用DirectFB的进程首先创建DirectFB,退出时释放DirectFB,在释放DirectFB时平台会清除显存,因此屏幕上会出现黑屏。而在多进程工作方式下,采用Master/Slave的方式,通过Iinux内核的fusion模块进行通信,每个进程均可以单独使用DirectFB资源,用于显示各自的UI,对于嵌入式平台上多业务的同时运行提供了强力的支撑。但由于平台资源等各方面的限制,并非所有的嵌入式平台都支持DirectFB的多进程运行。单进程DirectFB对于支持单一业务的运行是足够的,系统启动后运行该应用,该应用直至关机时才退出,因此该应用只需在启动时初始化DirectFB资源,退出时释放即可。但在嵌入式平台上同时运行多个业务已经成为一种趋势,每个业务都需要调用DirectFB来显示自身的W,为了避免DirectFB资源的释放申请导致切换时出现黑屏、等待时间长等问题,现有技术采用把多个业务集成到同一进程中,对软件的集成开发,稳定运行带来了极大的挑战。因此这种措施在多进程共享DirectFB资源为避免DirectFB资源的频繁释放申请导致切换时出现黑屏、等待时间长等问题时并没有实用价值。
技术实现思路
本专利技术的目的在于,为了更好地支持单进程DirectFB嵌入式平台上运行多业务,本专利技术提出了。为了达到上述目的,本专利技术提供,该方法用于在单进程DirectFB嵌入式平台上支持多业务时,每个业务都可以单独使用DirectFB,所述方法包含如下步骤步骤1,用于后台业务管理进程初始化DirectFB资源的步骤。步骤2,用于各个子进程向所述后台业务管理进程申请获取DirectFB资源后才能使用DirectFB资源的步骤。其中,所述后台业务管理进程在系统启动后创建并一直处于运行状态,所述业务管理进程负责管理子进程业务间切换,DirectFB资源的使用与分配。可选的,所述步骤I具体包含如下步骤系统启动后创建后台业务管理进程,该进程用于初始化DirectFB资源并创建DirectFB句柄。可选的,所述步骤2进一步包含如下步骤步骤2-1,用于为新创建的子进程分配DirectFB资源的步骤;步骤2-2,用于当运行中的两个子进程状态切换时再分配DirectFB资源的步骤。优化的,所述步骤2-1为当运行新业务时,后台业务管理进程创建子进程,并将创建的DirectFB句柄传递给子进程,完成子进程的图形显示;其中,所述子进程在创建时完全继承后台业务管理进程的内存和环境变量资源。进一步优化的,所述步骤2-2为当从子进程A切换至子进程B时,子进程A释放DirectFB资源的使用,转至后台,并将其当前显示的n以像素的方式保存至内存,当需要再次运行子进程A时,只需恢复对DirectFB资源的使用,并将其保存的UI内容显示。采用上述的技术方案后,本专利技术具有以下优点I、本专利技术通过在系统启动创建后台业务管理进程,其负责对DirectFB资源完成基本的初始化,每个业务子进程需要使用DirectFB时不再重新初始化DirectFB资源,而是向父进程(即后台业务管理进程)申请,当使用完毕后将DirectFB资源归还给父进程,实现了在嵌入式平台上单进程DirectFB的多进程使用;2、通过采用本专利技术的方法,在仅支持单进程DirectFB的嵌入式平台上,每个业务子进程都可以独立的使用DirectFB资源,无需业务间集成,业务间没有交叉,加快了软件集成的速度;业务切换时不会出现由于DirectFB释放时导致的黑屏,减少了用户等待时间,提闻了用户体验。总之,通过本专利技术提供的方法每个业务子进程可以独立使用DirectFB资源,且业务间切换流畅,无黑屏现象。附图说明图I是本专利技术的在嵌入式平台上单进程DirectFB的虚拟多进程运行方法的流程图;图2是本专利技术的方法中业务子进程如何切换使用DirectFB资源的流程图;图3是本专利技术的方法中各个业务子进程的状态转移图。具体实施例方式为了使本专利技术的目的、实现方法和优点更加清楚明白,参照附图,对本专利技术做进一步的详细说明。本专利技术提出,包括如下步骤(I)系统启动后首先启动后台业务管理进程,由该进程负责初始化DirectFB资源;(2)当需要运行新业务时,后台管理进程首先检测是否有前台业务运行,若有则通知前台业务释放DirectFB的使用转入后台运行,然后运行新业务;(3)新启动的业务向父进程(即后台管理进程)申请对DirectFB资源的使用,父进程返回事先申请好的DirectFB句柄。(4)子进程使用完毕后将DirectFB的使用权归还给后台管理进程。进一步地,所述的业务子进程有三种状态前台,后台及退出状态。前台状态是指业务子进程需要有n显示,正在占用DirectFB资源;后台状态是指业务子进程释放对DirectFB资源的占用,不需要n显示,但处于运行状态;退出状态是指业务子进程未运行。当后台管理进程需要运行业务子进程时,首先需要判断业务子进程的具体状态(I)若业务子进程处于前台状态则无需操作;(2)若业务子进程处于后台状态,则通知其切换至前台状态;(3)若业务子进程处于退出状态,则业务管理进程需要启动子进程,并在子进程中运行新业务。进一步地,为了保证子进程能够使用父进程创建的DirectFB资源,要求子进程在创建时必须完全继承父进程的内存和环境变量等资源,如使用Linux操作系统的fork ()函数就可以达到此目的。进一步地,为了实现业务间的快速切换,当从业务A切换至业务B时,业务A只是释放DirectFB资源的使用,转至后台,并将其当前显示的UI以像素的方式保存至内存,当需要再次运行业务A时,只需恢复对DirectFB资源的使用,并将其保存的UI内容显示。实施例图I为在Linux操作系统平台上单进程DirectFB如何实现多进程运行方法的基本原理图,单进程DirectFB的虚拟多进程运行方法包括以下几个步骤101)系统启动后,创建后台业务管理进程,该进程一直处于运行状态,所述业务管理进程用以管理各个业务子进程,负责向个业务子进程分发消息,统计并维护各业务子进程的状态;102)后台业务管理进程初始化DirectFB资源,为业务子进程的使用提供资源;103)后台业务管理进程通过fork方式创建子进程;104)在子进程中通过函数调用等方式运行新业务;105)子进程向父进程申请DirectFB资源的使用,显示子进程运行的新业务对应的UI。下面以DirectFB的基本接口代码示例说明本文档来自技高网
...

【技术保护点】
一种单进程DirectFB的虚拟多进程运行方法,该方法用于在单进程DirectFB嵌入式平台上支持多业务时,每个业务都可以单独使用DirectFB,所述方法包含如下步骤:步骤1,用于后台业务管理进程初始化DirectFB资源的步骤;步骤2,用于各个子进程向所述后台业务管理进程申请获取DirectFB资源后才能使用DirectFB资源的步骤;其中,所述后台业务管理进程在系统启动后创建并一直处于运行状态,所述业务管理进程负责管理子进程业务间切换,DirectFB资源的使用与分配。

【技术特征摘要】

【专利技术属性】
技术研发人员:朱小勇孙鹏姜艳程钢
申请(专利权)人:中国科学院声学研究所上海尚恩华科网络科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1