CN102929719A - 一种多核计算机上多操作系统的控制方法及多核计算机 - Google Patents
一种多核计算机上多操作系统的控制方法及多核计算机 Download PDFInfo
- Publication number
- CN102929719A CN102929719A CN2012103475978A CN201210347597A CN102929719A CN 102929719 A CN102929719 A CN 102929719A CN 2012103475978 A CN2012103475978 A CN 2012103475978A CN 201210347597 A CN201210347597 A CN 201210347597A CN 102929719 A CN102929719 A CN 102929719A
- Authority
- CN
- China
- Prior art keywords
- operating system
- processor core
- processor
- control method
- core
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Hardware Redundancy (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种多核计算机上多操作系统的控制方法,该方法包括:在计算机启动时,为各个操作系统分配不同的内存空间和处理器核心,控制各个处理器核心依次跳转至分配给自身的操作系统的内核镜像入口,将各个操作系统的内核镜像分别加载至计算机内存设定位置,以启动各个操作系统;在计算机运行过程中,使各个操作系统分别使用分配给自身的处理器核心和内存空间来执行各种操作。本发明通过为多个操作系统分配不同的内存空间和处理器核心,控制多核处理器上多个操作系统对多个处理器核心进行管理,由于每个操作系统使用分配给自身的私有内存,从而在利用多核处理器的计算能力的同时,充分利用多核处理器的容错性。
Description
技术领域
本发明涉及计算机操作系统领域,尤其涉及一种多核计算机上多操作系统的控制方法及多核计算机。
背景技术
自1996年美国斯坦福大学首次提出片上多处理器思想和首个多核结构原型,到2001年IBM推出第一个商用多核处理器POWER4,再到2005年Intel和AMD多核处理器的大规模应用,最后到现在多核成为市场主流,多核处理器经历了十几年的发展。在这个过程中,多核处理器的应用范围已覆盖了多媒体计算、嵌入式设备、个人计算机、商用服务器和高性能计算机等众多领域,多核技术及其相关研究也迅速发展。
硬件的发展需要软件的支持才能发挥其强大的性能,目前主流的操作系统都可以支持多核处理器,如:Windows NT之后的Windows系列操作系统、Solaris、AIX、Linux等。操作系统负责对多个处理器核心进行统一管理和调度,将进程或线程分发到不同核心上运行。
近年来,几十核甚至上百核的高性能服务器相继出现,为了充分利用多核的计算能力和简化管理,虚拟化技术也相继而生。通过利用例如VMware vSphere、Citrix XenServer和Hyper-V等超级管理程序(hypervisor)将服务器物理资源抽象成逻辑资源,让一台服务器变成几台甚至上百台相互隔离的虚拟服务器,从而不再受限于物理资源上的限制,让CPU、内存、磁盘、I/O等硬件资源变成可以动态管理的资源池,从而提高资源的利用率,简化系统管理,实现服务器整合。
但是,利用hypervisor的虚拟化技术来在多核设备中运行多个操作系统,对于多核处理器管理都有一个共同点,即对于多个核心的管理由一个操作系统或(相当于一个薄操作系统的)用于裸机虚拟化的VMware ESXServer、Citrix XenServer等超级管理程序完成,也即在计算机的最底层由一个操作系统或超级管理程序对全部多个处理器核心进行管理。这样的系统,虽然可以充分利用多核处理器的计算能力,但却没有充分利用多核处理器本身的容错性,而且由于hypervisor上同时运行的多个操作系统是虚拟机,这些操作系统间的安全性和稳定性会相互受到影响。
因此,亟需一种方案来解决上述问题,使得一个核心的指令异常或错误并不会影响其它核心的正常运行,系统的安全性更高。
发明内容
本发明所要解决的技术问题之一是需要提供一种能够充分利用多核处理器本身的容错性的多核计算机上多操作系统的控制方法。
为了解决上述技术问题,本发明提供了一种多核计算机上多操作系统的控制方法,该方法包括:在所述计算机启动时,为各个所述操作系统分配不同的内存空间和处理器核心,控制各个所述处理器核心依次跳转至分配给自身的操作系统的内核镜像入口,将各个所述操作系统的内核镜像分别加载至计算机内存设定位置,以启动各个所述操作系统;在所述计算机运行过程中,使各个所述操作系统分别使用分配给自身的处理器核心和内存空间来执行各种操作。
根据本发明的又一方面的控制方法,在所述计算机启动时,进一步包括以下步骤,
激活第一处理器核心,所述第一处理器核心加载BootLoader程序镜像并转入所述BootLoader程序中执行,在所述BootLoader程序中激活所述多个处理器核心中除第一处理器核心以外的其它处理器核心;
被激活后的所述其它处理器核心转入所述BootLoader程序中执行,在所述BootLoader程序中根据处理器核心的编号,控制不同的处理器核心分别跳转到各自对应的操作系统内核镜像入口处执行。
根据本发明的又一方面的控制方法,在所述计算机运行过程中,还包括:
在发生处理器异常或外部中断时,BootLoader程序根据发生异常或者处理所述外部中断的处理器核心的编号,将所述处理器异常或外部中断分发至与所述处理器核心的编号相对应的操作系统中进行处理。
根据本发明的又一方面的控制方法,还包括:
各个所述操作系统分别利用BootLoader程序在高级可编程中断控制器中配置的各个所述外部中断的中断分发目标和中断优先级,在发生外部中断时,进一步执行以下步骤:
查询所述外部中断在所述高级可编程中断控制器中的中断分发目标和中断优先级;
所述BootLoader程序根据所述中断分发目标所对应的处理器核心的编号,将所述外部中断分发至与所述处理器核心的编号相对应的操作系统;
所述操作系统基于所述中断优先级别对所述外部中断进行处理。
根据本发明的又一方面的控制方法,在所述计算机运行过程中,还包括:各个所述处理器核心中的其中之一利用BootLoader程序在高级可编程中断控制器中的配置,向其他处理器核心发送软重启信号,以重启与所述其他处理器核心相对应的操作系统。
根据本发明的又一方面的控制方法,在一操作系统自行重启或接收到所述软重启信号时,该操作系统根据其所对应的处理器核心的内存管理单元的设置,清除其自身所分配到的内存,并重新将该操作系统的内核镜像加载至与计算机内存设定位置中,以重启该操作系统。
根据本发明的又一方面的控制方法,通过修改用于检测操作系统处理器的代码为所述各个操作系统分配至少一个处理器核心。
根据本发明的又一方面的控制方法,在所述计算机运行过程中,还包括:
通过对多个操作系统中的任一操作系统所对应的处理器核心的内存管理单元设置比其他操作系统高的内存访问特权,使得该操作系统能够访问所述其它操作系统所分配到的内存空间。
根据本发明的又一方面的控制方法,在所述计算机运行过程中,还包括控制各所述操作系统相互之间进行通信,具体包括以下步骤:
在要进行通信的两个操作系统中,作为发送端的操作系统对已设置的共享内存的通信区进行加锁,将消息内容写入加锁后的通信区中,并触发接收端的操作系统所在处理器核心的核间中断;
作为接收端的操作系统响应并处理所述核间中断,从所述共享内存的通信区中读取所述消息内容,并对所述共享内存的通信区进行解锁,其中,所述共享内存包括两块通信区,所述通信区为一个单向发送消息的通道。
根据本发明的另一方面,还提供了一种多核计算机,所述多核计算机利用上述任一项所述的控制方法来控制多个操作系统。
与现有技术相比,本发明的一个或多个实施例可以具有如下优点:
本发明通过为多个操作系统分配不同的内存空间和处理器核心,控制多核处理器上多个操作系统对多个处理器核心进行管理,使得在一台多核计算机上可以同时运行多个操作系统;由于每个操作系统使用分配给自身的私有内存,使得多个操作系统可以独立运行,彼此间互不影响。一个操作系统的失败,并不会使整台计算机完全失去控制,其它处理器核心上的操作系统仍然能够正常运行。从而在利用多核处理器的计算能力的同时,充分利用多核处理器的容错性。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例共同用于解释本发明,并不构成对本发明的限制。在附图中:
图1是根据本发明实施例的多核计算机上多操作系统的控制方法的流程示意图;
图2是根据本发明实施例的技术效果图;
图3是根据本发明一示例的架构示意图;
图4是根据本发明一示例的内存布局示意图;
图5是根据本发明一示例的开机启动示意图;
图6是根据本发明一示例的操作系统启动处理的流程示意图;
图7是根据本发明一示例的时钟中断处理的流程示意图。
具体实施方式
以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。需要说明的是,只要不构成冲突,本发明中的各个实施例以及各实施例中的各个特征可以相互结合,所形成的技术方案均在本发明的保护范围之内。
另外,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的多核计算机上多操作系统的控制方法的流程示意图。
需要说明的是,在本发明实施例中所指的引导加载程序(简称BootLoader程序)不同于现有技术中BootLoader程序(如Grub、Uboot等),它除了加载操作系统内核镜像外,还要完成其它功能,如其它处理器核心的激活、高级可编程中断控制器的配置、异常和中断的截获等功能。
下面参考图1,详细说明本发明的各个步骤。
步骤S110,在计算机启动时,为各个操作系统分配不同的内存空间和处理器核心,控制各个处理器核心依次跳转至分配给自身的操作系统的内核镜像入口,将各个操作系统的内核镜像分别加载至计算机内存设定位置,以启动各个操作系统。
首先,在计算机启动时,为各个操作系统分配不同的内存空间和处理器核心,然后,各个操作系统分别根据各自所分配到的物理内存对其所分配的处理器核心的内存管理单元(简称MMU)进行配置。
由于已经将计算机全部的物理内存分配给不同的操作系统使用,每个操作系统都拥有各自私有的内存。因此,各个操作系统内核根据自己所拥有的物理内存对所在处理器核心的内存管理单元(MMU)进行配置。
例如,计算机上共有4G内存,操作系统1和操作系统2分别被分配了2G的内存。因此,操作系统1对MMU进行配置时就只映射前2G内存,操作系统2对MMU配置时就只映射后2G内存。
此外,还可以通过对多个操作系统中的任一操作系统所对应的处理器核心的内存管理单元设置比其他操作系统高的内存访问特权,使得能够控制该操作系统访问其它操作系统所分配到的内存空间,也就是说,使操作系统可以访问其它操作系统的内存的特权,这也需要该操作系统对其所在处理器核心的内存管理单元(MMU)进行正确配置。
例如,计算机上共有4G内存,操作系统1作为一个特权操作系统存在,其对MMU配置时需要映射所有内存,操作系统1本身的私有内存只是前2G,后2G主要用来对操作系统2进行监控。操作系统2对MMU进行配置时只映射后2G内存。
这样的内存访问特权的设置,可以使得拥有特权的操作系统应用在某些领域,如实时计算机系统领域。
在上述步骤中,在一台多核计算机上可以同时运行多个操作系统,由于不同的操作系统占用不同的处理器核心,每个操作系统使用自己的私有内存,因此多个操作系统可以独立运行,彼此间互不影响。
然后,通过以下步骤来启动各个操作系统。
子步骤S111,激活第一处理器核心,第一处理器核心加载BootLoader程序镜像并转入BootLoader程序中执行。
也就是说,在计算机上电开机后,在多个处理器核心中,有且只有一个处理器核心处于激活状态,此处理器核心经过BIOS程序或其它ROM程序处理后,加载BootLoader程序镜像并转入BootLoader程序中执行。其中,BIOS或ROM程序都是固化在硬件中的,它们的主要功能是开机自检,然后跳转到第一条指令处运行,具体来说,即把控制权交给Bootloader程序。
子步骤S112,在BootLoader程序中激活多个处理器核心中除第一处理器核心的其它处理器核心。
具体地,在BootLoader程序中,加载多个操作系统内核镜像至与各个操作系统相应的计算机内存设定位置中,并激活其它处理器核心。
子步骤S 113,被激活后的其它处理器核心转入BootLoader程序中执行,在BootLoader程序中根据处理器核心的编号,控制不同的处理器核心分别跳转到各自对应的操作系统内核镜像入口处执行。
具体地,被激活的其它处理器核心首先转入一个固定的地址处(ROM或RAM)运行,最终进入BootLoader程序中。在BootLoader程序中根据处理器核心的编号,控制不同的处理器核心分别跳转到各自对应的操作系统内核镜像入口处以启动各个操作系统。
需要说明的是,在本步骤中,通过修改用于检测操作系统处理器的部分代码来实现为各个操作系统指定至少一个处理器核心的操作。如图2所示,图2为三个操作系统在多核计算机中的效果图,其中,每个操作系统控制四个处理器核心。
步骤S120,在计算机运行过程中,使各个操作系统分别使用分配给自身的处理器核心和内存空间来执行各种操作。
在计算机运行过程中,各个操作系统可以分别使用分配给自身的处理器核心和内存空间来执行以下步骤。
步骤S121,在发生处理器异常或外部中断时,BootLoader程序根据发生异常或者处理外部中断的处理器核心的编号,将处理器异常或外部中断分发至与处理器核心的编号相对应的操作系统中进行处理。
需要说明的是,各个操作系统需要分别根据各自所要处理的外部设备中断对高级可编程中断控制器进行配置。在配置高级可编程中断控制器时,将外部设备中断分发至需要对其处理的操作系统所在的处理器核心中。
每个设备中断可由一个或多个操作系统来处理,因此,在本发明实施例中通过BootLoader程序在可编程中断控制器中设置中断分发目标和中断优先级,将配置后的各个设备中断分发至与其对应的操作系统所在的处理器核心中。
举例而言,计算机上共有2个串口,令操作系统1只使用串口1,操作系统2只使用串口2。此时,就需要在高级可编程中断控制器中对这两个串口产生的中断进行正确分发,将串口1所产生的中断分发给操作系统1所使用的处理器核心,将串口2所产生的中断分发给操作系统2所使用的处理器核心。
在发生外部设备中断时,BootLoader程序在处理器异常向量入口和中断向量入口处截获所有处理器异常和/或外部中断,各个操作系统分别利用BootLoader程序在高级可编程中断控制器中配置各个外部中断的中断分发目标和中断优先级,在发生外部中断时,进一步执行以下步骤:查询外部中断在高级可编程中断控制器中的中断分发目标和中断优先级;BootLoader程序根据中断分发目标所对应的处理器核心的编号,将外部中断分发至与所述处理器核心的编号相对应的操作系统;操作系统基于中断优先级别对所述外部中断进行处理。
另外,所有处理器核心的异常向量入口和中断向量入口是同一的,当处理器异常时,BootLoader程序在处理器核心异常和中断向量入口截获所有的异常。BootLoader程序跳转到与发生异常的处理器相应的操作系统的异常的中断向量入口处,来处理处理器核心的异常。
需要说明的是,处理器核心的异常和中断向量入口是固定的,操作系统的异常和中断向量入口是可以随便定的。本发明实施例中,当中断或异常到来时,首先跳转到处理器相应入口处,在入口处的程序由bootloader接管理,bootloader再跳转到需要对此中断进行处理的操作系统入口处。
在本步骤中,通过利用BootLoader程序来控制处理器异常,使得在一个操作系统的运行失败时,并不会使整台计算机完全失去控制,其它处理器核心上的操作系统仍然能够正常运行。
步骤S121,控制各操作系统相互之间进行通信。
各个操作系统利用多核处理器核间通讯的硬件机制来实现多个操作系统之间的通信。
具体地,采用处理器核间中断与共享内存结合的方法实现操作系统之间的通信机制。每次通信都包括发送端操作系统与接收端操作系统。对于每对需要通信的两个操作系统,在共享内存预留两块通信区,用于双方互相收发消息,每块通信区为一个单向发送消息的通道。
更具体地,在两个操作系统进行通信时,首先,作为发送端的操作系统对已设置的共享内存的通信区进行加锁,然后将消息内容写入加锁后的共享内存通信区中,最后,触发接收端操作系统所在处理器核心的核间中断以通知接收端操作系统有消息到来。
作为接收端操作系统响应并处理核间中断,然后进入核间中断处理流程,从共享内存通信区读取消息内容,最后,对共享内存通信区进行解锁。
需要说明的是,在本步骤中建立的操作系统之间的通信机制,可以在多个操作系统之间可以进行一些协作,例如利用一个操作系统对另一个操作系统进行监控。
另外,本实施例还进一步包括以下步骤:
步骤S 123,在多个操作系统中的任一个操作系统进行重启时,根据与其对应的处理器核心的内存管理单元中的配置,清除该操作系统所分配到的内存,其所在处理器核心重新加载该操作系统的内核镜像至内存设定位置中,以重启该操作系统。
具体地,在一个操作系统重启时,该操作系统根据其所对应的处理器核心的内存管理单元的设置,仅清除自己的私有内存,重新加载该操作系统的内核镜像至内存特定位置,并不会对其它处理器核心和操作系统造成影响,因为各个处理器核心的执行流程是相互独立的。
另外,各个处理器核心中的其中之一可以利用BootLoader程序在高级可编程中断控制器中的配置,向其他处理器核心发送软重启信号,以重启与其他处理器核心相对应的操作系统。
本发明实施例,通过利用BootLoader程序控制多核处理器上多操作系统,从而在利用多核处理器的计算能力的同时,充分利用多核处理器的容错性,相比现有技术中通过对BootLoader程序进行修改以增加其它处理器核心的激活、高级可编程中断控制器的配置、异常和中断的截获等功能,能够减少研发工作量并优化系统性能。
本发明实施例可以应用于多种领域,对于多核计算机系统有其独特的优越性。例如,在使用多核处理器的实时系统中,同时运行一个主操作系统和一个辅助安全操作系统,其中主操作系统对外提供整个实时系统的服务,辅助安全操作系统负责监控主操作系统安全,当辅助安全操作系统检测到主操作系统失败或发生严重错误时,强制将其重启,在主操作系统重启期间,由辅助安全操作系统暂时接管主操作系统的工作,这样可以大大提高整个实时系统的安全性。
又如,在拥有几十核甚至上百核的服务器上,运行服务器操作系统的同时,预留1个或几个处理器核心运行一个实时操作系统,服务器操作系统对外提供服务,实时操作系统负载监测服务器外界环境,当监控到外界条件威胁到服务器安全时,立即采取报警或其它处理。
为了更好地了解本发明的内容,下面详细说明一个示例。
需要说明的是,本发明所涉及的方法和技术并不局限于示例中的硬件平台和操作系统,采用其它硬件平台和操作系统所形成的技术方案均在本发明的保护范围之内。
在本示例中,为了便于说明具体的处理流程,选定了HPCN-MPC8641D硬件平台,并且选定了操作系统RTLinux和μC/OS-II。
HPCN(High Performance Computing Platform-Net)是freescale公司推出的一款高性能的计算平台,它支持基于PowerPC架构的MPC8641D双核处理器。MPC8641D集成了两个PowerPc E600处理器核心,两个处理器核心以SMP的方式访问内存。在HPCN-MPC8641D默认配置中,集成了1G内存和8M的Flash,Flash中可烧写BootLoader和操作系统内核镜像。
图3是根据本发明一示例的架构示意图,如图3所示,对架构的双核处理器的核心分别编号为0和1,在处理器核0上运行操作系统RTLinux,在处理器核1上运行操作系统μC/OS-II。
图4是根据本发明一示例的内存布局示意图,如图4所示,RTLinux使用RTLinux私有内存区,μC/OS-II使用μC/OS-II私有内存区。通信区1和通信区2由RTLinux和μC/OS-II共享,通信区1用于μC/OS-II向RTLinux发送消息,通信区2用于RTLinux向μC/OS-II发送消息。
图5是根据本发明一示例的开机启动示意图,如图5所示,HPCN-MPC8641D开机启动时,核0处于激活状态,核1处于非激状态。核0执行的第一条指令位于地址0xfff00100的Flash中。在Flash中烧写了BootLoader、RTLinux内核、μC/OS-II内核三个镜像。0xfff00100指向BootLoader镜像的执行入口。
图6是从开机启动到RTLinux和μC/OS-II分别在核0和核1上运行的完整流程,具体包括以下步骤:
步骤S600,计算机上电,开机启动。
步骤S601,核0处于激活态,核1处于非激活态。
步骤S602,核0开始执行Flash中的BootLoader程序。
步骤S603,在BootLoader程序中,对计算机进行内存初始化、高级可编程中断控制器初始化、处理器初始化等一系列初始化操作。另外一个关键的操作是,将异常和中断向量处理程序拷贝到每个异常和中断向量入口处。
步骤S604,将RTLinux和μC/OS-II内核镜像从Flash中分别拷贝到其所对应的内存区。
步骤S605,在核0上运行的bootloader程序激活核1。
步骤S606,核0跳转到内存RTLinux内核镜像入口处执行。
步骤S607,RTLinux操作系统开始在核0上运行。
步骤S608,开机启动时,核1处于未激态,等待被激活。
步骤S609,核1被激活后同样首先执行Flash中的BootLoader程序。
步骤S610,核1在BootLoader程序中几乎不做任何操作,直接跳转到μC/OS-II内核镜像入口处执行。
步骤S611,μC/OS-II操作系统开始在核1上运行。
在以上步骤中,核0和核1在BootLoader中的执行流程是不同的,这是通过在BootLoader中判断当前处理器核编号来进行控制的。
步骤S607和步骤S611完成后,RTLinux和μC/OS-II分别在核0与核1上开始操作系统初始化流程,此处需要修改RTLinux的内存检测部分,在对内存管理单元(MMU)进行配置时,RTLinux仅映射RTLinux的私有内存区和通信区。
一个处理器通常只有一个异常向量表,如:对于MPC8641D来说,无论哪儿个核产生除零错异常都会跳转到0x700处执行。现在,两个处理器核分别被RTLinux和μC/OS-II使用,RTLinux和μC/OS-II分别有各自的异常处理代码,因此异常向量入口处代码必须被RTLinux和μC/OS-II公用。在每个异常向量的入口处首先判断当前核是核0或核1,继而决定应该由RTLinux处理还是由μC/OS-II处理,然后跳转到RTLinux或μC/OS-II相应的异常处理程序入口。下面以对时钟中断的处理为例作详细说明,对其它中断和异常的处理类似。
图7是根据本发明一示例的时钟中断处理的流程示意图,如图7所示,时钟中断的处理具体包括以下步骤:
步骤S700,在时钟中断到来。
步骤S701,转到时钟中断向量入口处的BootLoader程序中执行。
步骤S702,对当前处理器核编号进行判断。
步骤S703,若核0,则跳转到RTLinux时钟中断处理程序入口处。
步骤S704,执行RTLinux时钟中断处理流程。
步骤S705,若核1,则跳转到μC/OS-II时钟中断处理程序入口处。
步骤S706,执行μC/OS-II时钟中断处理流程。
步骤S707,中断处理完毕,返回。
完成以上步骤后,RTLinux操作系统和μC/OS-II操作系统可以分别在两个处理器核上同时正常地运行,借助于本发明实施例所涉及的操作系统间通信机制的建立方法,可以在RTLinux和μC/OS-II间建立通信机制,实现两者互相收发消息,进一步可以实现RTLinux和μC/OS-II之间的协作,如μC/OS-II对RTLinux的监控。另外,需要说明的是,RTLinux或μC/OS-II重启时,在BootLoader中,都仅清除自己的私有内存区,这样就不会影响另一个操作系统的正常运行。
此外,根据实际应用场景,在同一个多核计算机上,可以同时运用hypervisor和本发明实施例的方法来构建多个操作系统。
由于hypervisor上同时运行多个操作系统是虚拟机,这些操作系统间的安全性和稳定性会相互受到影响,而本发明实施例构建的多个操作系统是物理机制的,这些操作系统是相互独立的,安全性和稳定性不会相互影响。
本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
虽然本发明所揭露的实施方式如上,但所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属技术领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
Claims (10)
1.一种多核计算机上多操作系统的控制方法,其特征在于,包括:
在所述计算机启动时,为各个所述操作系统分配不同的内存空间和处理器核心,控制各个所述处理器核心依次跳转至分配给自身的操作系统的内核镜像入口,将各个所述操作系统的内核镜像分别加载至计算机内存设定位置,以启动各个所述操作系统;
在所述计算机运行过程中,使各个所述操作系统分别使用分配给自身的处理器核心和内存空间来执行各种操作。
2.根据权利要求1所述的控制方法,其特征在于,在所述计算机启动时,进一步包括以下步骤,
激活第一处理器核心,所述第一处理器核心加载BootLoader程序镜像并转入所述BootLoader程序中执行,在所述BootLoader程序中激活所述多个处理器核心中除第一处理器核心以外的其它处理器核心;
被激活后的所述其它处理器核心转入所述BootLoader程序中执行,在所述BootLoader程序中根据处理器核心的编号,控制不同的处理器核心分别跳转到各自对应的操作系统内核镜像入口处执行。
3.根据权利要求1所述的控制方法,其特征在于,在所述计算机运行过程中,还包括:
在发生处理器异常或外部中断时,BootLoader程序根据发生异常或者处理所述外部中断的处理器核心的编号,将所述处理器异常或外部中断分发至与所述处理器核心的编号相对应的操作系统中进行处理。
4.根据权利要求3所述的控制方法,其特征在于,还包括:
各个所述操作系统分别利用BootLoader程序在高级可编程中断控制器中配置的各个所述外部中断的中断分发目标和中断优先级,在发生外部中断时,进一步执行以下步骤:
查询所述外部中断在所述高级可编程中断控制器中的中断分发目标和中断优先级;
所述BootLoader程序根据所述中断分发目标所对应的处理器核心的编号,将所述外部中断分发至与所述处理器核心的编号相对应的操作系统;
所述操作系统基于所述中断优先级别对所述外部中断进行处理。
5.根据权利要求1所述的控制方法,其特征在于,在所述计算机运行过程中,还包括:
各个所述处理器核心中的其中之一利用BootLoader程序在高级可编程中断控制器中的配置,向其他处理器核心发送软重启信号,以重启与所述其他处理器核心相对应的操作系统。
6.根据权利要求5所述的控制方法,其特征在于,
在一操作系统自行重启或接收到所述软重启信号时,该操作系统根据其所对应的处理器核心的内存管理单元的设置,清除其自身所分配到的内存,并重新将该操作系统的内核镜像加载至与算机内存设定位置中,以重启该操作系统。
7.根据权利要求1所述的控制方法,其特征在于,
通过修改用于检测操作系统处理器的代码为所述各个操作系统分配至少一个处理器核心。
8.根据权利要求1所述的控制方法,其特征在于,在所述计算机运行过程中,还包括:
通过对多个操作系统中的任一操作系统所对应的处理器核心的内存管理单元设置比其他操作系统高的内存访问特权,使得该操作系统能够访问所述其它操作系统所分配到的内存空间。
9.根据权利要求1所述的控制方法,其特征在于,在所述计算机运行过程中,还包括控制各所述操作系统相互之间进行通信,具体包括以下步骤:
在要进行通信的两个操作系统中,作为发送端的操作系统对已设置的共享内存的通信区进行加锁,将消息内容写入加锁后的通信区中,并触发接收端的操作系统所在处理器核心的核间中断;
作为接收端的操作系统响应并处理所述核间中断,从所述共享内存的通信区中读取所述消息内容,并对所述共享内存的通信区进行解锁,其中,
所述共享内存包括两块通信区,所述通信区为一个单向发送消息的通道。
10.一种多核计算机,其特征在于,所述多核计算机利用权利要求1至9中任一项所述的控制方法来控制多个操作系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210347597.8A CN102929719B (zh) | 2012-09-18 | 2012-09-18 | 一种多核计算机上多操作系统的控制方法及多核计算机 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210347597.8A CN102929719B (zh) | 2012-09-18 | 2012-09-18 | 一种多核计算机上多操作系统的控制方法及多核计算机 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102929719A true CN102929719A (zh) | 2013-02-13 |
CN102929719B CN102929719B (zh) | 2015-09-02 |
Family
ID=47644526
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210347597.8A Active CN102929719B (zh) | 2012-09-18 | 2012-09-18 | 一种多核计算机上多操作系统的控制方法及多核计算机 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102929719B (zh) |
Cited By (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103744342A (zh) * | 2014-01-22 | 2014-04-23 | 大连理工计算机控制工程有限公司 | 一种基于双核处理器的pac实时控制系统 |
CN104331337A (zh) * | 2014-11-25 | 2015-02-04 | 宇龙计算机通信科技(深圳)有限公司 | 系统内存管理方法、系统内存管理装置和终端 |
CN104572484A (zh) * | 2015-01-23 | 2015-04-29 | 宇龙计算机通信科技(深圳)有限公司 | 存储空间分配方法、存储空间分配装置和终端 |
CN104657218A (zh) * | 2015-02-10 | 2015-05-27 | 西安酷派软件科技有限公司 | 一种多操作系统运行方法、装置及终端 |
CN104714924A (zh) * | 2013-12-12 | 2015-06-17 | 华为技术有限公司 | 一种资源控制方法和装置 |
CN104714846A (zh) * | 2013-12-17 | 2015-06-17 | 华为技术有限公司 | 资源处理方法、操作系统及设备 |
CN104714844A (zh) * | 2013-12-17 | 2015-06-17 | 华为技术有限公司 | 轻量级操作系统部署方法及装置 |
CN105653347A (zh) * | 2014-11-28 | 2016-06-08 | 杭州华为数字技术有限公司 | 一种服务器、资源管理方法及虚拟机管理器 |
CN106155730A (zh) * | 2015-04-21 | 2016-11-23 | 北京信威通信技术股份有限公司 | 操作系统加载方法及装置 |
CN103793255B (zh) * | 2014-02-27 | 2017-01-25 | 重庆邮电大学 | 可配置的多主模式多os内核实时操作系统架构的启动方法 |
CN106445650A (zh) * | 2015-08-05 | 2017-02-22 | 华为技术有限公司 | 一种中断处理方法、ioapic及计算机系统 |
CN107315615A (zh) * | 2017-06-30 | 2017-11-03 | 中国航空工业集团公司雷华电子技术研究所 | 一种c6678多核dsp软件加载映像的简化生成方法 |
CN107807827A (zh) * | 2017-10-19 | 2018-03-16 | 安徽皖通邮电股份有限公司 | 一种支持多核cpu多操作系统的方法 |
CN107844713A (zh) * | 2016-09-18 | 2018-03-27 | 展讯通信(上海)有限公司 | 一种运行可信执行环境的电子设备 |
CN108108199A (zh) * | 2017-12-21 | 2018-06-01 | 北京东土科技股份有限公司 | 一种多核cpu上多操作系统启动方法及装置 |
CN108334420A (zh) * | 2017-01-19 | 2018-07-27 | 中国科学院声学研究所 | 一种基于多核网络处理器系统的数据恢复方法 |
CN108932160A (zh) * | 2017-10-10 | 2018-12-04 | 北京猎户星空科技有限公司 | 多操作系统控制方法、装置、电子设备和计算机存储介质 |
CN108932213A (zh) * | 2017-10-10 | 2018-12-04 | 北京猎户星空科技有限公司 | 多操作系统间的通讯方法、装置、电子设备和存储介质 |
CN109597650A (zh) * | 2017-09-30 | 2019-04-09 | 中兴通讯股份有限公司 | 一种多操作系统启动的方法、装置、设备及存储介质 |
CN110069287A (zh) * | 2018-01-24 | 2019-07-30 | 合肥杰发科技有限公司 | 一种多系统共存的方法、装置及存储设备 |
CN110557682A (zh) * | 2019-09-26 | 2019-12-10 | 四川长虹电器股份有限公司 | 基于双核启动的智能电视快速开机方法及双核智能电视 |
CN113282344A (zh) * | 2021-05-25 | 2021-08-20 | 中国航空无线电电子研究所 | 在飞腾非对称双核处理器上实现天脉操作系统的方法 |
CN114911538A (zh) * | 2022-05-17 | 2022-08-16 | 武汉深之度科技有限公司 | 一种运行系统的启动方法及计算设备 |
CN115981924A (zh) * | 2022-12-26 | 2023-04-18 | 元心信息科技集团有限公司 | 设备控制方法、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101006433A (zh) * | 2004-08-25 | 2007-07-25 | 日本电气株式会社 | 信息通信装置和程序执行环境控制方法 |
US7356680B2 (en) * | 2005-01-22 | 2008-04-08 | Telefonaktiebolaget L M Ericsson (Publ) | Method of loading information into a slave processor in a multi-processor system using an operating-system-friendly boot loader |
CN101533355A (zh) * | 2009-04-15 | 2009-09-16 | 杭州华三通信技术有限公司 | 一种启动多操作系统的方法和装置 |
-
2012
- 2012-09-18 CN CN201210347597.8A patent/CN102929719B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101006433A (zh) * | 2004-08-25 | 2007-07-25 | 日本电气株式会社 | 信息通信装置和程序执行环境控制方法 |
US7356680B2 (en) * | 2005-01-22 | 2008-04-08 | Telefonaktiebolaget L M Ericsson (Publ) | Method of loading information into a slave processor in a multi-processor system using an operating-system-friendly boot loader |
CN101533355A (zh) * | 2009-04-15 | 2009-09-16 | 杭州华三通信技术有限公司 | 一种启动多操作系统的方法和装置 |
Cited By (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104714924B (zh) * | 2013-12-12 | 2018-07-13 | 华为技术有限公司 | 一种资源控制方法和装置 |
CN104714924A (zh) * | 2013-12-12 | 2015-06-17 | 华为技术有限公司 | 一种资源控制方法和装置 |
CN104714844B (zh) * | 2013-12-17 | 2018-06-26 | 华为技术有限公司 | 轻量级操作系统部署方法及装置 |
CN104714846B (zh) * | 2013-12-17 | 2018-06-05 | 华为技术有限公司 | 资源处理方法、操作系统及设备 |
CN104714846A (zh) * | 2013-12-17 | 2015-06-17 | 华为技术有限公司 | 资源处理方法、操作系统及设备 |
CN104714844A (zh) * | 2013-12-17 | 2015-06-17 | 华为技术有限公司 | 轻量级操作系统部署方法及装置 |
US10180843B2 (en) | 2013-12-17 | 2019-01-15 | Huawei Technologies Co., Ltd. | Resource processing method and device for a multi-core operating system |
CN103744342A (zh) * | 2014-01-22 | 2014-04-23 | 大连理工计算机控制工程有限公司 | 一种基于双核处理器的pac实时控制系统 |
CN103744342B (zh) * | 2014-01-22 | 2016-09-14 | 大连理工计算机控制工程有限公司 | 一种基于双核处理器的pac实时控制系统 |
CN103793255B (zh) * | 2014-02-27 | 2017-01-25 | 重庆邮电大学 | 可配置的多主模式多os内核实时操作系统架构的启动方法 |
CN104331337A (zh) * | 2014-11-25 | 2015-02-04 | 宇龙计算机通信科技(深圳)有限公司 | 系统内存管理方法、系统内存管理装置和终端 |
CN105653347A (zh) * | 2014-11-28 | 2016-06-08 | 杭州华为数字技术有限公司 | 一种服务器、资源管理方法及虚拟机管理器 |
CN105653347B (zh) * | 2014-11-28 | 2019-06-07 | 杭州华为数字技术有限公司 | 一种服务器、资源管理方法及虚拟机管理器 |
WO2016115798A1 (zh) * | 2015-01-23 | 2016-07-28 | 宇龙计算机通信科技(深圳)有限公司 | 存储空间分配方法、存储空间分配装置和终端 |
CN104572484A (zh) * | 2015-01-23 | 2015-04-29 | 宇龙计算机通信科技(深圳)有限公司 | 存储空间分配方法、存储空间分配装置和终端 |
CN104572484B (zh) * | 2015-01-23 | 2017-12-12 | 宇龙计算机通信科技(深圳)有限公司 | 存储空间分配方法、存储空间分配装置和终端 |
WO2016127504A1 (zh) * | 2015-02-10 | 2016-08-18 | 宇龙计算机通信科技(深圳)有限公司 | 一种多操作系统运行方法、装置及终端 |
CN104657218A (zh) * | 2015-02-10 | 2015-05-27 | 西安酷派软件科技有限公司 | 一种多操作系统运行方法、装置及终端 |
CN106155730A (zh) * | 2015-04-21 | 2016-11-23 | 北京信威通信技术股份有限公司 | 操作系统加载方法及装置 |
CN106445650B (zh) * | 2015-08-05 | 2019-10-25 | 华为技术有限公司 | 一种中断处理方法、ioapic及计算机系统 |
CN106445650A (zh) * | 2015-08-05 | 2017-02-22 | 华为技术有限公司 | 一种中断处理方法、ioapic及计算机系统 |
CN107844713A (zh) * | 2016-09-18 | 2018-03-27 | 展讯通信(上海)有限公司 | 一种运行可信执行环境的电子设备 |
CN108334420A (zh) * | 2017-01-19 | 2018-07-27 | 中国科学院声学研究所 | 一种基于多核网络处理器系统的数据恢复方法 |
CN108334420B (zh) * | 2017-01-19 | 2021-06-08 | 中国科学院声学研究所 | 一种基于多核网络处理器系统的数据恢复方法 |
CN107315615B (zh) * | 2017-06-30 | 2020-11-27 | 中国航空工业集团公司雷华电子技术研究所 | 一种c6678多核dsp软件加载映像的简化生成方法 |
CN107315615A (zh) * | 2017-06-30 | 2017-11-03 | 中国航空工业集团公司雷华电子技术研究所 | 一种c6678多核dsp软件加载映像的简化生成方法 |
CN109597650A (zh) * | 2017-09-30 | 2019-04-09 | 中兴通讯股份有限公司 | 一种多操作系统启动的方法、装置、设备及存储介质 |
CN108932160A (zh) * | 2017-10-10 | 2018-12-04 | 北京猎户星空科技有限公司 | 多操作系统控制方法、装置、电子设备和计算机存储介质 |
CN108932213A (zh) * | 2017-10-10 | 2018-12-04 | 北京猎户星空科技有限公司 | 多操作系统间的通讯方法、装置、电子设备和存储介质 |
CN107807827A (zh) * | 2017-10-19 | 2018-03-16 | 安徽皖通邮电股份有限公司 | 一种支持多核cpu多操作系统的方法 |
CN108108199A (zh) * | 2017-12-21 | 2018-06-01 | 北京东土科技股份有限公司 | 一种多核cpu上多操作系统启动方法及装置 |
CN110069287A (zh) * | 2018-01-24 | 2019-07-30 | 合肥杰发科技有限公司 | 一种多系统共存的方法、装置及存储设备 |
CN110557682A (zh) * | 2019-09-26 | 2019-12-10 | 四川长虹电器股份有限公司 | 基于双核启动的智能电视快速开机方法及双核智能电视 |
CN113282344A (zh) * | 2021-05-25 | 2021-08-20 | 中国航空无线电电子研究所 | 在飞腾非对称双核处理器上实现天脉操作系统的方法 |
CN113282344B (zh) * | 2021-05-25 | 2022-11-04 | 中国航空无线电电子研究所 | 在飞腾非对称双核处理器上实现天脉操作系统的方法 |
CN114911538A (zh) * | 2022-05-17 | 2022-08-16 | 武汉深之度科技有限公司 | 一种运行系统的启动方法及计算设备 |
CN115981924A (zh) * | 2022-12-26 | 2023-04-18 | 元心信息科技集团有限公司 | 设备控制方法、电子设备及存储介质 |
CN115981924B (zh) * | 2022-12-26 | 2023-10-13 | 元心信息科技集团有限公司 | 设备控制方法、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN102929719B (zh) | 2015-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102929719A (zh) | 一种多核计算机上多操作系统的控制方法及多核计算机 | |
US9483639B2 (en) | Service partition virtualization system and method having a secure application | |
CN109542831B (zh) | 机载平台多核虚拟分区处理系统 | |
CN102713847B (zh) | 处理器内核的监管程序隔离 | |
EP1899810B1 (en) | System and method to optimize os context switching by instruction group trapping | |
US9672058B2 (en) | Reduced service partition virtualization system and method | |
US8151027B2 (en) | System management mode inter-processor interrupt redirection | |
US9032397B2 (en) | Virtual machine migration with direct physical access control | |
US10592434B2 (en) | Hypervisor-enforced self encrypting memory in computing fabric | |
CN105511941B (zh) | 辅助计算机系统中多个管理程序的联合操作的系统和方法 | |
US11099884B2 (en) | Dynamic control of halt polling based on receiving a monitoring instruction executed by a guest | |
CN101751284A (zh) | 一种分布式虚拟机监控器的i/o资源调度方法 | |
KR20140002048A (ko) | 결합된 가상 그래픽 장치 | |
WO2009151445A1 (en) | Method and apparatus for configuring a hypervisor during a downtime state | |
CN104714846A (zh) | 资源处理方法、操作系统及设备 | |
CN103064746A (zh) | 基于当前credit进行预测调度的处理器资源精确分配方法 | |
US9639486B2 (en) | Method of controlling virtualization software on a multicore processor | |
US9715403B2 (en) | Optimized extended context management for virtual machines | |
CN107003891A (zh) | 虚拟机切换方法、装置、电子设备和计算机程序产品 | |
US10853259B2 (en) | Exitless extended page table switching for nested hypervisors | |
CN107924325A (zh) | 用于多级虚拟化的技术 | |
TW201211894A (en) | Virtual machine code injection | |
US20140143372A1 (en) | System and method of constructing a memory-based interconnect between multiple partitions | |
CN103473135A (zh) | 虚拟化环境下自旋锁lhp现象的处理方法 | |
US20200334062A1 (en) | Safe hyper-threading for virtual machines |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |