操作系统技术方案

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

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及操作系统。更具体地,本专利技术涉及用于并行运行多个操作系统的系统、方法以及计算机程序。
技术介绍
对于某些计算机程序,在规定的时间段内或者按照规定的次数执行程序中的步骤是很关键的。这种程序的示例有用于操作移动电话的控制程序,或者用于操作专用分局交换机(PBX)或蜂窝基站的控制程序。通常该程序必须在外部事件之后的特定时刻或者特定时间内以连贯的方式对外部事件或状态变化作出响应。这称作“实时”操作。然而,对于许多其他程序,执行程序所花时间并非关键。这适用于大部分通用计算机程序,包括电子表格程序、字处理程序、工薪包以及通用报告或分析程序。另一方面,在大多数情况下,尽管这种程序所用的精确时间不关键,但是用户希望尽可能地更快执行。应用程序通过操作系统与它们在其上运行的计算机交互。通过利用操作系统的应用编程接口(API),可按照便携方式来编写应用程序,使其可在具有不同硬件资源的不同计算机上执行。另外,诸如Linux或Windows的公共操作系统提供多任务;换言之,这些操作系统允许几个程序并行运行。为此,这些操作系统提供调度;换言之,它们根据调度算法为各个程序分配时间,从而在不同的程序之间共享计算机资源的使用。这种操作系统被广泛采用,但是它们通常不能用于运行实时应用,因此对于很多控制或通信任务都不适合。因此,针对这种任务,已经开发了实时操作系统;一个示例是ChorusOS(也称作Chorus)及其衍生物。作为开放源码软件,Chorus可以从http//www.experimentalstuff.com/Technologies/ChorusOS/index.html获得,Jaluna可以在http//www.jaluna.com/获得。在“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描述了一种其中“切换单元”(并未为全面理解而对其进行充分地详述)运行实时操作系统和通用操作系统的系统。由公共中断处理器来处理硬件中断,而在一些实施例中,由实时操作系统来处理硬件中断,该实时操作系统然后生成较低优先级的软件中断,这些软件中断由次级操作系统中的例程来进行处理。
技术实现思路
本专利技术的一个目的是提供一种用于即使在出于不同目的来设计多个操作系统的情况下也能同时运行这些操作系统的改进的系统、方法以及计算机程序。特别地,本专利技术旨在允许所述多个操作系统中的一个操作系统(例如,实时操作系统)不受干扰地执行,而另一个操作系统(例如,通用操作系统)利用计算机的剩余资源尽可能好地执行。因此,在一个方面中,本专利技术提供了一种系统,在该系统中多个操作系统被略微修改并设置有在它们之间进行调度的公共程序,在该系统中多个操作系统中的一个操作系统(“主”或“关键”操作系统)优先于另一个操作系统(“次级”或非关键操作系统)。优选地,本专利技术优先为关键操作系统分配硬件,并拒绝对该关键操作系统的访问发生干扰的一个或更多个次级操作系统访问。优选地,本专利技术利用关键操作系统驱动器来访问共享资源,即使次级操作系统请求进行访问。然而,决不是如US 5995745中一样,关键操作系统“运行”次级操作系统;各系统都忽略与其一起运行的其他系统,且仅与代理(broker)对关键操作系统的驱动器的访问的公共程序(对应于现有技术的超微内核)进行通信。优选地,修改次级操作系统,以使得它们不能屏蔽中断,并修改它们的中断服务例程以使它们响应于表示发生中断的消息。公共程序通过将全部硬件异常传递给主操作系统的中断服务例程来处理所述全部硬件异常,并且在一个次级操作系统希望硬件中断时,生成中断消息或通知。在下一次由公共程序来调度该次级操作系统时,将消息或通知传递给它,而公共程序调用其中断服务例程来服务该中断。因此,次级操作系统在发生中断时不能以任何方式抢先主操作系统(或者,一般来说,更高重要性的次级操作系统),因为全部中断最初都由主操作系统来处理,并仅在主操作系统已经结束执行之后向次级操作系统通知其是目标,从而调度该次级操作系统。由此推迟处理这种中断,直到在主操作系统中没有关键任务发生为止。然而,当最终执行这些中断时,次级操作系统的例程可基本按照未修改的方式来进行操作,使得该行为是次级操作系统所期望的(除了延迟)。在我们先前提交的PCT申请PCT/EP04/00371中描述了这样一种系统,在此通过引用将其并入。本专利技术涉及在复杂指令集计算机(CISC)(如基于I本文档来自技高网
...

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

【技术特征摘要】
【国外来华专利技术】EP 2003-9-30 03292414.41.一种使得多个不同操作系统能够在同一计算机上并行运行的方法,包括以下步骤选择具有相对较高的优先级的第一操作系统;选择具有相对较低的优先级的至少一个第二操作系统;提供公共程序,该公共程序被设置为在预定条件下在所述操作系统之间进行切换;以及提供对所述第一操作系统和第二操作系统的修改,以使得可由所述公共程序对它们进行控制。2.根据权利要求1所述的方法,其中,第一操作系统和第二操作系统分别与第一存储器状况和第二存储器状况相关联,并且公共程序与第三存储器状况相关联,所述方法包括以下步骤当在所述操作系统之间进行切换时,将当前存储器状况切换至第一存储器状况、第二存储器状况或第三存储器状况。3.根据权利要求2所述的方法,进一步包括以下步骤当切换至第一操作系统或从第一操作系统切换时,将当前存储器状况切换至第一存储器状况。4.根据权利要求2或3所述的方法,进一步包括以下步骤由第一操作系统启用公共程序,并在第一存储器状况下启动执行公共程序。5.根据权利要求2或3所述的方法,进一步包括以下步骤由公共程序抢先第一操作系统,并在第一存储器状况下启动执行公共程序。6.根据权利要求2所述的方法,包括以下步骤当从第二操作系统切换时,将当前存储器状况切换至第三存储器状况。7.根据权利要求6所述的方法,进一步包括由第二操作系统启用公共程序的步骤,其中,当前存储器状况为第三存储器状况。8.根据权利要求6所述的方法,进一步包括由公共程序抢先第二操作系统的步骤,其中,当前存储器状况为第三存储器状况。9.根据权利要求8所述的方法,其中,第二操作系统通过陷入调用来启用公共程序。10.根据任一前述权利要求所述的方法,其中,第一操作系统为实时操作系统。11.根据任一前述权利要求所述的方法,其中,第二操作系统为非实时通用操作系统。12.根据任一前述权利要求所述的方法,其中,第二操作系统为Linux或者其一个版本或变型。13.根据任一前述权利要求所述的方法,其中,公共程序被设置为保存在操作系统之间进行切换所需的处理器状态,并根据所保存的版本来恢复在操作系统之间进行切换所需的处理器状态。14.根据任一前述权利要求所述的方法,其中,由公共程序按虚拟形式来处理针对第二操作系统的处理器异常。15.根据任一前述权利要求所述的方法,其中,公共程序被设置为截获某些处理器异常,并调用第一操作系统的异常处理例程来服务于这些处理器异常。16.根据任一前述权利要求所述的方法,其中,将针对第二操作系统的处理器异常通知为虚拟异常。17.根据权利要求16所述的方法,其中,公共程序被设置为调用第二操作系统的与未决的所述虚拟异常相对应的异常处理例程。18.根据任一前述权利要求所述的方法,进一步包括以下步骤为所述操作系统中的每一个都提供单独存储器空间,所述操作系统中的每一个都可以在所述单独存储器空间中专用地进行操作。19.根据任一前述权利要求所述的方法,进一步包括以下步骤为所述操作系统中的每一个都提供所述计算机的第一输入和/或输出装置,所述操作系统中的每一个都可以专用访...

【专利技术属性】
技术研发人员:埃里克莱斯库埃弗拉迪米尔格鲁齐德夫
申请(专利权)人:扎鲁纳股份有限公司
类型:发明
国别省市:FR[法国]

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

1