操作系统技术方案

技术编号:2837693 阅读:174 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供操作系统。本发明专利技术提供一种使得多个不同操作系统能够在诸如高级精简指令集计算机机器的同一精简指令集计算机上同时运行的方法,该方法包括以下步骤:选择具有相对较高优先级的第一操作系统,即实时操作系统,例如C5;选择具有相对较低优先级的至少一个第二操作系统,即通用操作系统,如Linux;提供一种公共程序,即类似于超微内核的硬件资源分配程序,其被设置为在预定条件下在所述多个操作系统之间进行切换;以及对所述第一操作系统和第二操作系统提供修改以使得它们以被所述公共程序控制。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及操作系统。更具体地说,本专利技术涉及用于并行地运行多个操作系统的系统、方法以及计算机程序。
技术介绍
对于某些计算机程序,在限定的时段内或在限定的时刻执行程序中的步骤是至关重要的。这种程序的示例有用于对移动电话进行操作的控制程序,或用于对专用交换分机(PBX)或蜂窝基站进行操作的控制程序。通常,该程序必须在外部事件或状态变化之后的特定时间或特定时间之内按始终如一的方式对该事件进行响应。这被称为“实时”操作。然而,对于许多其他程序,执行该程序的时间并不是很重要。这适用于大部分普通计算机程序,包括电子表格程序、字处理程序、薪酬软件包、以及通用的报告或分析程序。另一方面,尽管由这种程序花费的确切时间并不是至关重要,但是在大部分情况下,只要有可能,用户就更喜欢更快的执行。应用程序通过操作系统与它们在其上运行的计算机交互。通过利用操作系统的应用编程接口(API),可按照可移植方式来编写应用程序,使其可以在具有不同硬件资源的不同计算机上执行。此外,诸如Linux或Windows的通用操作系统提供多任务处理;换言之,这些操作系统允许几个程序并行运行。为此,这些操作系统提供调度;换言之,它们根据调度算法为各个程序分配时间,从而在不同的程序之间共享对计算机资源的使用。这种操作系统被广泛采用,但是它们通常不能用于运行实时应用,因此它们对于很多控制或通信任务都不适合。因此,针对这种任务,已经开发了实时操作系统;一个示例是ChorusOS(也称作Chorus)及其衍生物。作为开放源码软件,Chorus可以从http//www.experimentalstuff.com/Technologies/ChorusOS/index.html以及http//www.jaluna.com/处的Jaluna获得。在“ChorusOS Features and Architecture overview”,Francois Armand,Sun Technical Report(2001年8月,第222页)(可以从http//www.jaluna.com/developer/papers/COSDESPERF.pdf获得)中,对其进行了描述。这些操作系统也可以用于运行其他类型的程序。然而,可以理解,用户希望能够运行为诸如Windows或Linux的通用操作系统编写的大量“传统”程序,而不必为在实时操作系统中运行而重写这些程序。可以提供“双引导”系统,使得用户可以运行一个操作系统或另一个操作系统,但是存在很多希望在运行实时程序的同时能够运行“传统”程序的情况。例如,电信网络基础设施设备、第三代移动电话和其他高级电话、以及高级电子游戏设备,可能既需要实时应用(例如,游戏播放图形)又需要非实时应用(游戏下载)。在US 5903752和US 5721922中,尝试通过在非实时操作系统(例如Windows)的中断处理环境中提供实时多任务内核而将实时环境并入非实时操作系统中。一种已广泛应用的方案是“仿真”。通常,编写仿真程序以在实时操作系统下运行,该仿真程序对为通用操作系统编写的程序的各个指令进行解析,并在实时操作系统下执行对应的一系列指令。然而,由于总是由很多指令来代替一条指令,所以仿真使计算机负担更重,并导致性能更慢。基于提供虚拟机(例如,JavaTM虚拟机)的方法存在类似的问题。虚拟机实现的示例有EP 1059582、US 5499379、以及US 4764864。US 5995745(Yodaiken)中描述了另一种类似的技术。Yodaiken描述了这样一种系统其中,多任务实时操作系统将通用操作系统作为其任务之一来运行,必要时优先执行实时任务。另一方法是如在例如EP 0360135和1990年9月的ELECTRONICS中第62页的论文“Merging real-time processing and UNIX V”(Gosch)中所描述的,将实时操作系统作为通用操作系统的一个模块来运行。在这种情况下,为了使得与通用操作系统有关的硬件中断不应优先于实时操作系统而选择性地屏蔽硬件中断。另一方法是在http//opersys.com/ftp/pub/Adeos/adeos.pdf的白皮书中描述的ADEOS(操作系统的自适应域环境)方法。ADEOS提供了超微内核,超微内核除了其他功能之外还用于运行多个操作系统,尽管它看起来仅是利用Linux而实现的。对ADEOS的一个建议使用是允许ADEOS向RTAI(Linux的实时应用接口)发布中断,对此参见http//www.aero.polimi.it/~rtai/applications/。EP 1054332描述了其中由“切换单元”(并未为了充分理解而对其进行充分详细的描述)来运行实时操作系统和通用操作系统的系统。由公共中断处理器来处理硬件中断,而在一些实施例中,由实时操作系统来处理硬件中断,该实时操作系统然后生成较低优先级的软件中断,这些软件中断由次要操作系统中的例程来处理。
技术实现思路
本专利技术的一个目的是提供一种即使多个操作系统是出于不同的目的而设计出来的也能够同时运行这些操作系统的改进系统、方法以及计算机程序。具体来说,本专利技术旨在使得所述多个操作系统中的一个操作系统(例如,实时操作系统)可以不受打扰地运行、而另一个操作系统(例如,通用操作系统)可以利用计算机的剩余资源尽可能好地运行。更具体地说,本专利技术旨在提供可以使用精简指令集计算机(RISC)(例如使用ARM处理器的精简指令集计算机)的系统。因此,在权利要求中限定了本专利技术的多个方面。本说明书通过引用并入我们先前提交的以下申请2003年4月9日提交的欧洲申请EP03290894.9、2004年4月7日在EPO提交的PCT/EP04/003731以及2003年10月1日提交的EP03292428.4。对于基于ARM处理器的许多架构,一个特别的问题是高速缓存单元使用虚拟寻址模式。当运行多个操作系统时,每个操作系统都在其自己的存储器空间中,每个操作系统都使用虚拟存储器到物理存储器地址的不同映射。这会导致在切换到另一操作系统之后从高速缓存中获取到错误的数据。解决该问题的一个途径是在每次进行操作系统切换时都对高速缓存的内容进行刷新。然而,我们已经认识到,这对于实时应用来说是不受欢迎的,因为首先这增大了切换的延迟、其次在刷新高速缓存之后在初始时会使存储器存取变慢。因此,在本专利技术的一个方面中,我们强制这些操作系统全部使用同一内核虚拟映射。另一问题是ARM处理器具有许多辅助执行模式(5或6个,这与在大部分处理器上看到的平常的“用户”和“管理员”模式不同)。因此,在操作系统之间进行改变可能会涉及附加地在执行模式之间发生改变。为了使得可以发生这种改变,每次在操作系统之间进行切换时都需要保存所有寄存器的状态(例如,保存到堆栈中)。这将使这种切换变慢。因此,在本专利技术的一个方面中,我们要求所有的操作系统都按“擦除(scratch)”模式使用有关的寄存器(例如寄存器13到15),从而这些操作系统不关心如何找到或留下它们。我们的观察结果是,许多操作系统都是这样做的;在其他情况下,可能有必要对操作系统的一些部分进行改写。然后操作系统切换回到“管理员”模式,从而本文档来自技高网
...

【技术保护点】
一种使得多个不同操作系统能够在同一计算机上同时运行的方法,该方法包括以下步骤:选择第一操作系统以使其具有相对较高的优先级;选择至少一个第二操作系统以使其具有相对较低的优先级;提供被设置为在预定条件下在所述多个操作系统之间进行切换的公共程序;以及对所述第一操作系统和第二操作系统提供修改,以使得它们可以被所述公共程序控制。

【技术特征摘要】
【国外来华专利技术】EP 2004-8-18 04292063.71.一种使得多个不同操作系统能够在同一计算机上同时运行的方法,该方法包括以下步骤选择第一操作系统以使其具有相对较高的优先级;选择至少一个第二操作系统以使其具有相对较低的优先级;提供被设置为在预定条件下在所述多个操作系统之间进行切换的公共程序;以及对所述第一操作系统和第二操作系统提供修改,以使得它们可以被所述公共程序控制。2.根据权利要求1所述的方法,其中,所述第一操作系统是实时操作系统。3.根据权利要求1所述的方法,其中,所述第二操作系统是非实时、通用操作系统。4.根据权利要求1所述的方法,其中,所述第二操作系统是Linux、或者Linux的一个版本或变体。5.根据权利要求1所述的方法,其中,将所述公共程序设置为保存在所述多个操作系统之间进行切换所需要的处理器状态、并从所保存的版本恢复该处理器状态。6.根据权利要求1所述的方法,其中,由所述公共程序按虚拟方式来处理针对所述第二操作系统的处理器异常。7.根据权利要求1所述的方法,其中,将所述公共程序设置为拦截某些处理器异常、并调用所述第一操作系统的异常处理例程以对这些处理器异常进行服务。8.根据权利要求7所述的方法,其中,将针对所述第二操作系统的处理器异常通知为虚拟异常。9.根据权利要求8所述的方法,其中,将所述公共程序设置为调用所述第二操作系统的与待处理的所述虚拟异常相对应的异常处理例程。10.根据权利要求1所述的方法,该方法还包括以下步骤为所述多个操作系统中的每一个提供独立的存储器空间,在所述独立的存储器空间中各个操作系统可以独占地进行操作。11.根据权利要求1所述的方法,该方法还包括以下步骤为所述多个操作系统中的每一个提供所述计算机的第一输入和/或输出设备,各个操作系统可以独占地访问所述第一输入和/或输出设备。12.根据权利要求11所述的方法,其中,各个操作系统使用基本没有修改的本地例程来访问所述第一输入和/或输出设备。13.根据权利要求1所述的方法,该方法还包括以下步骤为所述多个操作系统中的每一个提供对所述计算机的第二输入和/或输出设备的访问,各个操作系统可以共享地访问所述第二输入和/或输出设备。14.根据权利要求13所述的方法,其中,所有操作系统都使用所述第一操作系统的例程来访问所述第二输入和/或输出设备。15.根据权利要求1所述的方法,该方法还包括以下步骤提供重启例程,该重启例程用于在不打断所述第一操作系统或所述公共程序的操作的情况下重启所述第二操作系统。16.根据权利要求15所述的方法,其中,所述公共程序提供用于控制所述第二操作系统的操作的陷阱调用机制、和/或用于将所述第二操作系统中的状态变化通知给所述第一操作系统的事件机制。17.根据权利要求15所述的方法,其中,所述公共程序存储所述第二操作系统的内核的系统映像的副本,并且被设置为从这种保存的副本来恢复所述第二操作系统的内核。18.根据权利要求15所述的方法,其中,所述第一操作系统和第二操作系统具有协作例程,以使得所述第一操作系统能够对所述第二操作系统的连续操作进行监视,从而可以检测所述第二操作系统的崩溃。19.根据权利要求1所述的方法,该方法还包括提供调试例程的步骤,其中,将所述公共程序设置为在所述多个操作系统的操作...

【专利技术属性】
技术研发人员:吉利斯迈涅盖纳蒂马斯洛夫
申请(专利权)人:扎鲁纳股份有限公司
类型:发明
国别省市:FR[]

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

1