利用线程调用表将功能性添加到计算装置的制作方法

文档序号:6568477阅读:130来源:国知局
专利名称:利用线程调用表将功能性添加到计算装置的制作方法
利用线程调用表将功能性添加到计算装置技术领域该发明涉及将功能性添加到计算装置的方法,具体地,涉及操作系统(OS )内核中的多个线程调用表如何被用于将功能性添加到计算装置。
技术背景对于某些类型装置的制造商和其他寻求在新的平台上执行现 有计算技术的人来说,尝试再度使用他们现有的软件素材通常是有 利的。这尤其适于诸如移动电话的消费装置(与其开发时所才殳入的时间相比其具有短暂的市场寿命);任何缩短开发周期和降低开发 成本的操作都将改进生产效率。通信栈和协议实现就是制造商寻求在现代消费电子装置 (consumer electronic device )中再度4吏用寿欠4牛素才才的4艮好实例;这 种装置存在日趋会聚的趋势,并且在许多不同的情况和装置中将日 益需要通信和联网能力。这样的软件通常具有下列特点*它们是电话制造商已进行了可观财政投资的庞大而复杂的 软件*它们具有显著的实时要求*它们通常^皮开发为在一些类型的实时纟喿作系统(RTOS)上 运行。它们包括专属系统和诸如Nucleus Plus、 VRTX或OSE 的标准商业系统。下面;]夸这种寿欠件称作原有实时应用库欠件(legacy real time application,简称LRTA)。存在多种将LRTA结合到新平台上的方 式。一种相对直4妄的方法是〗寻LRTA组4牛运4亍在其自己的CPU(与 用于处理该装置的其余功能的CPU分开)上。该解决方案有一些 优点不需要〗爹改LRTA,以及将其与装置上的其余的软件完全隔 离开的事实减小了集成的负担。然而,也存在缺点最明显的缺点是,所需的额外处理器和附 加存储器的成本。因为现代的计算装置上的成本压力,并且这些成本压力首先负 责^f吏用LRTA的决定,所以经常出现由于分离处理器的方案过于昂 贵而被否决的情况。这意味着LRTA必须和装置上的软件的其余部 分运4于在同一个CPU上,并且将需要在用于该CPU的本地的纟喿作 系统(OS)下运行。本领域的技术人员将会意识到完成这些有三种 主要的方式l.修改LRTA的源代码(和可能的设计)以使其直接在本地 OS下运^f亍。由于LRTA通常由^f氐级别组件构成,所以其通 常通过将其重新设计为纯内核模式装置驱动器或者重新设 计为内核与用户模式组件的组合来来实现。但是,由于修改LRTA所花费的时间、这么啦文所伴随的风险、 以及由于为LRTA创建第二个截然不同的版本而为装置制造商增加 的运行维护负担的问题,这种选择在商业上也是不切实际的。2.实现本地OS和LRTA RTOS在其中同时运行的系统。其可 以通过在本地OS内核中的关4建位置(strategic place )(中断 以及其它可能的异常向量)处设置异常分支(hook)以允许 RTOS运4亍,或者通过在两个"t喿作系统之间冲丸^f亍上下文转换 的一些类型的"管理程序"来完成。然而,这需要对两个才喿 作系统进4亍更改来调用该管理程序,乂人而指示线程转换、优 先级改变等。该选4奪也存在下列缺点 由于即使异常分支不与LRTA相关,但它们也在每个中断和 每次执行调用处被调用,因此整个装置性能被劣化。由于存在更多异常分支和用于对中断进行处理的整个外部层, 所以管理程序系统将使性能更加劣化*异常分支增加了附加的复杂情况,以及对于代码的特别敏 感区域的故障风险*将异常分支插入到本地OS内核以使RTOS在期望的时间运 行,这破坏了 OS内核的实时性能,这是因为LRTA中的低 优先级线程将优先于本地OS中的高优先级线程。管理程序 系统不必经历这一 问题,但是这将相当复杂并且导致更大 的性能损失*如果多于一个RTOS需要运行(这可能是必须的,例如,如 果GSM信号栈以及蓝牙栈被请求,并且每一个均使用不同 的RTOS),则异常分支将变得极端复杂并且难于管理。3.在本地OS内核上实现个性层,个性层^是供和最初的RTOS 一才羊的应用编禾呈*接口 (API),或者至少和LRTA所要求的一 样。贝'J RTOS本身可以4皮省却,LRTA能够利用本地OS内 核作为下层实时内核(当然假设其具有该能力)运行。发明内容本发明釆用了上述的个性层(personality layer)解决方案。然 而,当前实现个性层的方法需要大量的编程开销。本发明提出了一 种用于实现这种层的更快和更好的方案。根据本发明的第 一方面,提供了在运行本地操作系统的计算装 置上实3见冲目异冲喿4乍系纟充(alien operating system )的个性层的方法, 其使为所述相异操作系统所写的软件能够运行在该装置上,该方法 包括a. 通过用于对本地才喿作系统进行系统调用的线程自身的调度 表来设置运行在计算装置上的每个执行线程;并且b. 通过指向对于本地才喿作系统的系统调用的调度表来i殳置寺丸 行为本地才喿作系统所写的应用程序的线程;以及c. 通过指向与相异才乘作系统的个性层相对应的系统调用的不 同调度表来设置执行为相异操作系统所写的应用程序的线程。根据本发明的第二方面,提供了 一种净皮配置为才艮据第 一方面的 方法来操作的计算装置。根据本发明的第三方面,提供了 一种用于使计算装置根据第一 方面的方法来才喿作的才喿作系统。


现在将参照附图,V又通过进一步的实例来描述本发明的实施例,其中图1示出了根据本发明的一个方面的用于可执行程序的本地 OS和个性层的调度表;以及图2示出了本发明的实施例。
具体实施方式
通常通过一些类型的转移表来进行操作系统中的系统调用。可 用函数的地址排列在具有固定长度入口的调度表中,并提供用于全 部系统调用的单个入口点;此为内核中的地址。调用者对每个函凝: 调用相同的地址,但其提供了他们想要执行的调用的数目;此数目 用来计算调度表中所需的实际函lt的地址的偏移量,并且控制一皮转 至此函凄t。J见有的才喿作系统以通过用于进4亍系统调用的相同入口点来i殳 置所有线程的方式来设置执行线程,全部线程均使用同一个调度 表。在本发明中,内核的入口点对所有线程和所有系统调用保持相 同。然而,每个线程具有其自身用于系统调用的调度表。通过相同的调度表来设置所有的本地OS线程,使得本地OS 线程能够访问通常在OS下可用的系统调用。在图1的左手侧示出 了用于本地OS可执行程序的调度表。然而,利用不同的调度表来设置需要在OS内部提供的个性层中运行的相异线程。因此,当相异线程进行系统调用时,通过不同的表格引导开(vectored off)相异线程,该不同的表为它们提供了 其可以乂人最初为其所写的相异OS中期望的功能性。图1的右手侧 示出了个性层可执行程序的调度表。图2示出了用于操作根据本发明的计算装置的程序的流程图。 最初,程序加载器接收请求来在装置上i史置可纟丸行程序。该装置首 先确定可冲丸行程序是否为对装置上本地的OS所写。如果"是,,,则 通过本地OS的调度表来设置可执行程序,来向用于运行的可执行 程序提供期望的功能性。但是,如果确定可执行程序不是为装置上的本地OS所写,则 接下来装置确定将该可#^于程序为哪个OS所写,并且通过适于为 OS所写的可执4于程序的个性层的调度表来i殳置可执行程序,从而 为其提供了功能性使其能够运行在装置上。因此,本发明能够对多个RTOS实现多个个性层,从而在保持 实时性能的同时使多个LRTA能够运行在相同的装置上。由于其可 以安装通过该线程重新定向所有尝试的给定线程的新的调用表,以 将内核功能性用于调试器,因此其也可以用于调试/i貪断的目的。虽然参照具体实施例描述了本发明,^旦应当理解,在由所附卄又 利要求限定的本发明的范围内,任何修改都会是有效的。
权利要求
1.一种在运行本地操作系统的计算装置上实现相异操作系统的个性层的方法,其使为所述相异操作系统所写的软件能够运行在所述装置上,所述方法包括a.通过用于对所述本地操作系统进行系统调用的线程自身的调度表来设置运行在所述计算装置上的每个执行线程;以及b.通过指向对于所述本地操作系统的所述系统调用的调度表来设置执行为所述本地操作系统所写的应用程序的线程;以及c.通过指向与所述相异操作系统的所述个性层相对应的所述系统调用的不同调度表来设置执行为所述相异操作系统所写的应用程序的线程。
2. —种计算装置,其被配置为根据权利要求1所述的方法来操 作。
3. —种操作系统,用于使计算装置以根据权利要求1所述的方法 来操作。
全文摘要
提供了一种具有多个个性层的计算装置,每个均被实现为用于相应RTOS的个性层。其使得在保持实时性能的同时多个LRTA能够运行在相同的装置上。由于其可以安装通过该线程重新定向所有尝试的给定线程的新的调用表,以将内核功能性用于调试器,因此其也可以用于调试/诊断的目的。
文档编号G06F9/455GK101238440SQ200680028978
公开日2008年8月6日 申请日期2006年8月8日 优先权日2005年8月10日
发明者丹尼斯·梅 申请人:西姆毕恩软件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1