专利名称:一种执行操作系统功能的方法和系统以及电子设备的制作方法
技术领域:
本发明涉及一种在一个系统内执行操作系统功能的方法,所述系统包括至少一个处理器和至少第一组资源和第二组资源,其中在所述至少一个处理器内执行至少第一操作系统,和在所述至少一个处理器内执行第二操作系统,所述操作系统中的至少之一基本上是实时操作系统,所述第一组资源受将在第一操作系统内执行的第一操作系统的资源业务控制,所述第二组资源受将在第二操作系统内执行的第二操作系统的资源业务控制。本发明还涉及一种系统,包括至少一个处理器和至少第一组资源和第二组资源,用于在所述至少一个处理器内执行至少第一操作系统的装置和用于在所述至少一个处理器内执行第二操作系统的装置,所述操作系统中的至少之一基本上是实时操作系统,该系统包括装置,用于使用将在第一操作系统内执行的第一操作系统的资源业务控制所述第一组资源,和装置,用于使用将在第二操作系统内执行的第二操作系统的资源业务控制所述第二组资源。本发明还涉及一种电子设备,包括至少一个处理器和至少第一组资源和第二组资源,用于在所述至少一个处理器内执行至少第一操作系统的装置和用于在所述至少一个处理器内执行第二操作系统的装置,所述操作系统中的至少之一基本上是实时操作系统,该电子设备包括装置,用于使用将在第一操作系统内执行的第一操作系统的资源业务控制所述第一组资源,和装置,用于使用将在第二操作系统内执行的第二操作系统的资源业务控制所述第二组资源。此外,本发明涉及将在电子设备的存储装置内存储的计算机软件,用于执行计算机软件的程序命令,该电子设备包括至少一个处理器和至少第一组资源及第二组资源,该计算机软件包括用于使用资源的程序命令,用于在所述至少一个处理器内执行至少第一操作系统的程序命令和用于在所述至少一个处理器内执行第二操作系统的程序命令,所述操作系统的至少之一基本上是实时操作系统,用于使用将在第一操作系统内执行的第一操作系统的资源业务控制所述第一组资源的程序命令,和用于使用将在第二操作系统内执行的第二操作系统的资源业务控制所述第二组资源的程序命令。
该操作系统控制诸如计算机等设备的操作以及将在设备内运行的应用(应用程序)的执行。在操作系统内,应用程序可以运行在一个或多个进程中。每个进程可以包括实际上同时执行的一个或多个线程。当应用程序开始时,操作系统形成必要的进程和用于每个进程的至少一个线程(主线程)。对于大部分进程而言,这种主线程的形成将是足够的。然而,进程也可以构成多个线程。
对于应用程序的每个进程来说,在设备的存储空间内分配单独的地址空间。这个地址空间包括仅由这个进程可控制的一个或多个范围。应用程序的进程不能直接控制在它们自己的地址空间之外的分配给其它进程的存储器。
在类似于上述的操作系统内,依然存在与应用程序的进程略微不同的操作系统的核心进程。核心进程的线程在处理器的最高存取级别上执行。核心进程最好包括至少两个线程核心服务器线程和空线程。核心服务器线程的执行与操作系统的启动一起开始,它用于执行操作系统的核心的所有功能。这个线程具有最高的优先级。空线程仅当没有其它的线程准备执行时才被执行。
线程被独立地执行,它们没有其它线程执行的相关信息。线程执行顺序的安排是占先(pre-emptive)的,作为普遍规则,一个线程的执行可以为了另一个线程的执行而被中断。
已知一些设备和系统,其中可以执行两个不同的操作系统。在一些设备中,这些操作系统可以同时执行,其中例如,用户可以选择将显示其信息的操作系统。美国专利4,747,040提出了一种这样的计算机,其中它可以运行UNIX和MS-DOS操作系统。在这些设备中,确保操作系统不能干扰受另一操作系统控制的那些资源,此操作系统不具有对所述资源的存取权限。这可以以这样的方式安排,例如,第二操作系统在第一操作系统的控制下操作,其中第一操作系统将资源和控制权限分配给第二操作系统。第一操作系统还能够防止第二操作系统存取分配给仅由第一操作系统使用的资源。这样一种系统的例子是WMware公司开发的VMwareTM。
还知道这样的设备,其中两个操作系统被设置在同一处理器内运行。在这种情况下,第一操作系统的处理和第二操作系统的处理在处理器内交替执行。资源保护可以通过下述方式实现,例如第一操作系统工作在处理器的保护模式或类似模式中,第二操作系统工作在处理器的常规模式中。将在处理器的保护模式中执行的操作系统将具有对所有资源的存取权限,但是在常规模式中,存取权限是受限制的。因而,将在常规模式内运行的操作系统不能影响将在保护模式内使用的操作系统的某些资源。
而且,已经研发出便携式电子设备,其中执行两个不同的操作系统。在这样的电子设备中,一个操作系统通常是所谓的实时操作系统(RTOS),而另一个操作系统通常是非实时操作系统。这个非实时操作系统可以例如通过调度器或类似设备来安排不同功能的处理,所述调度器在操作系统的控制下分配运行进程的处理时间。不同的进程可以分配给不同的优先级,它确定将给每个进程分配的处理时间的数量。通常,实时操作系统的操作主要决定于抢先占用,其中需要处理时间的进程设置一个中断,此中断由实时操作系统检测并指定运行此进程。而且,在实时操作系统,进程通常可以根据重要性和/或紧急性以优先级的顺序排列。因而,较不重要或者较低优先级的进程可以由更重要或者更高优先级的进程中断,然而,更高优先级的进程不能被较低优先级的进程中断,但是这样一个较低优先级的进程将在所有的较高优先级的进程已经被服务之后首先继续执行。
图1a图示在原理的层次上在同一设备内两个操作系统的实现。第一操作系统OS_A是实时操作系统,第二操作系统OS_B是非实时操作系统。第一操作系统OS_A在中断的基础上工作。在这个例子中,假设将中断进一步划分成三种不同的种类,其中中断之间的重要顺序如下最高优先级属于快速中断请求(FIQ),次高优先级属于中断请求(IRQ),和最低优先级属于软件中断请求(SWI)。对于每个中断请求,提供一个中断业务程序,当中断业务请求进入处理器时向其传送处理器的操作。这个中断业务程序包含估计导致中断请求的事件所需的服务或者启动这样的估计。
此外,可以执行用于在第一操作系统内提供所需功能的任务。当不存在将要执行的较高优先级的任务时,向这些任务分配执行时间。这些任务也可以以重要性的顺序设置,其中分配不同任务的执行时间可以是不同的。在图1a的例子中,第二操作系统被实现为第一操作系统的一个任务,其中第二操作系统在轮到执行这个任务时被执行,典型地,在一个处理器的系统内,这个第二操作系统被分配最低的优先级,其中当没有需要执行的其它任务或中断业务程序时才予以执行。
在图1a的例子中,第二操作系统包括延迟功能调用(DFC),它最好在这个第二操作系统内分配给最高优先级。除了这些之外,在第二操作系统内还处理线程。这些线程可以是将在同一进程或不同进程的执行中使用的命令顺序。当不存在将要执行的其它进程时,执行一个空线程。因而,在这个例子的情况下,空线程具有最低的优先级。
在图1a中,以从上到下的优先级的顺序标记上述的不同单元,以便在该图顶部的快速中断请求具有最高优先级。从第一操作系统来看,第二操作系统是空任务的执行。以对应的模式,从第二操作系统来看,第一操作系统是中断业务的执行。
包含多个操作系统的现有技术设备的问题例如是一个操作系统的进程的执行可能停止这个设备的操作。这例如可能是由于在第一操作系统控制下工作的第二操作系统锁定第一操作系统需要用于执行时间要求严格的任务的一个资源。另一个导致操作停止的原因可能是第二操作系统到第一操作系统的第一次调用锁定了到第一操作系统的第二次调用所需要的资源。
本发明的目的是提供一种改进的方法和系统,其中可以同时执行两个或多个操作系统。在该方法中,每个操作系统可以被允许存取另一个操作系统的至少一些资源,而没有任一操作系统防止另一个操作系统使用资源的可能性。本发明基于这样的思想,即需要资源的操作系统向操作系统发送一个功能调用,所述操作系统的资源被发送此功能调用的操作系统所需要。然而,调用操作系统并不等待一个响应,而是将继续其操作。接收或被调用操作系统执行在功能调用内指示的功能,并向调用操作系统发送响应。为了使其更加明确,根据本发明的方法的主要特征在于为了从第二操作系统使用第一组资源,在第二操作系统内进行功能调用,包括所述第一组资源的相关信息,将所述功能调用发送给在系统内形成的操作系统之间的接口块,在所述接口块内进行服务调用以启动第一操作系统的资源服务。根据本发明的系统的主要特征在于该系统包括操作系统之间的接口块,用于从第二操作系统使用所述第一组资源的装置,所述第二操作系统包括用于在第二操作系统内执行功能调用的装置,此功能调用包括所述第一组资源的相关信息,和装置,用于将所述功能调用发送给所述操作系统之间的接口块,此接口块包括装置,用于进行服务调用以根据在所述功能调用内包括的数据来启动第一操作系统的资源服务。根据本发明的电子设备的主要特征在于该电子设备包括操作系统之间的接口块,用于从第二操作系统使用所述第一组资源的装置,所述第二操作系统包括用于在第二操作系统内执行功能调用的装置,此功能调用包括所述第一组资源的相关信息,和装置,用于将所述功能调用发送给所述操作系统之间的接口块,此接口块包括装置,用于进行服务调用以根据在所述功能调用内包括的数据来启动第一操作系统的资源服务。根据本发明的计算软件的主要特征在于计算机软件还包括程序命令,用于通过在第二操作系统内进行功能调用从第二操作系统使用所述的第一组资源,所述功能调用包括所述第一组资源的相关信息;用于向在系统内形成的操作块之间的接口块发送所述功能调用的程序命令,和用于根据在所述功能调用内包括的信息进行服务调用以启动第一操作系统的资源服务的程序指令。
本发明与现有技术的解决方案相比具有明显的优点。通过本发明的方法,可以在多操作系统的系统内将受一个操作系统控制的资源提供给另一个操作系统。在根据本发明的方法中,可以避免因为资源请求导致所述资源的锁定,防止另一个操作系统使用所述资源。该方法还允许更为简单的应用程序和操作系统的开发,因为操作系统之间的接口相对简单和紧凑。
在下文中,将参考附图更详细地描述本发明,在附图中图1a在原理的层次上图示在同一设备内实现两个操作系统的解决方案;图1b图示操作系统分层结构的例子;图1c在原理的层次上图示在调度器和中断处理器的控制下两个操作系统的任务的执行;图2图示根据本发明优选实施例的以缩小方框示的电子设备;图3图示根据本发明的一种有利实施例的在电子设备内给不同功能的存储器资源的分配;图4图示根据本发明优选实施例的以缩小方框示的接口的实现方式。
在本发明的下述详细描述中,图2的电子设备1将用作一个例子,最好包括通信功能2a,例如移动站功能,以及数据处理功能2b。在这个优选实施例中,电子设备1包括两个处理器3a和3b,但是本发明显然也可以应用于处理器3a和3b的数量不是两个的电子设备1内。此外,图2仅图示电子设备1的少数功能,但是在实际的应用中,电子设备1的具体实施方式
显然可以不同在此所介绍的。
电子设备1的第一处理器3a主要用于控制通信功能2a,以相应的方式,第二处理器3b主要用于数据处理功能2b的执行。处理器3a和3b最好包括微处理器(中央处理单元CPU)或类似设备以执行操作系统功能。此外,电子设备1还可以包括其它的处理器,例如数字信号处理器(DSP),它例如可以以公知的方式用于信号处理功能。此外,电子设备1包括处理器4a、4b、4c和4d,其中至少一部分被安排作为两个处理器3a和3b同时可用的存储器4c。在图2的电子设备1中,每个处理器3a和3b还包括分配仅它自己使用的存储器4a和4b。存储器还可以包括处理器寄存器4d、闪存4e、等等。为了存储器管理,第一处理器3a提供有第一存储器管理单元5a。以相应的方式,第二处理器3b提供有第二存储器管理单元5b。电子设备1包括至少一个用户接口6,它最好包括至少一个显示器7、数据输入装置,例如键盘8、和音频装置,例如耳机/扬声器9和麦克风10。为了通信功能,电子设备1提供有收发信机11,例如用于与移动通信网络通信。实时时钟(RTC)12将保存电子设备1内的时间数据。除了时间数据之外,实时时钟12还可以以公知的方式包含日历功能。
如果需要,通信功能2a还可以包括用户识别单元21(用户识别模块,SIM;UMTS用户识别模块USIM)或用于识别用户的相应装置。此外,电子设备1通常包括连接逻辑22a和22b,例如用于用户识别单元21、用户接口和收发信机11与处理器3a和3b的通信。
与第一处理器3a相连设置的第一操作系统OS_A主要用于控制通信功能。以相应的模式,与第二处理器3b相连设置的第二操作系统OS_B主要用于使用数据处理功能。然而,电子设备1的一些资源可能是两个操作系统都需要的,但是不能由它们同时使用。例如,如果电子设备1的用户接口6或者它的一部分公用于通信功能和数据处理功能,则用户接口6的资源或者它们的至少一部分应当同时可用于两个操作系统OS_A和OS_B。将要阐述的另一个例子是实时时钟功能12的使用。第一操作系统OS_A是实时操作系统,在这个优选实施例中,其操作基本上取决于中断。第一操作系统OS_A的目的是负责执行诸如时间严格要求的任务,例如通信协议。第二操作系统OS_B在这个例子中是非实时操作系统,但是第二操作系统OS_B显然也可以是实时操作系统。第二操作系统OS_B的目的最好是负责执行向用户显示的任务,例如控制用户接口6的资源。此外,每个操作系统OS_A和OS_B控制电子设备1的一部分装置。
图3图示根据本发明一种有利实施例的电子设备1内用于不同功能的存储器资源的分配。将存储器划分成第一存储区域4a、第二存储区域4b和公用存储区域4c。第一存储区域4a可用于在第一处理器3a内执行的第一操作系统OS_A。第二存储区域4b可用于在第二处理器3b内执行的第二操作系统OS_B。公用存储区域4c可由两个操作系统OS_A和OS_B处理。在这个实施例中,将存储器划分成上述部分通过单独的存储器来实现,但是也可以通过另一种方式来实现。为了处理器3a和3b,相应的存储区域4a和4b提供有根扇区13a和13b,其中包含将在存储器3a和3b引导时运行以启动处理器3a和3b的所存储的程序代码和电子设备1的其它功能模块。这些启动程序代码的存储还可以被安排以便将它们存储在公用存储区域4c内,或者仅第二操作系统的启动程序代码存储在公用存储区域4c内。在存储区域内分配存储空间14a和14b用于存储使用不同资源需要的程序代码(例如设备驱动程序)。这些程序代码可能已经存储在存储器内,例如当制造电子设备1时,或者它们可以在引导时例如从硬盘(未图示)、闪存等存储器装载到随机访问存储器内。此外,在存储器4内预留存储区域15a和15b,用于在使用电子设备1的过程中将要运行的应用程序的程序代码的装载和存储。
为了在根据本发明优选实施例的电子设备1的操作系统之间设置通信,形成存储区域4c,它可以从两个操作系统OS_A和OS_B处理,如在下文中将要说明的。
上面介绍的划分成存储区域显然仅是一种有利的例子,同时还有另一种划分也可以结合本发明使用。而且,在这样一个电子设备1中,其中将同一处理器用于执行两个操作系统OS_A和OS_B,存储器可以划分成区域,其中一些区域仅由一个操作系统使用,而一些区域可以由两个操作系统使用。
在下文中,将参考图4更详细地描述在图2的电子设备内根据本发明优选实施例的方法的操作。图4图示在原理层次上的两个操作系统的解决方案,用于在同一电子设备内执行两个操作系统OS_A和OS_B。电子设备1的第一操作系统OS_A提供有接口模块16,它在利用异步功能调用在操作系统OS_A和OS_B之间的通信中使用。这个接口模块16例如包括第一接口17、第二接口18、第一转换模块19和第二转换模块20。第一接口17的功能是执行通过第一转换模块19进入的到第一操作系统OS_A的资源的功能调用,并在执行该功能之后将响应发送给第二转换模块20。以相应的方式,第二接口18的功能是执行第二操作系统OS_B和接口模块16之间的通信程序。这最好被安排以便第一接口17和第二接口18为第一操作系统OS_A和第二操作系统OS_B提供各种服务。例如,当第二操作系统OS_B需要使用位于第一操作系统OS_A内的资源时,第二操作系统OS_B将调用第二接口18。此后,使用第一转换模块19将此调用传送给第一接口17。然后,第一接口17将使用第一操作系统OS_A的资源提供所请求的服务,并使用第二转换模块20和第二接口服务18向第二操作系统OS_B发送一个响应。
在本发明的一个有利的实施例中,所使用的操作系统OS_A和OS_B是所谓的多处理操作系统。在多处理器操作系统中,能够同时运行多个应用程序。实际上,然而,多处理操作系统将在同一时间上执行一个进程,除非处理器3a和3b是具有多处理属性的处理器或者用于处理同一操作系统的处理器个数多于一个。操作系统的调度器将在固定的间隔上检查在该时间上正在执行的应用程序或进程。调度器例如通过定时器中断来启动。此外,每个应用程序还可以包括一个或多个线程,其中每个线程在不同的时间上处理。一个线程例如可以是在功能块内的数据读取,例如击键的读取,另一个线程例如是读取数据的处理,第三个线程例如是在功能块内已处理数据的写入,例如显示。当这个应用程序被启动时,调度器已经确定每个线程的执行时间和用于执行线程的重复间隔。因而,调度器启动线程的执行,并在执行时间结束之后,推迟此线程等待,并将线程的数据存储在存储器内,如果需要的话,开始执行可能属于同一进程或另一进程的下一个线程。在调度器已经完成所有的线程之后,调度器重新启动执行循环,或者没有线程的执行间隔已经过期,则执行所谓的空线程。然而,在上述线程的执行时间过程中,可能存在输入中断请求,其中根据这些中断请求的优先级,操作系统可以继续执行中断服务程序,或者调度器确定适合于执行中断服务的时刻,并继续执行未完成的线程。例如,在击键导致的中断的情况下,键盘中断程序读取被按键的编码,并将其存储在临时的存储位置内。在中断服务程序结束之后,操作系统的调度器确定执行检查击键的程序的时刻,并返回到被中断的程序线程,如果分配给击键中断的优先级并未超过未完成的程序线程的优先级的话。
从操作系统来看,进程始终处于三个状态之一就绪、运行或等待。运行状态包括当时正在运行的进程。就绪状态包括等待运行的进程。调度器的功能就是选择将在运行状态内执行的就绪状态内的进程之一。等待状态包括正在等待一个事件的那些进程,所述事件例如是接收到功能调用的响应、击键和资源的释放等。
调度器将最高优先级的进程从就绪状态移动到运行状态。从运行状态,进程通常将根据它自己的请求进入等待状态,例如当请求其实现涉及等待的操作系统服务时。从等待状态到就绪状态的转变发生在这种等待结束时。进程还可以从运行状态返回到等待状态,在这样一种情况下,调度器将另外一个进程改变成运行,例如在中断处理结束时。
图1b图示操作系统的分层结构的一个例子。最低层是操作系统的核心,协议层包括与存储器管理有关的单元,第三层包括文件系统单元。在这三层之上放置的是例如命令解释器、进程(未图示)、接口软件和调度器功能、等等。此外,图1c以原理示在调度器SCH_A和SCH_B和中断处理器IH_A的控制下两个操作系统的线程THA1、THA2、THB1、THB2、THB_IDLE的处理。在第一操作系统一侧上,第一线程THA1和第二线程THA2例如是处理两个不同应用程序需要的主线程。以相应的方式,在第二操作系统一侧上,第一线程THB1和第二线程THB2例如是执行两个不同的应用程序需要的主要线程。然而,线程显然可以是同一应用程序内不同进程的线程,甚至同一进程的线程。此外,在第二操作系统OS_B一侧上,图示了空线程THB_IDLE。箭头图示不同任务之间的转换,这种转换可以基于中断或定时。
核心的操作的最基本的单元包括中断处理、进程管理和外围设备控制。实现处理中断的功能例如包括被中断程序的数据的存储和将执行引导到正确的中断服务程序。进程管理负责例如建立进程、安排执行时间、结束进程操作、定时、等等。外围设备的控制功能包括例如通信的启动和与每个外围设备有关的一个或多个中断的处理。
通常,核心的实现涉及大量的动态数据结构,通常是双向链接列表,其单元从操作系统的区域内的自由存储空间中分配。例如,每个进程的数据最好保存在进程控制块(PCB)内。进程控制块被收集在进程表内,其大小设置在该系统内进程数量的上限。在一种有利的例子中,例如可以在进程控制块内找到下述数据-进程状态等待、就绪或运行;-进程标题;-进程优先级;-用于存储被中断进程的相关数据(环境)的空间(堆栈);-与所分配资源有关的数据存储器、设备、开放数据文件、等等;-与进程调度的监视有关的字段;和-与存取权限有关的字段。
应当指出这仅是进程控制块实现的一个例子,但是在实际的应用中,它们可以改变成更多的内容,进程控制块内的数据可以非常不同。
进程标识是进程的标题,例如序列号。根据这个进程标题,操作系统相互区分不同的进程。如果进程包括多个线程,则处理控制块内的进程标识或另一个字段还可以包括这个线程编号的数据。状态字段等用于表示进程的状态。因而,当进程的状态改变时,操作系统改变这个状态字段的数值。为了确定进程运行的顺序,调度器使用在这个字段内包含的数值,在这个字段内包含的数值越高,则该进程的优先级越高。因而,通过比较等待状态内的进程的优先级字段数值,调度器选择具有最高优先级数值的进程作为下一个将要执行的进程。
我们现在应当描述一个新进程的建立。让我们假设此进程存储在设备的存储装置内的数据文件内,例如在可读写大容量存储器内。这个程序根据数据文件的名称来识别。操作系统的核心包括用于启动进程的服务例程,最好将这个数据文件的名称作为一个参数予以提供。启动服务例程构成在进程表内用于这个进程的进程控制块,并分配用于此进程的存储区域。将这个数据文件的内容读入到这个所分配的存储区域内,并使用合适的数值初始化进程控制块的字段,此后,可以将进程设置为等待执行。作为进程标识,可以使用例如下一个空进程标识。作为进程的状态,最好将数值设置为等待。操作系统的调度器根据其调度的实际情况控制将要执行的这些进程。
在操作系统内,其中在线程内执行进程,因而,可以应用上面介绍的进程的建立,以便启动服务例程构成进程的一个或多个线程,并构成用于进程表内的线程的进程控制块。
操作系统还涉及用于控制外围设备的另一个基本事实,即所谓的设备驱动程序。设备驱动程序包括用于控制外围设备需要的例程和数据结构,所述外围设备例如是显示器7、键盘8、编译码器、等等。必需的例程包括例如初始化设备的方法、读/写、控制例程,例如显示特性的设置、和用于处理与设备有关的中断的例程。与设备有关的变量和数据结构例如可以收集在与每个设备有关的设备描述词中。这个数据例如可以包括下述内容-用于链接向此设备排队的传输请求的参数块的工作序列。如果能够进行同时的读和写,则可以存在两个工作序列。参数块包含传输请求的参数,例如缓存器位置的相关数据、将要传输的块数、等等;-设备驱动程序例程的地址;-控制传输需要的变量和设备的状态数据;和-设备专用参数。
在一些系统中,设备驱动程序是操作系统的进程。进程在无限的循环内工作,其中它们首先等待传输请求消息。在接收到这样一个消息之后,设备驱动程序进程启动传输,并保持等待一个中断消息。因而,操作系统的中断处理器将处理中断消息到设备驱动程序进程的传送。在实际的设备中,设备驱动程序进程通常具有很高的优先级,操作系统的核心实时地工作。
在一些操作系统中,存在可以使用的消息传输机制,由此进程可以相互传输消息。当使用消息队列时,进程涉及一个或多个消息队列,其中可以将将要发送给进程的消息写入所述消息队列。进程之间的通信通常涉及缓存,其中消息的发送者并不需要等待接收机接收消息。因而,在写入消息时,数据(状态变量)被设置为存在一个等待的进入进程的消息,其中该进程将在合适的时候读取该消息。
第一操作系统OS_A的线程THA1和THA2被分配给一个优先级,例如在电子设备1的设计阶段。可以使用所述优先级来影响诸如执行的顺序和要求严格的线程的响应时间。第一操作系统的调度器SCH_A在执行例程中调度具有最高优先级的线程最先执行。实际上在一个系统内,这意味着根据本发明优选实施例的电子设备1的第一处理器3a执行在处理器3a内使用程序命令实现的第一操作系统OS_A的调度器功能。在线程THA1和THA2的执行过程中,系统的处理器3a执行根据在线程内编程的程序命令的操作。
第二处理器3b根据优先级和在第二操作系统OS_B内执行的线程的调度实际来执行第二操作系统OS_B的调度器功能SCH_B。第一步骤是执行延迟功能调用DFC,如果任一个在等待的话,继之以线程THB1和THB2的执行,最好以优先级为顺序。在将要运行的线程执行之后,其中不存在运行状态内的线程,第二处理器3b将变换成第二操作系统OS_B的空线程THB_IDLE,直到需要执行另一个执行循环。
在第二操作系统OS_B下操作的进程需要使用第一操作系统OS_A控制的资源的情况下,根据本发明的优选实施例采取下述步骤。在这种情况下,将参考图1c和图4。需要资源的进程THB2生成功能调用,设置与资源有关的参数,如果需要的话。这个功能调用在图1c中用箭头101表示。功能调用最好始终是基本上同一类型的(相同功能),但是使用参数来更详细地表示所需要的资源和使用资源所需要的其它信息。此外,调用进程最好生成延迟的功能调用DFC或相应的结构,其数据在功能调用中发送给接口块16。
例如,第二操作系统OS_B的实时时钟应用程序从受第一操作系统OS_A控制的通信装置中提取实时时钟的同步信息。同步数据例如在通过移动通信网络接收的信息的基础上生成。功能调用的参数被设置为存储区域的地址,其中将要返回的数据将记录在第一操作系统OS_A一侧上。与功能调用相关的,如果需要向被调用的资源发送信息,该消息可以存储在所谓的消息缓存器内,其地址在功能调用的参数内发送。而且,为了响应,调用进程可以分配消息缓存器,其地址因而与功能调用一起发送。将功能调用和参数发送给接口块16。在接口块16中,功能调用和参数通过第二接口18(图4)发进给第一转换块19,由此进行必要的改变,最好进行一个服务调用以启动控制所请求资源的服务,并存储将在响应时使用的必需数据。根据所接收的功能调用,第一转换块19检查参数以确定需要哪一个资源。此外,如果需要的话,第一转换块19读取在发送缓存器内存储的信息,并将其发送给将要调用的资源。在已经在第一转换块19内确定所考虑的资源之后,最好形成符合第一操作系统OS_A的消息结构的消息,并利用第一操作系统的消息传输机制将其发送给第一接口17。如果需要的话,第一接口17通知第一操作系统的调度器SCH_A第一接口17正在等待执行时间(箭头102)。
第一接口17是它自己的进程,它能够与第一操作系统OS_A的其它进程通信。当第一接口17轮到执行时,它检查是否存在准备送给第一接口17的新的或未处理的消息。如果存在这样的消息,则检查它们。根据将要在消息内发送的参数,第一接口17确定将要执行的资源。因而,第一接口17将使用该消息接收到的可能参数发送给控制此资源的服务。
服务例如可以是能够利用程序中断启动的服务。因而,当程序中断103进入时,程序中断处理器IH_A启动与所关注的中断对应的服务104。在图1c的示例性的情况下,程序中断将线程THA2的执行中断处理此中断需要的时间。在服务已经执行所请求功能之后,它向第一接口17发送一个响应(箭头106)。服务的执行最好结束105。
当第一接口17轮到被再次执行时,它检查控制被调用资源的服务是否已经构成一个响应。在已经形成一个响应之后,最好利用第一操作系统OS_A的消息传输机制发送给第二转换块20。使用所存储的数据以及资源请求的传输来发现例如将要用于给出响应的延时功能调用以及可能消息缓存器的地址。将使用响应接收到的数据存储在消息缓存器内,将延迟的功能调用添加给第二操作系统OS_B的进程表内(箭头108)。因而,这个延迟的功能调用始终当第二操作系统的调度器SCH_B分配给它处理时间时执行(箭头109),其中延迟的功能调用向被调用的进程发送一个响应(箭头111),在这个例子中,它是第二操作系统的线程THB2。此后,延迟功能调用DFC的处理可以结束(箭头110)。
当已经进行功能调用时,调用进程例如可以被设置在等待状态内,或者进程可以继续,其中向进程通知响应的接收。例如,如果进程是显示控制进程,它不被中断,而是以常规的方式继续在显示器7上显示消息的更新。在接收到响应之后,将所述响应显示在显示器7上。
在所述实时时钟的例子中,发送请求的服务,例如实时时钟的设备驱动程序,分配用于响应的存储器4内的消息缓存器,并形成延迟的功能调用。将所需资源、消息缓存器和延迟的功能调用的相关信息发送给接口块。第一接口17与处理实时时钟同步信息的服务通信,例如存储通过移动通信网络接收的时间数据和电子设备的实时时钟之间的时间差值。将这个时间差值数据传送给第二转换块20,其中将数据存储在消息缓存器内,延迟的功能调用包括在进程表内。在延迟的功能调用中,将在消息缓存器内存储的数据读取并发送给实时时钟的设备驱动程序。实时时钟的设备驱动程序现在可以比较先前接收的时间差值数据和当前接收的时间差值数据,其中根据时间差值数据中的改变,实时时钟的设备驱动程序可以准确地调整实时时钟12的操作。
在根据本发明优选实施例的电子设备1内,包括移动站功能2a和数据处理功能2b,存在由一个操作系统控制和依然被两个操作系统OS_A和OS_B需要的若干这样的资源。将要在此描述的由第一操作系统OS_A控制的资源的一些非限制性的例子包括永久存储器5a的管理、启动/关闭指示和数字信号处理单元DSP的操作(例如上述的实时时钟12的同步数据的存储)。将要在此描述的由第二操作系统OS_B控制的资源的一些非限制性的例子包括与用户接口6有关的操作、时间服务,例如实时时钟12的控制、一些寄存器4d的处理和闪存4e的模式改变。
上述原理也可以应用于从第一操作系统OS_A使用受第二操作系统OS_B控制的资源。例如,在存在通过移动通信装置进入的调用的情况下,这可以用于在电子设备的显示器7上显示的通知来指示。在根据本发明的一种有利的实施例的电子设备1中,这可以通过例如下述方式来实现。在移动通信装置11已经从移动通信网络接收到一个输入调用有关的信息时,在控制移动通信装置操作的进程的线程内形成根据第一操作系统OS_A的消息结构的消息。将这个消息传送给第一接口17。当第一操作系统OS_A的调度器给第一接口的线程分配执行时间时,检查所接收的消息,并将消息数据发送给第二转换块20。在这个第二转换块20内,形成延迟的功能调用DFC,用于将消息内包含的信息发送给控制显示器7的设备驱动程序。在第二转换块20已经形成在延迟的功能调用中需要的信息时,第二转换块20将延迟的功能调用添加在第二操作系统的进程表内。此后,根据受第二操作系统OS_B的调度器SCH_B控制的第二操作系统的调度,处理延迟的功能调用。在第一操作系统内发送消息的进程并不需要保持等待此消息的进一步处理步骤的处理,而是该进程可以继续它自己的操作。
根据本发明的消息的不同步骤可以主要用一个或多个处理器3a和3b的应用软件来实现。
本发明的方法也可以应用在这样的系统内,其中它可以将辅助卡片等连接到电子设备1,以提高电子设备1的功能。例如,辅助卡片可以连接到便携式计算机。因而,通过将无线电卡连接到便携式计算机,便携式计算机可以使用无线电卡的无线通信属性来在便携式计算机和无线通信网络之间传输消息。在这个示例性的应用中,第一操作系统OS_A最好是将要在辅助卡上执行的操作系统,第二操作系统OS_B是将要在便携式计算机内执行的操作系统。
显然本发明并不仅限于上述实施例,它可以在权利要求书的保护范围内进行修改。本发明还可以应用在一个处理器内,其中安排此处理器执行至少两个操作系统的功能。
权利要求
1.一种在系统内使用资源的方法,所述系统包括至少一个处理器(3a,3b)和至少第一组资源和第二组资源,其中在所述至少一个处理器(3a,3b)内执行至少第一操作系统(OS_A)和在所述至少一个处理器(3a,3b)内执行第二操作系统(OS_B),所述操作系统中的至少一个基本上是实时操作系统,所述第一组资源受将要在第一操作系统内执行第一操作系统(OS_A)的资源服务的控制,所述第二组资源受将在第二操作系统内执行的第二操作系统(OS_B)的资源服务的控制,其特征在于为了从第二操作系统(OS_B)使用所述第一组资源之一,在第二操作系统(OS_B)中形成功能调用,包括所述第一组资源的相关信息,并将所述功能调用传送给在该系统的操作系统之间形成的接口块(16),其中根据在所述功能调用内包括的数据,形成一个服务调用以启动第一操作系统(OS_A)的资源服务。
2.根据权利要求1的方法,其特征在于在第一操作系统(OS_A)内,执行第一调度器(SCH_A),用于调度第一操作系统(OS_A)的进程的执行,在第二操作系统(OS_B)内,执行第二调度器(SCH_B),用于调度第二操作系统(OS_B)的进程的执行,其中当由第一调度器(SCH_A)调度时,启动所述服务调用的执行。
3.根据权利要求1或2的方法,其特征在于在第二操作系统(OS_B)内形成的功能调用发送给接口块(16)后,基本上立即继续第二操作系统的进程的执行,而不等待来自第一操作系统(OS_A)的功能调用的响应。
4.根据权利要求1、2或3的方法,其特征在于将要启动的资源服务形成一个响应,通过所述接口块(16)将此响应传送给第二操作系统(OS_B)。
5.根据权利要求4的方法,其特征在于在所述接口块(16)内,确定将在第二操作系统(OS_B)内执行的延迟的功能调用,在这个延迟的功能调用中,将一个响应传送给第二操作系统(OS_B)。
6.根据权利要求1至5中任一权利要求的方法,其特征在于在操作系统(OS_A,OS_B)中,执行进程,为其将运行状态、就绪状态或等待状态确定为功能状态,在功能状态为运行状态的另一个操作系统的进程内形成所述功能调用,将进行所述功能调用的进程设置在等待状态,如果第一操作系统(OS_A)等待一个对功能调用的响应的话。
7.根据权利要求1至6中任一权利要求的方法,其特征在于作为所述功能调用,使用同一功能调用,而与将要启动的资源服务无关。
8.根据权利要求1至7中任一权利要求的方法,其特征在于为了从第一操作系统(OS_A)使用所述第二组资源,在第一操作系统(OS_A)内形成功能调用,并将其传送给在该系统内的操作系统之间形成的接口块(16),其中形成一个服务调用,用于启动第二操作系统(OS_B)的资源服务。
9.一种系统,包括至少一个处理器(3a,3b)和至少第一组资源和第二组资源,用于在所述至少一个处理器(3a,3b)内处理至少第一操作系统(OS_A)的装置(3a)和用于在所述至少一个处理器(3a,3b)内处理第二操作系统(OS_B)的装置(3a),所述操作系统中的至少一个基本上是实时操作系统,该系统包括用于通过在第一操作系统内执行第一操作系统(OS_A)的资源服务控制所述第一组资源的装置,和用于通过在第二操作系统内执行的第二操作系统(OS_B)的资源服务控制所述第二组资源的装置,其特征在于该系统包括操作系统之间的接口块(16);装置(16),用于从第二操作系统(OS_B)使用所述第一组资源,它包括装置(3b),用于在第二操作系统(OS_B)中形成功能调用,此功能调用包括所述第一组资源的相关信息,和装置(4c),用于将所述功能调用传送给操作系统之间的所述接口块(16),包括装置(19),用于根据在所述功能调用内包括的信息,形成一个服务调用以启动第一操作系统(OS_A)的资源服务。
10.根据权利要求9的系统,其特征在于它包括装置(3a,4),用于在第一操作系统(OS_A)内处理第一调度器(SCH_A),用于调度第一操作系统(OS_A)的进程的执行,和装置(3b,4),用于在第二操作系统(OS_B)内执行第二调度器(SCH_B),用于调度第二操作系统(OS_B)的进程的执行,和装置(IH_A),用于在由第一调度器(SCH_A)调度之后启动所述服务调用的执行。
11.根据权利要求9或10的系统,其特征在于它包括装置,用于在启动的资源服务内形成一个响应,和装置(17,18,20),用于通过所述接口块(16)将此响应传送给第二操作系统(OS_B)。
12.根据权利要求9、10或11的系统,其特征在于它包括装置(16),用于从第一操作系统(OS_A)使用所述第二组资源,它包括装置(3a),用于在第一操作系统(OS_A)内形成功能调用,其功能调用包括与所述第二组资源相关的信息,和装置(4c),用于将所述功能调用传送给在该系统内的操作系统之间形成的所述接口块(16),包括装置(20),用于根据在所述功能调用内包括的信息来形成一个服务调用以启动第二操作系统(OS_B)的资源服务。
13.一种电子设备(1),包括至少一个处理器(3a,3b)和至少第一组资源和第二组资源,用于在所述至少一个处理器(3a,3b)内处理至少第一操作系统(OS_A)的装置(3a)和用于在所述至少一个处理器(3a,3b)内处理第二操作系统(OS_B)的装置(3a),所述操作系统(OS_A,OS_B)中的至少一个基本上是实时操作系统,该电子设备(1)包括用于通过将要在第一操作系统内执行的第一操作系统(OS_A)的资源服务控制所述第一组资源的装置,和用于通过在第二操作系统内执行的第二操作系统(OS_B)的资源服务控制所述第二组资源的装置,其特征在于该电子设备(1)包括操作系统之间的接口块(16);装置(16),用于从第二操作系统(OS_B)使用所述第一组资源,它包括装置(3b),用于在第二操作系统(OS_B)中形成功能调用,此功能调用包括所述第一组资源的相关信息,和装置(4c),用于将所述功能调用传送给操作系统之间的所述接口块(16),包括装置(19),用于根据在所述功能调用内包括的信息,形成一个服务调用以启动第一操作系统(OS_A)的资源服务。
14.根据权利要求13的电子设备,其特征在于它包括用于执行移动站功能的装置(11)。
15.将存储在电子设备(1)的存储装置(4)内的计算机软件,用于计算机软件的程序命令的执行,该电子设备(1)包括至少一个处理器(3a,3b)和至少第一组资源和第二组资源,用于在所述至少一个处理器(3a,3b)内执行至少第一操作系统(OS_A)的装置(3a)和用于在所述至少一个处理器(3a,3b)内执行第二操作系统(OS_B)的装置(3a),所述操作系统(OS_A,OS_B)中的至少一个基本上是实时操作系统,该电子设备(1)包括用于通过将要在第一操作系统内执行的第一操作系统(OS_A)的资源服务控制所述第一组资源的装置,和用于通过在第二操作系统内执行的第二操作系统(OS_B)的资源服务控制所述第二组资源的装置,其特征在于该计算机程序还包括包括程序命令,用于通过在第二操作系统(OS_B)内形成功能调用来从第二操作系统(OS_B)使用所述第一组资源,此功能调用包括所述第一组资源的相关信息;和程序命令,用于将所述功能调用传送给在该系统内操作块之间形成的接口块(16);和程序命令,用于根据在所述功能调用内包括的信息,形成一个服务调用以启动第一操作系统(OS_A)的资源服务。
全文摘要
本发明涉及一种使用系统内资源的方法,所述系统包括至少一个处理器(3a,3b)和至少第一和第二组资源。在至少一个处理器(3a,3b)内处理至少第一(OS_A)和第二操作系统(OS_B)。至少一个操作系统是实时操作系统。所述第一组资源受将在第一操作系统内执行的第一操作系统(OS_A)的资源服务控制,所述第二组资源受将在第二操作系统内执行的第二操作系统(OS_B)的资源服务控制。为了从第二操作系统(OS_B)使用所述第一组资源,在第二操作系统(OS_B)内形成包括所述第一组资源的相关信息的功能调用。将所述功能调用传送给在操作系统间形成的接口块(16),用于根据在所述功能调用内包括的信息形成服务调用,以启动第一操作系统(OS_A)的资源服务。本发明还涉及一种使用该方法的系统和电子设备,以及包括实现该方法的程序命令的计算机程序。
文档编号G06F9/48GK1613059SQ02825808
公开日2005年5月4日 申请日期2002年12月17日 优先权日2001年12月20日
发明者T·哈于拉 申请人:诺基亚有限公司