CN116243996B - 业务的运行切换方法、装置、存储介质及电子装置 - Google Patents

业务的运行切换方法、装置、存储介质及电子装置 Download PDF

Info

Publication number
CN116243996B
CN116243996B CN202310536664.9A CN202310536664A CN116243996B CN 116243996 B CN116243996 B CN 116243996B CN 202310536664 A CN202310536664 A CN 202310536664A CN 116243996 B CN116243996 B CN 116243996B
Authority
CN
China
Prior art keywords
operating system
service
target
target service
processor
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.)
Active
Application number
CN202310536664.9A
Other languages
English (en)
Other versions
CN116243996A (zh
Inventor
陈瑾
刘宝阳
马文凯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202310536664.9A priority Critical patent/CN116243996B/zh
Publication of CN116243996A publication Critical patent/CN116243996A/zh
Application granted granted Critical
Publication of CN116243996B publication Critical patent/CN116243996B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4418Suspend and resume; Hibernate and awake
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本申请实施例提供了一种业务的运行切换方法、装置、存储介质及电子装置,其中,该方法应用于芯片,第一操作系统和第二操作系统运行在芯片上的同一个处理器中,包括:通过第二操作系统确定第二操作系统上运行的业务中待切换至第一操作系统上运行的目标业务;在第一操作系统上生成目标业务的目标运行环境;通过第一操作系统在目标运行环境下运行目标业务。通过本申请,解决了操作系统上业务的运行效率较低的问题,进而达到了提高操作系统上业务的运行效率的效果。

Description

业务的运行切换方法、装置、存储介质及电子装置
技术领域
本申请实施例涉及计算机领域,具体而言,涉及一种业务的运行切换方法、装置、存储介质及电子装置。
背景技术
目前,由于嵌入式系统的CPU(Central Processing Unit,中央处理器)核心数量的增多,随之出现了多核的系统架构设计。但在目前的技术中,只能够实现多核系统的启动以及稳定运行,并且双系统只能在对应在系统中运行固定的业务,这就使得业务在操作系统上的运行不够灵活,限制了业务运行的效率提升。
针对相关技术中,操作系统上业务的运行效率较低等问题,尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种业务的运行切换方法、装置、存储介质及电子装置,以至少解决相关技术中操作系统上业务的运行效率较低的问题。
根据本申请的一个实施例,提供了一种业务的运行切换方法,所述方法应用于芯片,第一操作系统和第二操作系统运行在所述芯片上的同一个处理器中,包括:
通过所述第二操作系统确定所述第二操作系统上运行的业务中待切换至所述第一操作系统上运行的目标业务;
在所述第一操作系统上生成所述目标业务的目标运行环境;
通过所述第一操作系统在所述目标运行环境下运行所述目标业务。
在一个示例性实施例中,所述方法还包括:
引导所述第一操作系统启动;
引导所述第二操作系统启动。
在一个示例性实施例中,所述引导所述第一操作系统启动,包括:
所述芯片启动上电,通过所述处理器唤醒所述处理器中为所述第一操作系统分配的第一处理器核心;
通过所述第一处理器核心执行所述第一操作系统的引导程序引导所述第一操作系统启动。
在一个示例性实施例中,所述通过所述第一处理器核心执行所述第一操作系统的引导程序引导所述第一操作系统启动,包括:
通过所述第一处理器核心执行二级程序加载器,其中,所述第一操作系统的引导程序包括所述二级程序加载器;
通过所述二级程序加载器加载所述第一操作系统。
在一个示例性实施例中,所述引导所述第二操作系统启动,包括:
通过所述二级程序加载器唤醒为所述第二操作系统分配的第二处理器核心;
通过所述第二处理器核心执行所述第二操作系统的引导程序引导所述第二操作系统启动。
在一个示例性实施例中,所述通过所述第二处理器核心执行所述第二操作系统的引导程序引导所述第二操作系统启动,包括:
通过所述第二处理器核心执行通用引导加载器,其中,所述第二操作系统的引导程序包括所述通用引导加载器;
通过所述通用引导加载器加载所述第二操作系统。
在一个示例性实施例中,所述通过所述第一处理器核心执行二级程序加载器,包括:
通过所述芯片上的引导存储器对所述二级程序加载器的代码进行安全启动检查;
在检查结果为正常的情况下,通过所述第一处理器核心执行所述二级程序加载器。
在一个示例性实施例中,所述通过所述第二操作系统确定所述第二操作系统上运行的业务中待切换至所述第一操作系统上运行的目标业务,包括:
通过所述第二操作系统监控所述第二操作系统上运行的业务的业务状态;
在所述业务状态达到目标业务状态的情况下,从所述第二操作系统上运行的业务中获取所述目标业务。
在一个示例性实施例中,所述通过所述第二操作系统监控所述第二操作系统上运行的业务的业务状态,包括:
通过所述第二操作系统监控所述第二操作系统上运行的业务的实时性信息,其中,所述业务状态包括所述实时性信息,所述实时性信息用于指示业务对于系统响应的实时性的要求。
在一个示例性实施例中,所述通过所述第二操作系统监控所述第二操作系统上运行的业务的实时性信息,包括:
遍历所述第二操作系统上运行的业务;
监控当前业务是否存在所述实时性信息的变化。
在一个示例性实施例中,所述在所述业务状态达到目标业务状态的情况下,从所述第二操作系统上运行的业务中获取所述目标业务,包括:
将存在所述实时性信息变化的当前业务确定为所述目标业务。
在一个示例性实施例中,所述通过所述第二操作系统确定所述第二操作系统上运行的业务中待切换至所述第一操作系统上运行的目标业务,包括:
通过所述第二操作系统监控所述处理器中为所述第二操作系统分配的第二处理器核心的核心状态;
在所述核心状态达到目标核心状态的情况下,从所述第二操作系统上运行的业务中获取所述目标业务。
在一个示例性实施例中,所述通过所述第二操作系统监控所述处理器中为所述第二操作系统分配的第二处理器核心的核心状态,包括:
通过所述第二操作系统监控所述第二处理器核心的运行负载,其中,所述核心状态包括所述运行负载。
在一个示例性实施例中,所述在所述核心状态达到目标核心状态的情况下,从所述第二操作系统上运行的业务中获取所述目标业务,包括:
在所述运行负载大于负载阈值的情况下,从所述第二操作系统上运行的业务中获取切换优先级最高的所述目标业务。
在一个示例性实施例中,所述在所述第一操作系统上生成所述目标业务的目标运行环境,包括:
通过所述第二操作系统向所述第一操作系统发送业务切换指令,其中,所述业务切换指令用于指示将所述目标业务切换至所述第一操作系统上运行;
响应所述业务切换指令获取所述目标业务的业务信息;
根据所述业务信息加载所述目标业务的运行资源,得到所述目标运行环境。
在一个示例性实施例中,所述通过所述第二操作系统向所述第一操作系统发送业务切换指令,包括:
通过所述第二操作系统将所述目标业务的业务信息存储至所述芯片上的内存空间中;
通过所述第二操作系统向所述第一操作系统发送第一中断请求,其中,所述第一中断请求用于指示所述目标业务的所述业务信息存储在所述内存空间中。
在一个示例性实施例中,所述响应所述业务切换指令获取所述目标业务的业务信息,包括:
从所述内存空间读取所述业务信息,其中,所述业务信息包括:所述目标业务的业务标识,所述目标业务的内存空间占用量和所述目标业务所使用的硬件资源。
在一个示例性实施例中,所述根据所述业务信息加载所述目标业务的运行资源,得到所述目标运行环境,包括:
加载所述业务信息中所包括的所述目标业务的业务标识对应的业务代码;
初始化所述业务信息所包括的所述目标业务的内存空间占用量对应的内存空间,以及,所述业务信息所包括的所述目标业务所使用的硬件资源对应的硬件接口。
在一个示例性实施例中,所述通过所述第一操作系统在所述目标运行环境下运行所述目标业务,包括:
通过所述第一操作系统向所述第二操作系统发送第二中断请求;
通过所述第二操作系统响应所述第二中断请求退出所述目标业务;
通过所述第二操作系统向所述第一操作系统发送第三中断请求,其中,所述第三中断请求用于指示所述第二操作系统已释放所述目标业务;
通过所述第一操作系统响应所述第三中断请求在所述目标运行环境下运行所述目标业务。
根据本申请的另一个实施例,提供了一种业务的运行切换装置,应用于芯片,第一操作系统和第二操作系统运行在所述芯片上的同一个处理器中,包括:
确定模块,用于通过所述第二操作系统确定所述第二操作系统上运行的业务中待切换至所述第一操作系统上运行的目标业务;
生成模块,用于在所述第一操作系统上生成所述目标业务的目标运行环境;
运行模块,用于通过所述第一操作系统在所述目标运行环境下运行所述目标业务。
根据本申请的又一个实施例,还提供了一种芯片,其中,所述芯片包括可编程逻辑电路以及可执行指令中的至少之一,所述芯片在电子设备中运行,用于实现上述任一项方法实施例中的步骤。
根据本申请的又一个实施例,还提供了一种BMC芯片,其中,包括:存储单元以及与所述存储单元连接的处理单元,所述存储单元用于存储程序,所述处理单元用于运行所述程序,以执行上述任一项方法实施例中的步骤。
根据本申请的又一个实施例,还提供了一种主板,其中,包括:至少一个处理器;至少一个存储器,用于存储至少一个程序;当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现上述任一项方法实施例中的步骤。
根据本申请的又一个实施例,还提供了一种服务器,其中,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序时,实现上述任一项方法实施例中的步骤。
根据本申请的又一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本申请的又一个实施例,还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
通过本申请,第一操作系统和第二操作系统运行在芯片上的同一个处理器中,处理器的处理资源包括第一处理资源和第二处理资源,第一处理资源被分配给第一操作系统使用,第二处理资源被分配给第二操作系统使用,通过第二操作系统确定第二操作系统上运行的业务中待切换至第一操作系统上运行的目标业务;在第一操作系统上生成目标业务的目标运行环境;通过第一操作系统在目标运行环境下运行目标业务。也就是说,通过在第一操作系统上生成能够运行目标业务的目标运行环境,实现将第二操作系统上运行的业务中待切换的目标业务切换至在第一操作系统运行,实现了动态调整目标业务运行的操作系统,操作系统上业务的运行控制更加的灵活,业务可以根据情况转移到更加适合的操作系统上运行。因此,可以解决操作系统上业务的运行效率较低的技术问题,达到提高操作系统上业务的运行效率的技术效果。
附图说明
图1是根据本申请实施例的一种业务的运行切换方法的硬件环境示意图;
图2是根据本申请实施例的业务的运行切换方法的流程图;
图3是根据本申请实施例的一种可选的BMC芯片的结构框图;
图4是根据本申请实施例的第一操作系统和第二操作系统启动的流程图;
图5是根据本申请实施例的判断业务的动态切换的示意图;
图6是根据本申请实施例的业务的动态切换的示意图;
图7是根据本申请实施例的双系统中业务的运行切换的示意图;
图8是根据本申请实施例的业务的运行切换装置的结构框图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本申请的实施例。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本申请实施例所提供的方法实施例可以在服务器、计算机终端、设备终端或者类似的运算装置中执行。以运行在服务器上为例,图1是根据本申请实施例的一种业务的运行切换方法的硬件环境示意图。如图1所示,服务器可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,在一个示例性实施例中,上述服务器还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述服务器的结构造成限定。例如,服务器还可包括比图1中所示更多或者更少的组件,或者具有与图1所示等同功能或比图1所示功能更多的不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的业务的运行切换方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至服务器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括服务器的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种业务的运行切换方法,应用于芯片,第一操作系统和第二操作系统运行在所述芯片上的同一个处理器中,图2是根据本申请实施例的业务的运行切换方法的流程图,如图2所示,该流程包括如下步骤:
步骤S202,通过所述第二操作系统确定所述第二操作系统上运行的业务中待切换至所述第一操作系统上运行的目标业务;
步骤S204,在所述第一操作系统上生成所述目标业务的目标运行环境;
步骤S206,通过所述第一操作系统在所述目标运行环境下运行所述目标业务。
通过上述步骤,通过在第一操作系统上生成能够运行目标业务的目标运行环境,实现将第二操作系统上运行的业务中待切换的目标业务切换至在第一操作系统运行,实现了动态调整目标业务运行的操作系统,操作系统上业务的运行控制更加的灵活,业务可以根据情况转移到更加适合的操作系统上运行。因此,可以解决操作系统上业务的运行效率较低的技术问题,达到提高操作系统上业务的运行效率的技术效果。
可选地,在本实施例中,还提供了一种操作系统的运行方法,该方法包括:在芯片的同一个处理器中运行第一操作系统和第二操作系统;对所述第一操作系统和所述第二操作系统所使用的资源进行切换。上述切换的资源可以但不限于包括处理资源和/或操作业务资源等等。可以但不限于采用本实施例中的业务的运行切换方法对所述第一操作系统和所述第二操作系统所使用的资源进行切换。
可选地,在本实施例中,上述业务的运行切换方法可以但不限于应用于芯片上,比如:X86架构的芯片、ARM架构(Advanced RISC Machine,先进精简指令集计算机)的芯片、RiSC-V架构(Reduced Instruction Set Computer,第五代精简指令集架构)的芯片和MIPS架构(Microprocessor without Interlocked Pipeline Stages,无互锁流水线级的微处理器架构)的芯片等等。
可选地,在本实施例中,上述芯片可以不限于为任何允许在同一个处理器中运行多个操作系统的芯片。比如:BMC芯片。例如,BMC芯片的一个示例可以如图3所示,BMC芯片的硬件可以但不限于包括SOC子模块(System on a Chip,片上系统)和BMC带外子模块,其中,SOC子模块主要包含ARM核心(ARM Core 1,ARM Core 2,…,ARM Core X),其还可以但不限于包括DDR(Double Data Rate,双倍速率)4控制器(内存控制器)、MAC(Media AccessControl Address,媒体访问控制地址)控制器(网络控制器)、SD(Secure Digital,安全数字)Card/eMMC(Embedded Multi Media Card,嵌入式多媒体卡)控制器(存储控制器)、PCIeRC(Root Complex,根复合体)控制器、SRAM(Static Random-Access Memory,静态随机存取存储器)及SPI控制器(Serial Peripheral Interface Controller,串行外设接口控制器)。
上述核心与各控制器通过第二总线互连,实现核心与各控制器间的交互。同时,ARM核心间连接至第一总线(比如:可以通过AXI(Advanced eXtensible Interface,高级可扩展接口)桥(Bridge)连接),核心间的通信通过第一总线实现。此外,SOC子模块中还实现了第一总线与第二总线的互连互通(比如:通过桥(Bridge)的转换实现),这样为SOC子模块访问第二总线上的外设提供一条物理通路。
DDR4控制器可以通过DDR4 PHY(Physical Layer,物理层)接口与其他部件或者设备相连,MAC控制器通过RGMII(Reduced Gigabit Media Independent Interface,吉比特介质独立接口)与其他部件或者设备相连,SD卡/eMMC控制器通过SD接口与其他部件或者设备相连,PCIe RC控制器通过PCIe PHY接口与其他部件或者设备相连。
BMC带外子模块主要包含PWM、GPIO(General Purpose Input/Output,通用输入输出)、FanTech(风扇调速)、mailbox(邮箱)等芯片外设对应的控制器,通过这些控制器能够实现对BMC的PECI通信(比如使用GPIO模拟PECI)、风扇调控等带外管理功能。由图3可知,该BMC带外子模块可以但不限于通过第二总线实现与SOC子模块的交互。
BMC芯片通过第一总线与第二总线实现片内ARM核、存储单元及控制器硬件资源间的互连。处理器资源的动态均衡调度主要涉及BMC芯片的ARM核心资源调度,核间通信指ARM核之间进行的通信。以Linux系统抢占RTOS系统核心为例,Linux系统首先在核2~N的某个核上通过片上第一总线向核1发送核间中断(中断号9)。如果此时RTOS系统处于空闲状态允许抢占,核1通过第一总线回复核间中断(中断号10),并释放当前核1映射的外设控制器资源(如,PWM/PECI),Linux系统收到核间中断(中断号10),发起抢占流程,把核1加入Linux SMP调度中,同时获得了PWM/PECI外设的控制权,可以通过第二总线对其进行控制。
可选地,在本实施例中,上述第一操作系统和第二操作系统可以但不限于是两个异构的或者同构的操作系统,即第一操作系统和第二操作系统的类型可以相同也可以不同。
以第一操作系统和第二操作系统为异构操作系统为例,第一操作系统和第二操作系统可以是对响应时间的敏感程度不同的操作系统,比如:第一操作系统对响应时间的敏感程度高于第二操作系统。或者,第一操作系统和第二操作系统可以是对资源的占用量不同的操作系统,比如:第一操作系统对业务对资源的占用量小于第二操作系统。
上述第一操作系统和第二操作系统可以但不限于是部署在嵌入式系统的处理器上的两个异构操作系统,即嵌入式操作系统,嵌入式操作系统根据对响应时间的敏感程度可分为实时性操作系统(RTOS)和非实时性操作系统,实时性操作系统可以但不限于包括FreeRTOS(Free Real-Time Operating System,免费实时操作系统)和RTLinux(Real-TimeLinux,实时Linux),非实时性操作系统可以但不限于包括contiki(Contiki OperatingSystem,康提基操作系统)、HeliOS(Helicopter Operating System,直升机操作系统)和Linux等。
嵌入式系统是用于控制、监视或者辅助操作机器和设备的装置,是一种专用的计算机系统。嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。从应用对象上加以定义来说,嵌入式系统是软件和硬件的综合体,还可以涵盖机械等附属装置。
嵌入式系统从硬件角度可以但不限于包括处理器,存储器和外围电路等硬件设备,上述第一操作系统和第二操作系统基于嵌入式系统的处理器运行。从软件角度可以但不限于包括底层驱动,操作系统和应用程序等,上述第一操作系统和第二操作系统即为嵌入式系统中的操作系统。
可选地,在本实施例中,上述第一操作系统和第二操作系统可以但不限于运行在芯片上的同一个处理器中。操作系统上的业务在处理器上的执行是可以通过处理器的多个核心上的处理资源并行执行的,这里的处理器可以为多核处理器,例如,8核处理器,也可以是包含其他数量的核心的处理器,本实施例中对于多核处理器包含的核心数不做限定。
可选地,在本实施例中,上述业务可以但不限于包括第一操作系统和第二操作系统中能够运行的功能,比如:第一操作系统和第二操作系统能够启动的应用,第一操作系统和第二操作系统能够控制的进程等等。
上述第一操作系统和第二操作系统可以但不限于是应用在芯片上的同一个处理器中的两个不同的操作系统,比如:第一操作系统可以但不限于为非实时操作系统,第二操作系统可以但不限于为实时操作系统。或者,第一操作系统可以但不限于为实时操作系统,第二操作系统可以但不限于为非实时操作系统。依据两个操作系统不同的特点(比如操作响应的实时性)可以分别处理不同要求的业务。比如:第一操作系统可以但不限于为实时操作系统,其操作响应的实时性可能较强,但处理能力可能较弱,可以处理少量的对实时性要求较高的业务,第二操作系统可以但不限于为非实时操作系统,其操作响应的实时性可能较弱,但处理能力可能较强,可以处理大批量的对实时性要求较低的业务。
可选地,在本实施例中,实时操作系统(RTOS)可以但不限于包括FreeRTOS和RTLinux等,非实时操作系统可以但不限于包括contiki、HeliOS和Linux等。
在一个示例性实施例中,可以但不限于采用以下方式启动第一操作系统和第二操作系统:引导所述第一操作系统启动;引导所述第二操作系统启动。
可选地,在本实施例中,第一操作系统和第二操作系统可以但不限于先后启动,第一操作系统可以但不限于比第二操作系统启动更快,第一操作系统也可以但不限于比第二操作系统启动所需的条件更简单,在第一操作系统先启动后可以运行能够满足第二操作系统启动所需的条件,或者能够加快第二操作系统启动的业务,从而使得多系统能够更加高效快速地启动并运行业务。
比如:引导第一操作系统启动后可以由第一操作系统运行能够控制芯片环境参数达到第二操作系统启动要求的业务(比如:风扇运行,参数控制等业务),使得芯片环境参数迅速达成第二操作系统启动运行的环境,提高操作系统的启动效率和运行效率。
在一个可选的实施方式中,提供了一种操作系统的启动控制过程,该过程包括如下步骤:
步骤A,通过处理器的第一处理器核心上运行的第一操作系统经由第一总线对目标设备的硬件控制器进行控制,以对目标设备的运行状态进行控制。
对于如服务器、个人电脑、工控机等设备,可以配备一些特定设备执行与设备运行相关的操作。相关技术中,通常在系统上电后,这些特定设备就开始工作。而由于系统上电后,运行在处理器上的操作系统会经过一段时间才能正常接管特定设备,进行特定设备的运行状态控制,而在操作系统启动的过程中,特定设备是不可控的。
例如,在系统上电后风扇就开始工作,由于系统上电后跑在CPU上的操作系统会经过一段时间才能正常接管风扇,进行风扇转速的设置,所以在操作系统启动过程中风扇是不可控的。
例如,为了实现在操作系统启动的过程中对风扇可以控制,服务器通过采用BMC结合CPLD的控制方式,个人电脑采用EC芯片(Embedded Controller,嵌入式控制器)的控制方式(EC芯片根据温度调整风扇转速的功能),工控机采用定制芯片的控制方式,在服务器、个人电脑、工控机操作系统启动过程中,CPLD、EC芯片、定制芯片就会介入控制风扇的转速,等待操作系统完全启动后,风扇的控制权就会交给操作系统中的应用程序进行控制。
为了至少部分解决上述技术问题,可以采用多核多系统(例如,多核双系统)的启动控制方式,在处理器的不同处理器核心上运行嵌入式系统的不同操作系统,不同的操作系统的响应速度不同,对于第二操作系统未启动、重启或者其他无法对特定设备的运行状态进行控制的情况,可以由响应速度高于第二操作系统的第一操作系统对特定设备的运行状态进行控制,可以降低特定设备的运行状态不可控的情况,同时,由于不需要增加额外的成本,此外还具有很好的可扩展性。
在本实施方式中,在第二操作系统未启动、重启或者其他无法对目标设备的运行状态进行控制的情况下,可以通过第一操作系统经由第一总线对目标设备的硬件控制器进行控制,以对目标设备的运行状态进行控制。这里的目标设备可以是风扇,或者其他需要在系统启动是运行的设备,对于风扇,其对应的硬件控制器为风扇控制器,例如,PWM(PulseWidth Modulation,脉冲宽度调制)控制器、FanTach(风扇转速)控制器。这里,使用第一操作系统(例如,RTOS系统)代替传统的CPLD、EC芯片、定制芯片,一方面节省硬件成本,另一方面由于设备控制是由软件实现的,可扩展性较高。
例如,基于BMC双核实现双系统,RTOS系统和Linux系统,基于多核双系统实现风扇,利用RTOS系统实时性高的特性,在Linux系统启动的过程中,可以由RTOS系统代替CPLD、EC芯片、定制芯片控制风扇,即,接管风扇控制权,以足够快的速度对风扇的运行状态进行控制。
步骤B,引导在处理器的第二处理器核心上启动第二操作系统。
在系统上电时或者第二操作系统重启时,可以引导在处理器的第二处理器核心上启动第二操作系统,以使得第二操作系统在第二处理器核心上运行。这里,在第二处理器核心上启动第二操作系统是指将第二处理器核心调度给第二操作系统,操作系统的系统文件或者镜像文件可以存储在处理器所在芯片上或者芯片以外的存储器内,例如,外部RAM(Random Access Memory,随机存取存储器)内。
步骤C,在第二操作系统启动之后,通过第二操作系统经由第一总线接管硬件控制器,以接管目标设备的控制权。
在第二操作系统启动完成之后,可以一直由第一操作系统对目标设备的运行状态进行控制,考虑到在多核处理器上运行多个操作系统需要在多个操作系统之间进行数据交互,以及方便由一个操作系统进行设备的总体控制,也可以由第二操作系统接管目标设备的控制权。例如,可以通过第二操作系统经由第一总线接管硬件控制器。第二操作系统接管目标设备的控制权的方式可以是:在第二操作系统启动之后,由第二操作系统向第一操作系统发送设备接管请求,例如,通过第二总线发送中断请求,以请求接管目标设备的硬件控制器。第一操作系统可以接收第二操作系统发送的设备接管请求,将目标设备的控制权转交给第二操作系统,还可以执行与目标设备的控制权交接相关的操作,例如,停止运行用于对目标设备的运行状态进行控制的业务(进程)。
例如,等到Linux系统完全启动后,RTOS系统将风扇的控制权转交给Linux系统,由Linux系统对风扇进行控制。上述过程可以是在系统上电之后执行的,即,采用多核双系统的启动方式,先启动RTOS系统,利于更早介入风扇控制,而等到Linux系统完全启动之后,RTOS系统将风扇的控制权转交给Linux系统进行控制。
在一个示例性实施例中,通过处理器的第一处理器核心上运行的第一操作系统经由第一总线对目标设备的硬件控制器进行控制之前,还包括:在处理器所在的芯片上电之后,通过处理器唤醒第一处理器核心;通过第一处理器核心运行第一操作系统的引导加载程序,以引导第一操作系统在第一处理器核心上启动。
整个系统按照工作时段可以划分为两个阶段,初始启动阶段和实时运行阶段,本实施例中的启动控制方法可以是在初始启动阶段或者实时运行阶段执行的。对于初始启动阶段,初始启动阶段起于系统上电,即,处理器所在的芯片上电,系统上电后会唤醒一个核心去执行操作系统的引导动作,其余核心暂时处于休眠状态,被唤醒的核心可以是第一处理器核心。
可选地,上电后系统将首先执行一个预置的核心调度策略(启动引导策略),即,由处理器的一个处理器核心执行核心调度策略,核心调度策略可以存储在SOC片上的RAM或Norflash(非易失闪存)中,该调度策略可以根据不同的设计需求进行灵活配置,其主要功能包括:指定不同操作系统需要运行的初始处理资源(处理器核心),确定异构操作系统的引导过程,芯片上电可以是指SOC芯片层面的上电。
在第一处理器核心唤醒之后,可以通过引导加载程序在第一处理器核心上引导运行第一操作系统:可以,由第一处理器核心通过引导加载程序引导第一操作系统在第一处理器核心上启动。引导加载(BootLoader)程序可以位于电脑或其他计算机应用上,其是指用于引导操作系统加载的程序,例如,BootRom里的固有程序,固有程序指的是引导操作系统启动的代码,属于BootLoader程序,BootRom是CPU片上的嵌入处理器芯片内的一小块掩模ROM(Read-Only Memory,只读存储器)或者写保护闪存。
在初始启动阶段,通过引导加载程序引导操作系统对应的处理器核心上启动,可以提高操作系统启动的成功率,同时为实时运行阶段做准备。
在一个示例性实施例中,通过处理器的第一处理器核心上运行的第一操作系统经由第一总线对目标设备的硬件控制器进行控制,包括:在第一处理器核心上执行第一操作系统的第一控制任务,其中,第一控制任务用于对硬件控制器进行控制;通过第一处理器核心读取与目标设备对应的指定传感器的传感器数据;通过第一控制任务根据指定传感器的传感器数据经由第一总线向硬件控制器发送设备控制指令,以由硬件控制器按照设备控制指令对目标设备的运行状态进行控制。
操作系统对目标设备的硬件控制器进行控制可以是由在该操作系统所运行的处理器核心上的控制任务(业务)对硬件控制器进行控制执行的,这里的控制任务可以指对应的控制任务。对于目标设备的硬件控制器,可以在第一处理器核心上执行第一操作系统的第一控制任务(第一控制进程),由第一控制任务对硬件控制器进行控制。
对硬件控制器进行控制可以是基于传感器的传感器数据进行的,对于不同的目标设备,影响其运行的参数可以是不同的,对应地,所需获取的传感器数据也可以存在区别。对于目标设备,其可以是在芯片上电以后即运行的设备,与其对应的传感器为指定传感器。指定传感器的类型可以有多种,可以包括但不限于以下至少之一:温度传感器,湿度传感器,噪音传感器等。由于第一控制任务运行在第一处理器核心上,因此,可以通过第一处理器核心读取指定传感器的传感器数据。指定传感器的传感器数据可以存储在指定传感器内的存储空间中,与可以由指定传感器传输到指定的存储空间内,本实施例中对于指定传感器的传感器数据的读取位置不做限定。
读取的指定传感器的传感器数据可以是在一个时间周期内的传感器数据,也可以是自目标设备启动之后的全部传感器数据,还可以是满足其他时间限制条件的传感器数据。在获取到指定传感器的传感器数据之后,第一控制任务可以根据指定传感器的传感器数据对目标设备的运行状态进行控制。对目标设备的运行状态进行控制可以是通过以下方式实现的:通过第一控制任务向目标设备的硬件控制器发送设备控制指令,以由硬件控制器按照设备控制指令对目标设备的运行状态进行控制。
可选地,第一控制任务可以基于指定传感器的传感器数据确定出目标设备预期的运行状态;在目标设备当前的运行状态与预期的运行状态不同的情况下,可以生成上述设备控制指令,设备控制指令可以控制将目标设备的运行状态调整为预期的运行状态。上述设备控制指令可以是经由第一总线发送给目标设备的硬件控制器的。第一总线与前述实施例中类似,在此不做赘述。
通过读取指定传感器的传感器数据,并根据传感器数据对目标设备进行控制,控制其运行状态,提高了资源的利用率。
在一个示例性实施例中,通过第一控制任务根据指定传感器的传感器数据经由第一总线向硬件控制器发送设备控制指令,包括:通过第一控制任务根据指定传感器的传感器数据确定目标设备的设备运行参数的目标参数值,其中,设备运行参数为控制目标设备的运行状态的参数;通过第一控制任务将携带有目标参数值的设备控制指令经由第一总线发送给硬件控制器。
第一控制任务可以根据指定传感器的传感器数据,确定出目标设备预期的运行状态。预期的运行状态可以是通过设备运行参数的参数值进行表示的,设备运行参数可以是控制目标设备的运行状态的参数,对于不同类型的设备,其对应的设备运行参数可以是不同的。例如,对于风扇,其对应的设备运行参数可以是转速,对于其他类型的设备,设备运行参数可以是其他的运行参数。预期的运行状态可以对应于目标设备的设备运行参数的目标参数值。
在确定出目标设备的设备运行参数的目标参数值之后,可以将目标参数值携带在上述的设备控制指令中,即,通过第一控制任务将携带有目标参数值的设备控制指令发送给硬件控制器,向硬件控制器发送设备控制指令的方式可以与前述实施例中类似,在此不做赘述。
根据传感器数据确定目标设备的设备运行参数的参数值,并将确定的参数值携带在设备控制指令中,可以提高设备控制的精准度。
在一个示例性实施例中,通过第一控制任务根据指定传感器的传感器数据确定目标设备的设备运行参数的目标参数值,包括:在目标设备为风扇的情况下,通过第一控制任务根据指定传感器的传感器数据确定风扇的风扇运行参数的目标参数值。
目标设备可以是风扇,其可以是用于对所在的服务器或者其他设备进行散热的风扇,即,散热风扇。在此情况下,设备运行参数可以是风扇运行参数,风扇运行参数可以包括一种或多种,可以包括但不限于以下至少之一:转速,转动周期,周期切换时间,还可以是其他的运行参数。本实施例中对此不做限定。
对应地,通过第一控制任务根据指定传感器的传感器数据确定目标设备的设备运行参数的目标参数值可以是:通过第一控制任务根据指定传感器的传感器数据确定风扇的风扇运行参数的目标参数值。在得到目标参数值之后,第一控制任务将携带有目标参数值的设备控制指令经由第一总线发送给风扇的硬件控制器,从而对风扇的运行状态进行控制。
通过对风扇的运行状态进行控制,可以在如系统上电、系统重启或者其他场景下,快速对风扇的运行状态进行控制,提高风扇控制的及时性。
在一个示例性实施例中,在目标设备为风扇的情况下,通过第一控制任务根据指定传感器的传感器数据确定风扇的风扇运行参数的目标参数值,包括:在目标设备为风扇、且指定传感器为温度传感器的情况下,通过第一控制任务根据温度传感器的传感器数据确定风扇的转速的目标转速值,其中,风扇的转速与温度传感器所检测到的温度正相关。
对于目标设备为风扇的场景,指定传感器可以是温度传感器,该温度传感器的数量可以为一个或多个,温度传感器的设置位置可以根据需要进行配置,不同的温度传感器可以设置在不同的位置上。可选地,温度传感器的传感器数据用于表示温度传感器所检测到的温度,对此,第一控制任务可以根据温度传感器的传感器数据确定风扇的转速的目标转速值,这里,风扇的转速与温度传感器所检测到的温度正相关。
在温度传感器的数量为多个的情况下,可以根据每个温度传感器的传感器数据,确定多个温度传感器所检测到的最高温度,风扇的转速可以是根据多个温度传感器所检测到的最高温度确定的,相对于根据多个温度传感器所检测到的平均温度确定风扇的转速,可以保证设备运行的安全性。对于风扇的数量为多个的场景,也可以基于与每个风扇匹配的温度传感器所检测到的最高温度或者平均温度,确定每个风扇的转速。
例如,可以利用第一操作系统(例如,RTOS系统)代替CPLD、EC芯片、定制芯片等处理单元来控制风扇转速(可以是实时进行BMC风扇控制)。在系统刚上电时,可以唤醒第一处理器核心(例如,CPU0,第一处理器核心可以是被硬件唤醒的),第一处理器核心运行引导加载程序(例如,BootRom中的指定程序),加载第一操作系统启动,第一处理器核心将读取各种和温度相关的传感器(sensor)数据,进行风扇控制(例如,风扇转速控制),完全模拟上述处理单元完成风扇调控的功能。在进行风扇转速控制时,第一操作系统可以根据温度传感器计算PWM值,继而风扇的转速进行调整。通过上述方式,可以在第二操作系统启动的过程中,由第一操作系统对风扇的转速进行控制。
在一个示例性实施例中,引导在处理器的第二处理器核心上启动第二操作系统,包括:通过第一处理器核心执行二级程序加载器,以由二级程序加载器唤醒第二处理器核心;通过第二处理器核心运行第二操作系统的通用引导加载器,以引导第二操作系统在第一处理器核心上启动。
在本实施方式中,在进行操作系统启动时,可以将二级程序加载器(SecondProgram Loader,简称为SPL)加载到内部内存中,例如,SOC内部的静态随机存取存储器(Static Random-Access Memory,SRAM),而SPL可以负责将通用引导加载程序(UniversalBoot Loader,简称为U-Boot)加载到随机存取存储器(Random-Access Memory,简称为RAM)中,二级程序加载器可以引导加载第二操作系统,还可以引导加载第一操作系统。
对于第二操作系统,可以通过第一处理器核心执行二级程序加载器,以由二级程序加载器唤醒第二处理器核心;通过第二处理器核心,可以运行第二操作系统的通用引导加载器(通用引导加载程序),从而引导第二操作系统在第一处理器核心上启动。这里,通过二级程序加载器引导加载第二操作系统的引导程序,第二操作系统的引导程序可以包括通用引导加载器。
需要说明的是,二级程序加载器为通用引导加载程序第一阶段执行的代码,可负责搬运通用引导加载程序第二阶段的代码到系统内存(System RAM,也叫片外内存)中运行。通用引导加载程序是一个遵循GPL(General Public License,通用公共许可协议)协议的开源软件,可以看作是一个裸机综合例程。
例如,系统上电后,处理器首先会唤醒CPU0核,以便可以让RTOS系统尽可能快地运行起来;然后利用BootRom中的程序引导RTOS系统启动;RTOS系统启动的过程中,会继续通过SPL加载U-Boot,由U-Boot引导在CPU1上启动第二操作系统直到Linux系统正常启动。
需要说明的是,BootRom是芯片(例如,SOC芯片)内部ROM固化程序,其是uboot的引导代码。BootRom读硬件的启动信息(例如,拨码开关设置),从指定启动介质(例如,SD、MMC等)中读取uboot-spl代码(即,SPL),SPL主要负责初始化外部RAM和环境,加载真正的uboot镜像到外部RAM中来执行,外部RAM可以是DDR(Double Data Rate Synchronous DynamicRandom-Access Memory,双倍速率的同步动态随机存取内存),也可以是其他的RAM。
通过二级程序加载器唤醒第二处理器核心,再由第二处理器核心运行通用引导加载程序,从而引导在对应的处理器核心上第二操作系统,可以提高操作系统启动的便捷性和成功率。
作为一种可选示例,下面以RTOS系统和Linux系统为例对多核双系统的启动过程进行解释说明。
为了尽快接管风扇管理,可以尽可能使RTOS系统启动,在Linux系统启动完成之后,由在Linux系统接管风扇的控制权。多核双系统的启动过程可以包括以下步骤:
步骤1,在系统刚上电时,唤醒CPU0;
步骤2,CPU0运行BootRom中的指定程序,加载RTOS系统启动;
步骤3,在RTOS系统启动的过程中,唤醒CPU1去引导u-boot,并启动第一操作系统中的风扇控制程序(FanCtrl_RTOS_APP);
步骤4,CPU1引导u-boot可以包括SPL阶段和Uboot阶段,通过调用SPL进入到SPL阶段;
步骤5,在SPL阶段,SPL引导Uboot启动;
步骤6,在Uboot阶段,加载Linux核心(CPU1~CPUN),并启动BMC业务程序以及第二操作系统中的风扇控制程序(FanCtrl_Linux_APP)。
通过本可选示例,在双系统启动及运行的过程中,通过首先启动RTOS系统对风扇进行控制,并在Linux系统启动之后,由第二操作系统接管风扇的控制权,可以保证在系统上电时快速对风扇进行控制,提高风扇控制的效率。
在一个示例性实施例中,在通过第二操作系统经由第一总线接管硬件控制器之后,还包括:在第二操作系统待重启的情况下,通过第二操作系统经由第二总线唤醒第一操作系统,并由第一操作系统经由第一总线接管硬件控制器,以接管目标设备的控制权;控制第二操作系统进行系统重启。
在由于系统崩溃、接收到reboot(重加载)命令等原因需要重启时,第二操作系统可以首先唤醒第一操作系统,由第一操作系统接管硬件控制器,以接管目标设备的控制权。唤醒第一操作系统可以是经由第二总线执行的,第一操作系统接管硬件控制器可以是经由第一总线执行的。
在第二操作系统发生重启时,通过唤醒第一操作系统接管目标设备的控制权,可以提高设备控制的可靠性。
在一个示例性实施例中,在第二操作系统待重启的情况下,通过第二操作系统经由第二总线唤醒第一操作系统,包括:在第二操作系统待重启的情况下,通过第二操作系统经由第二总线向第一操作系统发起系统唤醒中断,其中,系统唤醒中断用于唤醒第一操作系统。
唤醒第一操作系统可以是通过核间中断实现的。如果第二操作系统待重启(例如,系统崩溃、接收到reboot命令),第二操作系统可以向第一操作系统发起系统唤醒中断,以唤醒第一操作系统。该系统唤醒中断可以是主动唤醒中断。在第一操作系统接管硬件控制器之后,可以控制第二操作系统进行系统重启,而在第二操作系统重启之后,可以重新接管硬件控制器,接管硬件控制器的过程与前述实施例中类似,在此不做赘述。
可选地,在本实施例中,第一操作系统可以但不限于由第一操作系统的引导程序引导启动,第二操作系统可以但不限于由第二操作系统的引导程序引导启动。或者,二者可以由同一个引导程序先后引导启动。
在一个示例性实施例中,可以但不限于采用以下方式引导所述第一操作系统启动:所述芯片启动上电,通过所述处理器唤醒所述处理器中为所述第一操作系统分配的第一处理器核心;通过所述第一处理器核心执行所述第一操作系统的引导程序引导所述第一操作系统启动。
可选地,在本实施例中,可以但不限于根据第一操作系统所在的处理器所具有的处理器核心确定第一操作系统的第一处理器核心,比如:第一操作系统所在的处理器可以但不限于包括多个处理器核心(处理器核心0至处理器核心N),可以但不限于将多个处理器核心中的一个或者多个处理器核心(比如处理器核心0)分配给第一操作系统作为第一操作系统的第一处理器核心。
可选地,在本实施例中,上述第一操作系统的引导程序可以但不限于存储于芯片上的特定存储空间中专门用于启动第一操作系统。
可选地,在本实施例中,上述第一操作系统的第一处理器核心可以但不限于用于执行第一操作系统的引导程序,可以但不限于通过执行第一操作系统的引导程序启动第一操作系统。
在一个示例性实施例中,可以但不限于采用以下方式通过所述第一处理器核心执行所述第一操作系统的引导程序引导所述第一操作系统启动:通过所述第一处理器核心执行二级程序加载器,其中,所述第一操作系统的引导程序包括所述二级程序加载器;通过所述二级程序加载器加载所述第一操作系统。
可选地,在本实施例中,第一操作系统的引导程序可以但不限于包括所述二级程序加载器,第一处理器核心可以但不限于通过执行二级程序加载器(Second ProgramLoader,SPL)加载第一操作系统。
在一个示例性实施例中,可以但不限于采用以下方式引导所述第二操作系统启动:通过所述二级程序加载器唤醒为所述第二操作系统分配的第二处理器核心;通过所述第二处理器核心执行所述第二操作系统的引导程序引导所述第二操作系统启动。
可选地,在本实施例中,可以但不限于根据第二操作系统所在的处理器的处理器核心确定第二操作系统的第二处理器核心,比如:第二操作系统所在的处理器可以但不限于包括多个处理器核心(处理器核心0至处理器核心N),可以但不限于将多个处理器核心中的一个或者多个处理器核心(处理器核心1至处理器核心N)分配给第二操作系统作为第二操作系统的第二处理器核心。
可选地,在本实施例中,可以但不限于根据二级程序加载器唤醒第二操作系统的第二处理器核心,比如:在使用二级程序加载器加载第一操作系统完成后,可以但不限于通过二级程序加载器唤醒第二操作系统的第二处理器核心。或者,在使用二级程序加载器加载第一操作系统的过程中,可以但不限于通过二级程序加载器唤醒第二操作系统的第二处理器核心。
可选地,在本实施例中,可以但不限于使用第二处理器核心执行第二操作系统的引导程序引导第二操作系统启动。
在一个示例性实施例中,可以但不限于采用以下方式通过所述第二处理器核心执行所述第二操作系统的引导程序引导所述第二操作系统启动:通过所述第二处理器核心执行通用引导加载器,其中,所述第二操作系统的引导程序包括所述通用引导加载器;通过所述通用引导加载器加载所述第二操作系统。
可选地,在本实施例中,第二处理器核心可以但不限于通过执行通用引导加载器加载第二操作系统,通用引导加载器可以但不限于包括U-Boot(Universal Boot Loader)。
在一个示例性实施例中,可以但不限于采用以下方式通过所述第一处理器核心执行二级程序加载器:通过所述芯片上的引导存储器对所述二级程序加载器的代码进行安全启动检查;在检查结果为正常的情况下,通过所述第一处理器核心执行所述二级程序加载器。
可选地,在本实施例中,操作系统的引导程序可以但不限于包括二级程序加载器,可以但不限于将操作系统的引导程序作为上述引导存储器,通过引导存储器验证操作系统的引导程序包括的二级程序加载器的代码,比如:可以但不限于根据第一操作系统的引导程序(引导程序可以但不限于为BootROM)得到第一操作系统的二级程序加载器(二级程序加载器可以但不限于SPL),可以但不限于根据第一操作系统的引导存储器(引导存储器可以但不限于为BootROM)验证二级程序加载器的代码。
可选地,在本实施例中,引导存储器对二级程序加载器的代码进行安全启动检查的过程可以但不限于为:引导存储器读取二级程序加载器的代码以及验证码,通过约定的运算方式(比如哈希运算)对二级程序加载器的代码进行运算,得到运算值,再将该运算值与读取的验证码进行比对,二者一致则检查结果为正常,二者不一致则检查结果为异常。
可选地,在本实施例中,二级程序加载器也可以对通用引导加载器的代码进行安全启动检查,二级程序加载器读取通用引导加载器的代码以及验证码,通过约定的运算方式(比如哈希运算,与上述引导存储器检查二级程序加载器的运算方式可以相同也可以不同)对通用引导加载器的代码进行运算,得到运算值,再将该运算值与读取的验证码进行比对,二者一致则检查结果为正常,二者不一致则检查结果为异常。检查结果为正常的情况下,再通过所述通用引导加载器加载第二操作系统。
在一个示例性实施例中,提供了一种第一操作系统和第二操作系统启动的示例。图4是根据本申请实施例的第一操作系统和第二操作系统启动的流程图,如图4所示,以第一处理器核心为CPU0,第二处理器核心为CPU1至CPUN为例,可以但不限于通过以下方式启动第一操作系统和第二操作系统:
S402:芯片启动上电;
S404:唤醒处理器中第一操作系统的第一处理器核心CPU0;
S406:使用第一处理器核心CPU0执行第一操作系统的引导程序,可以但不限于为二级程序加载器;
S408:通过芯片上的引导存储器(可以但不限于为BootROM)对二级程序加载器的代码进行安全启动检查;
S410:检查结果为正常,通过第一处理器核心执行二级程序加载器(可以但不限于为SPL)加载第一操作系统;
S412:通过二级程序加载器唤醒第二操作系统的第二处理器核心CPU1至CPUN;
S414:通过第二处理器核心执行通用引导加载器(可以但不限于为U-Boot)加载第二操作系统。
在上述步骤S202提供的技术方案中,上述第二操作系统上可以但不限于运行了一个或者多个业务,可以但不限于根据第二操作系统的状态确定待切换至第一操作系统上运行的目标业务,比如:在第二操作系统的负载过大的情况下,可以但不限于确定从第二操作系统上运行的业务中选取待切换至第一操作系统上运行的目标业务(比如:适合第一操作系统的系统属性的业务)。或者,在第二操作系统的负载过大的情况下,可以但不限于确定使得第二操作系统负载过大的业务为待切换至第一操作系统上运行的目标业务。
或者,可以但不限于根据第二操作系统上运行的业务的状态确定待切换至第一操作系统上运行的目标业务,比如:在第二操作系统上运行的业务的状态发生变化的情况下,可以但不限于确定状态发生变化的业务为待切换至第一操作系统上运行的目标业务。
在一个示例性实施例中,可以但不限于采用以下方式通过所述第二操作系统确定所述第二操作系统上运行的业务中待切换至所述第一操作系统上运行的目标业务:通过所述第二操作系统监控所述第二操作系统上运行的业务的业务状态;在所述业务状态达到目标业务状态的情况下,从所述第二操作系统上运行的业务中获取所述目标业务。
可选地,在本实施例中,第二操作系统可以但不限于用于获取第二操作系统上运行的业务的参数,可以但不限于根据第二操作系统上运行的业务的参数确定第二操作系统上运行的业务的业务状态,比如:预先确定第二操作系统上运行的业务的参数,第二操作系统实时获取运行业务实际的参数,可以但不限于通过将预先确定的运行的业务的参数与实际运行业务的参数进行比较,从而确定第二操作系统上运行的业务的业务状态。或者,预先确定第二操作系统上运行的业务的参数,可以但不限于通过更新第二操作系统上运行的业务的参数,使得第二操作系统上运行的业务的业务状态发生变化。
可选地,在本实施例中,上述目标业务状态可以但不限于是预先确定的第二操作系统上运行的业务可能达到的状态,可以但不限于通过检测第二操作系统上运行的业务的状态确定第二操作系统上运行的业务的业务状态是否达到了目标业务状态,比如:在检测第二操作系统上运行的业务的状态发生了变化的情况下,可以但不限于认为业务的状态达到了目标业务状态,从而,可以但不限于确定状态发生了变化的业务为目标业务。
在一个示例性实施例中,可以但不限于采用以下方式通过所述第二操作系统监控所述第二操作系统上运行的业务的业务状态:通过所述第二操作系统监控所述第二操作系统上运行的业务的实时性信息,其中,所述业务状态包括所述实时性信息,所述实时性信息用于指示业务对于系统响应的实时性的要求。
可选地,在本实施例中,上述第二操作系统上运行的业务的实时性信息可以但不限于用于指示业务对于系统响应的实时性的要求,比如:业务对于系统响应时间的要求。如果业务原本要求系统响应时间为一定的时长,第二操作系统可以满足,但从某时间开始业务变化了要求的系统响应时间,如果要求的时间变长了,那么可以由第二操作系统继续执行该业务,或者也可以将该业务切换至系统响应时间更慢的操作系统上去运行,第二操作系统可以处理其他要求系统响应时间较快的业务。如果要求的时间变短了,那么可以将该业务切换至系统响应时间更快的操作系统上去运行,从而满足该业务的运行要求,不至于耽误或者妨碍业务的运行,提高业务的运行效率。
在一个示例性实施例中,可以但不限于采用以下方式通过所述第二操作系统监控所述第二操作系统上运行的业务的实时性信息:遍历所述第二操作系统上运行的业务;监控当前业务是否存在所述实时性信息的变化。
可选地,在本实施例中,第二操作系统上运行的业务可以但不限于包括多个业务,可以但不限于通过遍历第二操作系统上运行的每个业务的实时性信息从而实现监控第二操作系统中的业务是否存在实时性信息的变化。比如:以第二操作系统上运行的业务可以但不限于包括业务A,业务B和业务C为例,可以但不限于通过依次遍历业务A的实时性信息,业务B的实时性信息和业务C的实时性信息确定业务A,业务B和业务C的实时性信息是否发生变化。
在一个示例性实施例中,在所述业务状态达到目标业务状态的情况下,可以但不限于采用以下方式从所述第二操作系统上运行的业务中获取所述目标业务:将存在所述实时性信息变化的当前业务确定为所述目标业务。
可选地,在本实施例中,可以但不限于通过遍历每个业务的实时性信息将实时性信息发生变化的当前业务确定为目标业务。比如:以第二操作系统上运行的业务可以但不限于包括业务A,业务B和业务C为例,可以但不限于通过依次遍历业务A的实时性信息,业务B的实时性信息和业务C的实时性信息确定业务A,业务B和业务C的实时性信息是否发生变化,以业务A的实时性信息发生变化为例,可以但不限于确定业务A为目标业务。
可选地,在本实施例中,将存在实时性信息变化的当前业务确定为目标业务切换至第一操作系统上运行,使得各个业务能够在合适的或者满足其要求的操作系统上运行,业务与操作系统更加匹配。从而提高业务的运行效率。
在一个示例性实施例中,可以但不限于采用以下方式通过所述第二操作系统确定所述第二操作系统上运行的业务中待切换至所述第一操作系统上运行的目标业务:通过所述第二操作系统监控所述处理器中为所述第二操作系统分配的第二处理器核心的核心状态;在所述核心状态达到目标核心状态的情况下,从所述第二操作系统上运行的业务中获取所述目标业务。
可选地,在本实施例中,可以但不限于从第二操作系统所在的处理器的处理器核心中为第二操作系统分配第二处理器核心,比如:第二操作系统所在的处理器可以但不限于包括多个处理器核心(处理器核心0至处理器核心N),可以但不限于将多个处理器核心中的一个或者多个处理器核心(比如处理器核心1至处理器核心N)分配给第二操作系统作为第二操作系统的第二处理器核心。
可选地,在本实施例中,上述目标核心状态可以但不限于用于指示为第二操作系统分配的第二处理器核心为过载状态,比如:在第二处理器核心为过载状态的情况下,可以但不限于确定第二处理器核心的核心状态达到了目标核心状态。
可选地,在本实施例中,上述第二操作系统可以但不限于通过检测第二处理器核心的使用率实现监控第二操作系统的第二处理器核心的核心状态,比如:在通过检测得到第二处理器核心的占用率过大的情况下,可以但不限于确定第二操作系统的第二处理器核心的核心状态为目标核心状态。或者在通过检测得到第二处理器核心的占用率处于正常范围的情况下,可以但不限于确定第二操作系统的第二处理器核心的核心状态为正常核心状态。
可选地,在本实施例中,在第二处理器核心的核心状态达到目标核心状态时,可以但不限于从第二操作系统上运行的业务中获取目标业务,比如:在第二处理器核心的核心状态达到目标核心状态的情况下,可以但不限于确定第二操作系统上正在运行的业务为目标业务。或者,在第二处理器核心的核心状态达到目标核心状态的情况下,可以但不限于根据一定条件从第二操作系统上运行的业务中选择目标业务。
在一个示例性实施例中,可以但不限于采用以下方式通过所述第二操作系统监控所述处理器中为所述第二操作系统分配的第二处理器核心的核心状态:通过所述第二操作系统监控所述第二处理器核心的运行负载,其中,所述核心状态包括所述运行负载。
可选地,在本实施例中,可以但不限于根据第二处理器核心正在处理的进程的数量以及等待第二处理器核心处理的进程的数量之和确定上述第二处理器核心的运行负载,比如:在第二处理器核心正在处理的进程的数量以及等待第二处理器核心处理的进程的数量之和大于第二处理器核心能够正常处理的进程的数量的情况下,可以但不限于确定第二处理器核心的运行负载过大。或者,在第二处理器核心正在处理的进程的数量以及等待第二处理器核心处理的进程的数量之和小于或者等于第二处理器核心能够正常处理的进程的数量的情况下,可以但不限于确定第二处理器核心的运行负载正常。
在一个示例性实施例中,在所述核心状态达到目标核心状态的情况下,可以但不限于采用以下方式从所述第二操作系统上运行的业务中获取所述目标业务:在所述运行负载大于负载阈值的情况下,从所述第二操作系统上运行的业务中获取切换优先级最高的所述目标业务。
可选地,在本实施例中,上述负载阈值可以但不限于用于指示第二处理器核心能够处理的进程的数量的最大值,负载阈值可以但不限于是根据第二操作系统所在的处理器预先确定的。
可选地,在本实施例中,在运行负载大于负载阈值的情况下,上述目标业务可以但不限于是第二操作系统上运行的业务中切换优先级最高的业务,业务的切换优先级可以但不限于是根据业务的性质预先确定的。
在一个示例性实施例中,提供了一种判断业务的动态切换的示例。图5是根据本申请实施例的判断业务的动态切换的示意图,如图5所示,以第一操作系统为RTOS系统,第二操作系统为Linux系统为例,可以但不限于通过以下方式完成判断业务是否需要动态切换:
在RTOS系统和Linux系统都稳定运行的情况下,可以但不限于持续读取为Linux系统分配的第二处理器核心的负载情况;
当监测到第二处理器核心的运行负载大于负载阈值(可以但不限于为90%),可以但不限于在预先制定好的应用列表中选取切换优先级最高的目标业务,执行业务的动态切换流程;
可以但不限于通过遍历在Linux系统上运行的业务的业务列表,查看当前业务是否有实时性的条件变化(可以但不限于包括定时器中断、外部传感器中断等等),根据当前业务实时性的条件变化确定是否进行执行业务的动态切换流程,在需要进行执行业务的动态切换流程的情况下,对该目标业务执行业务的动态切换流程;在当前业务不需要执行业务的动态切换流程的情况下,遍历业务列表中下一个在Linux系统上运行的业务。
在完成所有业务的遍历后,回到RTOS系统和Linux系统都稳定运行的状态。
在上述步骤S204提供的技术方案中,上述目标运行环境可以但不限于用于在第一操作系统上运行目标业务,可以但不限于通过在第一操作系统上构建能够运行目标业务的目标运行环境,实现在第一操作系统上运行目标业务。
可选地,在本实施例中,业务在操作系统上的运行环境可以但不限于包括硬件环境和软件环境等等。
在一个示例性实施例中,可以但不限于采用以下方式在所述第一操作系统上生成所述目标业务的目标运行环境:通过所述第二操作系统向所述第一操作系统发送业务切换指令,其中,所述业务切换指令用于指示将所述目标业务切换至所述第一操作系统上运行;响应所述业务切换指令获取所述目标业务的业务信息;根据所述业务信息加载所述目标业务的运行资源,得到所述目标运行环境。
可选地,在本实施例中,上述业务切换指令可以但不限于用于指示将目标业务切换至第一操作系统上运行。业务切换指令中可以携带目标业务的业务信息,也可以不携带目标业务的业务信息。
可选地,在本实施例中,上述目标业务的业务信息可以但不限于用于指示目标业务正常运行所需的运行资源,可以但不限于通过加载目标业务的运行资源得到目标运行环境。
在一个示例性实施例中,可以但不限于采用以下方式通过所述第二操作系统向所述第一操作系统发送业务切换指令:通过所述第二操作系统将所述目标业务的业务信息存储至所述芯片上的内存空间中;通过所述第二操作系统向所述第一操作系统发送第一中断请求,其中,所述第一中断请求用于指示所述目标业务的所述业务信息存储在所述内存空间中。
可选地,在本实施例中,上述芯片上的内存空间可以但不限于是第一操作系统和第二操作系统都能够访问的共享内存空间,第一操作系统和第二操作系统可以但不限于通过芯片上的内存空间进行数据交互,比如:可以但不限于将目标业务的业务信息存储至芯片上的共享内存空间中,第一操作系统可以但不限于通过访问芯片上的共享内存空间获取目标业务的业务信息。
可选地,在本实施例中,上述第一中断请求可以但不限于是第二操作系统发送给第一操作系统的请求,第一中断请求可以但不限于用于指示第一操作系统访问芯片上的内存空间,第一操作系统可以但不限于根据第一中断请求访问芯片上的内存空间得到目标业务的业务信息。
在一个示例性实施例中,可以但不限于采用以下方式响应所述业务切换指令获取所述目标业务的业务信息:从所述内存空间读取所述业务信息,其中,所述业务信息包括:所述目标业务的业务标识,所述目标业务的内存空间占用量和所述目标业务所使用的硬件资源。
可选地,在本实施例中,上述业务信息可以但不限于是目标业务的信息,可以但不限于包括目标业务的业务标识,目标业务的内存空间占用量和目标业务所使用的硬件资源,第一操作系统可以但不限于根据目标业务的业务标识,目标业务的内存空间占用量和目标业务所使用的硬件资源生成目标业务的目标运行环境。
在一个示例性实施例中,提供了一种写入内存空间的目标业务的业务信息的示例。表1是根据本申请实施例的写入内存空间的目标业务的业务信息的示例,如表1所示,写入内存空间的目标业务可以但不限于包括以下业务信息:
可以但不限于包括名称是appName,大小为8字节的目标业务的业务标识;可以但不限于包括名称是MemSize,大小为8字节的目标业务的内存空间占用量;可以但不限于包括称是HardWare,大小为8字节的目标业务所使用的硬件资源。
表1
名称 大小(字节) 说明
appName 8 目标业务的业务标识
MemSize 8 目标业务的内存空间占用量
HardWare 8 目标业务所使用的硬件资源
在一个示例性实施例中,可以但不限于采用以下方式根据所述业务信息加载所述目标业务的运行资源,得到所述目标运行环境:加载所述业务信息中所包括的所述目标业务的业务标识对应的业务代码;初始化所述业务信息所包括的所述目标业务的内存空间占用量对应的内存空间,以及,所述业务信息所包括的所述目标业务所使用的硬件资源对应的硬件接口。
可选地,在本实施例中,根据上述目标业务的业务标识可以找到其对应的业务代码,第一操作系统可以但不限于通过加载目标业务的业务标识对应的业务代码实现加载目标业务的运行资源,得到所述目标运行环境。
可选地,在本实施例中,可以但不限于通过清除业务信息所包括的目标业务的内存空间占用量对应的内存空间实现初始化。
可选地,在本实施例中,可以但不限于通过重置目标业务所使用的硬件资源对应的硬件接口初始化目标业务所使用的硬件资源对应的硬件接口。
在上述步骤S206提供的技术方案中,在第二操作系统结束目标业务运行的情况下,第一操作系统可以但不限于通过在目标运行环境下运行目标业务实现将目标业务的运行从第二操作系统中切换至第一操作系统。
在一个示例性实施例中,可以但不限于采用以下方式通过所述第一操作系统在所述目标运行环境下运行所述目标业务:通过所述第一操作系统向所述第二操作系统发送第二中断请求;通过所述第二操作系统响应所述第二中断请求退出所述目标业务;通过所述第二操作系统向所述第一操作系统发送第三中断请求,其中,所述第三中断请求用于指示所述第二操作系统已释放所述目标业务;通过所述第一操作系统响应所述第三中断请求在所述目标运行环境下运行所述目标业务。
可选地,在本实施例中,第一操作系统可以但不限于通过向第二操作系统发送第二中断请求告知第二操作系统第一操作系统已经完成生成目标业务的目标运行环境,可以但不限于通过向第二操作系统发送第二中断请求指示第二操作系统退出目标业务。
可选地,在本实施例中,第二操作系统可以但不限于通过向第一操作系统发送第三中断请求告知第一操作系统第二操作系统已经完成释放目标业务,可以但不限于通过向第一操作系统发送第三中断请求指示第一操作系统在目标运行环境下运行目标业务。
在一个示例性实施例中,提供了一种业务的动态切换的示例。图6是根据本申请实施例的业务的动态切换的示意图,如图6所示,以第一操作系统为RTOS系统,第二操作系统为Linux系统为例,可以但不限于通过以下方式完成业务的动态切换:
Linux系统发送第一中断请求(可以但不限为第一次核间中断),并将要迁移的目标业务的业务信息写入共享内存中的指定地址空间;
RTOS系统检测到Linux系统发出的第一次核间中断,开始进行应用运行准备(可以但不限包括生成运行目标业务的目标运行环境):从共享内存中的指定地址空间读取业务信息;根据业务信息加载目标业务的业务标识对应的业务代码;初始化运行该目标业务需要用到的软件资源和硬件资源(可以但不限于包括硬件接口、内存空间等等);
在RTOS系统完成目标应用的运行准备的情况下,RTOS系统发起第二中断请求(可以但不限为第二次核间中断),告知Linux系统目标应用切换的准备工作已完成;
在Linux系统检测到RTOS系统发起的第二次核间中断(可以但不限为第二中断请求)的情况下,Linux系统退出目标业务;
Linux系统发送第三次核间中断(可以但不限为第三中断请求),告知RTOS系统已经退出目标业务;
在RTOS系统检测到第三次核间中断(可以但不限为第三中断请求)的情况下,RTOS系统开始运行目标业务,同时清除共享内存中的指定地址空间内目标业务的业务信息。
在一个示例性实施例中,提供了一种双系统中业务的运行切换的示例。图7是根据本申请实施例的双系统中业务的运行切换的示意图,如图7所示,以第一操作系统为RTOS系统,第二操作系统为Linux系统为例,可以但不限于通过以下方式完成双系统中业务的运行切换:
当芯片启动后,可以但不限于依次加载RTOS系统和Linux系统镜像运行,保持RTOS系统和Linux系统稳定运行。
在RTOS系统和Linux系统稳定运行的过程中,持续监控第二处理器核心的运行负载、第二处理器核心中业务等等资源的使用情况。
在Linux系统的第二处理器核心运行负载过高的情况下;或者,在Linux系统运行到某个时间点时,Linux系统中目标业务的实时性要求变高的情况下;认为系统满足了将目标业务迁移到RTOS系统的切换条件。
在认为系统满足了将目标业务迁移到RTOS系统的切换条件的情况下,Linux系统向RTOS系统发送第一中断请求(可以但不限为第一次核间中断),并且向共享内存的指定地址(可以但不限于为内存空间)写入需要迁移的目标业务的上下文等等信息(目标业务的业务信息);
在RTOS系统检测到第一次核间中断的情况下,RTOS系统从共享内存中读取需要迁移的目标业务的上下文等等信息,根据目标业务的业务信息加载目标业务的业务代码,并初始化需要用到的软件资源和硬件资源;
在完成运行目标业务的准备后,RTOS系统向Linux系统发送第二中断请求(可以但不限为第二次核间中断);
Linux系统检测到第二次核间中断,在Linux系统中退出目标业务,再发送第三中断请求(可以但不限为第三次核间中断)给RTOS系统;
RTOS系统检测到第三次核间中断,在RTOS系统中开始运行目标业务。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
在本实施例中还提供了一种业务的运行切换装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图8是根据本申请实施例的业务的运行切换装置的结构框图,如图8所示,该装置应用于芯片,第一操作系统和第二操作系统运行在所述芯片上的同一个处理器中,包括:
确定模块82,用于通过所述第二操作系统确定所述第二操作系统上运行的业务中待切换至所述第一操作系统上运行的目标业务;
生成模块84,用于在所述第一操作系统上生成所述目标业务的目标运行环境;
运行模块86,用于通过所述第一操作系统在所述目标运行环境下运行所述目标业务。
通过上述装置,通过在第一操作系统上生成能够运行目标业务的目标运行环境,实现将第二操作系统上运行的业务中待切换的目标业务切换至在第一操作系统运行,实现了动态调整目标业务运行的操作系统,操作系统上业务的运行控制更加的灵活,业务可以根据情况转移到更加适合的操作系统上运行。因此,可以解决操作系统上业务的运行效率较低的技术问题,达到提高操作系统上业务的运行效率的技术效果。
在一个示例性实施例中,所述装置还包括:
第一引导模块,用于引导所述第一操作系统启动;
第二引导模块,用于引导所述第二操作系统启动。
在一个示例性实施例中,所述第一引导模块,包括:
唤醒单元,用于所述芯片启动上电,通过所述处理器唤醒所述处理器中为所述第一操作系统分配的第一处理器核心;
执行单元,用于通过所述第一处理器核心执行所述第一操作系统的引导程序引导所述第一操作系统启动。
在一个示例性实施例中,所述执行单元,用于:通过所述第一处理器核心执行二级程序加载器,其中,所述第一操作系统的引导程序包括所述二级程序加载器;通过所述二级程序加载器加载所述第一操作系统。
在一个示例性实施例中,所述执行单元,还用于:通过所述二级程序加载器唤醒为所述第二操作系统分配的第二处理器核心;通过所述第二处理器核心执行所述第二操作系统的引导程序引导所述第二操作系统启动。
在一个示例性实施例中,所述执行单元,还用于:通过所述第二处理器核心执行通用引导加载器,其中,所述第二操作系统的引导程序包括所述通用引导加载器;通过所述通用引导加载器加载所述第二操作系统。
在一个示例性实施例中,所述执行单元,还用于:通过所述芯片上的引导存储器对所述二级程序加载器的代码进行安全启动检查;在检查结果为正常的情况下,通过所述第一处理器核心执行所述二级程序加载器。
在一个示例性实施例中,所述确定模块,包括:
第一监控单元,用于通过所述第二操作系统监控所述第二操作系统上运行的业务的业务状态;
第一获取单元,用于在所述业务状态达到目标业务状态的情况下,从所述第二操作系统上运行的业务中获取所述目标业务。
在一个示例性实施例中,所述第一监控单元,用于:通过所述第二操作系统监控所述第二操作系统上运行的业务的实时性信息,其中,所述业务状态包括所述实时性信息,所述实时性信息用于指示业务对于系统响应的实时性的要求。
在一个示例性实施例中,所述第一监控单元,还用于:遍历所述第二操作系统上运行的业务;监控当前业务是否存在所述实时性信息的变化。
在一个示例性实施例中,所述第一监控单元,还用于:将存在所述实时性信息变化的当前业务确定为所述目标业务。
在一个示例性实施例中,所述确定模块,包括:
第二监控单元,用于通过所述第二操作系统监控所述处理器中为所述第二操作系统分配的第二处理器核心的核心状态;
第二获取单元,用于在所述核心状态达到目标核心状态的情况下,从所述第二操作系统上运行的业务中获取所述目标业务。
在一个示例性实施例中,所述第二监控单元,用于:通过所述第二操作系统监控所述第二处理器核心的运行负载,其中,所述核心状态包括所述运行负载。
在一个示例性实施例中,所述第二监控单元,还用于:在所述运行负载大于负载阈值的情况下,从所述第二操作系统上运行的业务中获取切换优先级最高的所述目标业务。
在一个示例性实施例中,所述生成模块,包括:
第一发送单元,用于通过所述第二操作系统向所述第一操作系统发送业务切换指令,其中,所述业务切换指令用于指示将所述目标业务切换至所述第一操作系统上运行;
第一响应单元,用于响应所述业务切换指令获取所述目标业务的业务信息;
加载单元,用于根据所述业务信息加载所述目标业务的运行资源,得到所述目标运行环境。
在一个示例性实施例中,所述第一发送单元,用于:通过所述第二操作系统将所述目标业务的业务信息存储至所述芯片上的内存空间中;通过所述第二操作系统向所述第一操作系统发送第一中断请求,其中,所述第一中断请求用于指示所述目标业务的所述业务信息存储在所述内存空间中。
在一个示例性实施例中,所述第一发送单元,还用于:从所述内存空间读取所述业务信息,其中,所述业务信息包括:所述目标业务的业务标识,所述目标业务的内存空间占用量和所述目标业务所使用的硬件资源。
在一个示例性实施例中,所述加载单元,用于:加载所述业务信息中所包括的所述目标业务的业务标识对应的业务代码;初始化所述业务信息所包括的所述目标业务的内存空间占用量对应的内存空间,以及,所述业务信息所包括的所述目标业务所使用的硬件资源对应的硬件接口。
在一个示例性实施例中,所述运行模块,包括:
第二发送单元,用于通过所述第一操作系统向所述第二操作系统发送第二中断请求;
第二响应单元,用于通过所述第二操作系统响应所述第二中断请求退出所述目标业务;
第三发送单元,用于通过所述第二操作系统向所述第一操作系统发送第三中断请求,其中,所述第三中断请求用于指示所述第二操作系统已释放所述目标业务;
第三响应单元,用于通过所述第一操作系统响应所述第三中断请求在所述目标运行环境下运行所述目标业务。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
本申请的实施例还提供了一种芯片,其中,该芯片包括可编程逻辑电路以及可执行指令中的至少之一,该芯片在电子设备中运行,用于实现上述任一项方法实施例中的步骤。
本申请的实施例还提供了一种BMC芯片,其中,该BMC芯片可以包括:存储单元以及与存储单元连接的处理单元。存储单元用于存储程序,而处理单元用于运行该程序,以执行上述任一项方法实施例中的步骤。
本申请的实施例还提供了一种主板,其中,该主板包括:至少一个处理器;至少一个存储器,用于存储至少一个程序;当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现上述任一项方法实施例中的步骤。
本申请的实施例还提供了一种服务器,其中,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信,存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序时,实现上述任一项方法实施例中的步骤,以达到相同的技术效果。
上述服务器的通信总线可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(Extended Industry Standard Architecture,扩展工业标准结构)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。通信接口用于上述服务器与其他设备之间的通信。
存储器可以包括RAM(RandomAccessMemory,随机存取存储器),也可以包括NVM(Non-VolatileMemory,非易失性存储器),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。上述的处理器可以是通用处理器,包括CPU(CentralProcessingUnit,中央处理器)、NP(NetworkProcessor,网络处理器)等;还可以是DSP(DigitalSignalProcessing,数字信号处理器)、ASIC(ApplicationSpecificIntegratedCircuit,专用集成电路)、FPGA(Field-ProgrammableGateArray,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
针对服务器而言,服务器至少具有可扩展性高和稳定性高的特性,其中,由于企业网络是不可能长久不变的,在网络信息化的今天,如果服务器没有一定的可扩展性,则是会导致影响到企业之后的发展,影响到企业的使用,因此可拓展性是成为最为基本的特性,只有在拥有较高的可扩展性才能保证后期更好的利用,可扩展性除了硬件上的可扩展性上之外,还包含软件上的可扩展性,由于服务器的功能与计算机相比较而言还是十分复杂,因此不仅仅是在硬件配置方面,还有就是软件配置也是很重要的,想要实现更多的功能,没有全面软件支持也是没有办法想象的。
此外,由于服务器需要处理大量的数据用以支撑业务的持续性运行,因此服务器还有一个很重要的特征,即为稳定性高,如果服务器的数据传输不能稳定运行,则无疑会对业务开展造成极大的影响。
本申请的方案实现操作系统之间业务的切换,使得服务器能够合理分配各个系统上业务的运行,进而依托于业务的分配进行更加合理的性能扩展,此外,服务器无论是对软件资源进行扩展还是对硬件资源进行扩展都能够通过操作系统之间业务切换的机制合理安排业务的运行,提高了服务器的可扩展性。另外,通过操作系统之间对业务的切换运行,能够使得业务的运行更加稳定合理,提高了服务器的稳定性。
本申请的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本申请的实施例还提供了一种电子设备,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述电子设备还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本申请的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请不限制于任何特定的硬件和软件结合。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (18)

1.一种业务的运行切换方法,其特征在于,所述方法应用于芯片,第一操作系统和第二操作系统运行在所述芯片上的同一个处理器中,包括:
通过所述第二操作系统确定所述第二操作系统上运行的业务中待切换至所述第一操作系统上运行的目标业务;
在所述第一操作系统上生成所述目标业务的目标运行环境;
通过所述第一操作系统在所述目标运行环境下运行所述目标业务;
其中,所述通过所述第二操作系统确定所述第二操作系统上运行的业务中待切换至所述第一操作系统上运行的目标业务,包括:通过所述第二操作系统监控所述第二操作系统上运行的业务的业务状态;在所述业务状态达到目标业务状态的情况下,从所述第二操作系统上运行的业务中获取所述目标业务;和/或,
所述通过所述第二操作系统确定所述第二操作系统上运行的业务中待切换至所述第一操作系统上运行的目标业务,包括:通过所述第二操作系统监控所述处理器中为所述第二操作系统分配的第二处理器核心的核心状态;在所述核心状态达到目标核心状态的情况下,从所述第二操作系统上运行的业务中获取所述目标业务;
所述通过所述第二操作系统监控所述第二操作系统上运行的业务的业务状态,包括:通过所述第二操作系统监控所述第二操作系统上运行的业务的实时性信息,其中,所述业务状态包括所述实时性信息,所述实时性信息用于指示业务对于系统响应的实时性的要求;
所述通过所述第二操作系统监控所述处理器中为所述第二操作系统分配的第二处理器核心的核心状态,包括:通过所述第二操作系统监控所述第二处理器核心的运行负载,其中,所述核心状态包括所述运行负载;
所述在所述第一操作系统上生成所述目标业务的目标运行环境,包括:通过所述第二操作系统向所述第一操作系统发送业务切换指令,其中,所述业务切换指令用于指示将所述目标业务切换至所述第一操作系统上运行;响应所述业务切换指令获取所述目标业务的业务信息;根据所述业务信息加载所述目标业务的运行资源,得到所述目标运行环境;
所述通过所述第二操作系统向所述第一操作系统发送业务切换指令,包括:通过所述第二操作系统将所述目标业务的业务信息存储至所述芯片上的内存空间中;通过所述第二操作系统向所述第一操作系统发送第一中断请求,其中,所述第一中断请求用于指示所述目标业务的所述业务信息存储在所述内存空间中;
所述响应所述业务切换指令获取所述目标业务的业务信息,包括:从所述内存空间读取所述业务信息,其中,所述业务信息包括:所述目标业务的业务标识,所述目标业务的内存空间占用量和所述目标业务所使用的硬件资源;
所述根据所述业务信息加载所述目标业务的运行资源,得到所述目标运行环境,包括:加载所述业务信息中所包括的所述目标业务的业务标识对应的业务代码;初始化所述业务信息所包括的所述目标业务的内存空间占用量对应的内存空间,以及,所述业务信息所包括的所述目标业务所使用的硬件资源对应的硬件接口。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
引导所述第一操作系统启动;
引导所述第二操作系统启动。
3.根据权利要求2所述的方法,其特征在于,所述引导所述第一操作系统启动,包括:
所述芯片启动上电,通过所述处理器唤醒所述处理器中为所述第一操作系统分配的第一处理器核心;
通过所述第一处理器核心执行所述第一操作系统的引导程序引导所述第一操作系统启动。
4.根据权利要求3所述的方法,其特征在于,所述通过所述第一处理器核心执行所述第一操作系统的引导程序引导所述第一操作系统启动,包括:
通过所述第一处理器核心执行二级程序加载器,其中,所述第一操作系统的引导程序包括所述二级程序加载器;
通过所述二级程序加载器加载所述第一操作系统。
5.根据权利要求4所述的方法,其特征在于,所述引导所述第二操作系统启动,包括:
通过所述二级程序加载器唤醒为所述第二操作系统分配的第二处理器核心;
通过所述第二处理器核心执行所述第二操作系统的引导程序引导所述第二操作系统启动。
6.根据权利要求5所述的方法,其特征在于,所述通过所述第二处理器核心执行所述第二操作系统的引导程序引导所述第二操作系统启动,包括:
通过所述第二处理器核心执行通用引导加载器,其中,所述第二操作系统的引导程序包括所述通用引导加载器;
通过所述通用引导加载器加载所述第二操作系统。
7.根据权利要求4所述的方法,其特征在于,所述通过所述第一处理器核心执行二级程序加载器,包括:
通过所述芯片上的引导存储器对所述二级程序加载器的代码进行安全启动检查;
在检查结果为正常的情况下,通过所述第一处理器核心执行所述二级程序加载器。
8.根据权利要求1所述的方法,其特征在于,所述通过所述第二操作系统监控所述第二操作系统上运行的业务的实时性信息,包括:
遍历所述第二操作系统上运行的业务;
监控当前业务是否存在所述实时性信息的变化。
9.根据权利要求8所述的方法,其特征在于,所述在所述业务状态达到目标业务状态的情况下,从所述第二操作系统上运行的业务中获取所述目标业务,包括:
将存在所述实时性信息变化的当前业务确定为所述目标业务。
10.根据权利要求1所述的方法,其特征在于,所述在所述核心状态达到目标核心状态的情况下,从所述第二操作系统上运行的业务中获取所述目标业务,包括:
在所述运行负载大于负载阈值的情况下,从所述第二操作系统上运行的业务中获取切换优先级最高的所述目标业务。
11.根据权利要求1所述的方法,其特征在于,所述通过所述第一操作系统在所述目标运行环境下运行所述目标业务,包括:
通过所述第一操作系统向所述第二操作系统发送第二中断请求;
通过所述第二操作系统响应所述第二中断请求退出所述目标业务;
通过所述第二操作系统向所述第一操作系统发送第三中断请求,其中,所述第三中断请求用于指示所述第二操作系统已释放所述目标业务;
通过所述第一操作系统响应所述第三中断请求在所述目标运行环境下运行所述目标业务。
12.一种业务的运行切换装置,其特征在于,应用于芯片,第一操作系统和第二操作系统运行在所述芯片上的同一个处理器中,所述装置包括:
确定模块,用于通过所述第二操作系统确定所述第二操作系统上运行的业务中待切换至所述第一操作系统上运行的目标业务;
生成模块,用于在所述第一操作系统上生成所述目标业务的目标运行环境;
运行模块,用于通过所述第一操作系统在所述目标运行环境下运行所述目标业务;
其中,所述确定模块,包括:第一监控单元,用于通过所述第二操作系统监控所述第二操作系统上运行的业务的业务状态;第一获取单元,用于在所述业务状态达到目标业务状态的情况下,从所述第二操作系统上运行的业务中获取所述目标业务;和/或,
所述确定模块,包括:第二监控单元,用于通过所述第二操作系统监控所述处理器中为所述第二操作系统分配的第二处理器核心的核心状态;第二获取单元,用于在所述核心状态达到目标核心状态的情况下,从所述第二操作系统上运行的业务中获取所述目标业务;
所述第一监控单元,用于:通过所述第二操作系统监控所述第二操作系统上运行的业务的实时性信息,其中,所述业务状态包括所述实时性信息,所述实时性信息用于指示业务对于系统响应的实时性的要求;
所述第二监控单元,用于:通过所述第二操作系统监控所述第二处理器核心的运行负载,其中,所述核心状态包括所述运行负载;
所述生成模块,包括:第一发送单元,用于通过所述第二操作系统向所述第一操作系统发送业务切换指令,其中,所述业务切换指令用于指示将所述目标业务切换至所述第一操作系统上运行;第一响应单元,用于响应所述业务切换指令获取所述目标业务的业务信息;加载单元,用于根据所述业务信息加载所述目标业务的运行资源,得到所述目标运行环境;
所述第一发送单元,用于:通过所述第二操作系统将所述目标业务的业务信息存储至所述芯片上的内存空间中;通过所述第二操作系统向所述第一操作系统发送第一中断请求,其中,所述第一中断请求用于指示所述目标业务的所述业务信息存储在所述内存空间中;
所述所述第一发送单元,还用于:从所述内存空间读取所述业务信息,其中,所述业务信息包括:所述目标业务的业务标识,所述目标业务的内存空间占用量和所述目标业务所使用的硬件资源;
所述所述加载单元,用于:加载所述业务信息中所包括的所述目标业务的业务标识对应的业务代码;初始化所述业务信息所包括的所述目标业务的内存空间占用量对应的内存空间,以及,所述业务信息所包括的所述目标业务所使用的硬件资源对应的硬件接口。
13.一种芯片,其特征在于,所述芯片包括可编程逻辑电路以及可执行指令中的至少之一,所述芯片在电子设备中运行,用于实现权利要求1至11任一项所述的方法。
14.一种BMC芯片,其特征在于,包括:存储单元以及与所述存储单元连接的处理单元,所述存储单元用于存储程序,所述处理单元用于运行所述程序,以执行如权利要求1至11任一项所述的方法。
15.一种主板,其特征在于,包括:
至少一个处理器;
至少一个存储器,用于存储至少一个程序;
当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现如权利要求1至11任一项所述的方法。
16.一种服务器,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1至11任一项所述的方法。
17.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被处理器执行时实现权利要求1至11任一项中所述的方法的步骤。
18.一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至11任一项中所述的方法的步骤。
CN202310536664.9A 2023-05-12 2023-05-12 业务的运行切换方法、装置、存储介质及电子装置 Active CN116243996B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310536664.9A CN116243996B (zh) 2023-05-12 2023-05-12 业务的运行切换方法、装置、存储介质及电子装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310536664.9A CN116243996B (zh) 2023-05-12 2023-05-12 业务的运行切换方法、装置、存储介质及电子装置

Publications (2)

Publication Number Publication Date
CN116243996A CN116243996A (zh) 2023-06-09
CN116243996B true CN116243996B (zh) 2023-08-08

Family

ID=86635337

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310536664.9A Active CN116243996B (zh) 2023-05-12 2023-05-12 业务的运行切换方法、装置、存储介质及电子装置

Country Status (1)

Country Link
CN (1) CN116243996B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116881929B (zh) * 2023-09-06 2024-01-19 苏州浪潮智能科技有限公司 安全防护方法、装置、电子设备以及基板控制器芯片
CN116991637B (zh) * 2023-09-26 2024-02-02 苏州元脑智能科技有限公司 嵌入式系统的运行控制方法及装置、电子设备及存储介质

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103502946A (zh) * 2011-04-05 2014-01-08 高通股份有限公司 用于动态控制到便携式计算装置的多核心处理器中的多个核心的电力的方法和系统
CN106096344A (zh) * 2016-05-26 2016-11-09 南京酷派软件技术有限公司 业务执行方法、业务执行装置和终端
CN107656757A (zh) * 2016-07-25 2018-02-02 南京中兴新软件有限责任公司 操作系统切换方法及装置
CN108932160A (zh) * 2017-10-10 2018-12-04 北京猎户星空科技有限公司 多操作系统控制方法、装置、电子设备和计算机存储介质
CN110321167A (zh) * 2018-03-30 2019-10-11 厦门雅迅网络股份有限公司 车载终端的双系统并发方法及计算机可读存储介质
CN113806006A (zh) * 2020-06-12 2021-12-17 华为技术有限公司 一种异构指令集架构下异常或中断的处理方法、装置
CN114968375A (zh) * 2021-02-18 2022-08-30 Oppo广东移动通信有限公司 系统切换方法和装置、电子设备、可读存储介质
CN115357310A (zh) * 2022-10-24 2022-11-18 北京智芯微电子科技有限公司 系统启动方法、装置、电子设备和存储介质
CN115658277A (zh) * 2022-12-06 2023-01-31 苏州浪潮智能科技有限公司 一种任务调度方法、装置及电子设备和存储介质
CN115904656A (zh) * 2022-11-14 2023-04-04 南方电网数字电网研究院有限公司 应用于芯片中的状态控制方法、装置、设备及存储介质

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103502946A (zh) * 2011-04-05 2014-01-08 高通股份有限公司 用于动态控制到便携式计算装置的多核心处理器中的多个核心的电力的方法和系统
CN106096344A (zh) * 2016-05-26 2016-11-09 南京酷派软件技术有限公司 业务执行方法、业务执行装置和终端
CN107656757A (zh) * 2016-07-25 2018-02-02 南京中兴新软件有限责任公司 操作系统切换方法及装置
CN108932160A (zh) * 2017-10-10 2018-12-04 北京猎户星空科技有限公司 多操作系统控制方法、装置、电子设备和计算机存储介质
CN110321167A (zh) * 2018-03-30 2019-10-11 厦门雅迅网络股份有限公司 车载终端的双系统并发方法及计算机可读存储介质
CN113806006A (zh) * 2020-06-12 2021-12-17 华为技术有限公司 一种异构指令集架构下异常或中断的处理方法、装置
CN114968375A (zh) * 2021-02-18 2022-08-30 Oppo广东移动通信有限公司 系统切换方法和装置、电子设备、可读存储介质
CN115357310A (zh) * 2022-10-24 2022-11-18 北京智芯微电子科技有限公司 系统启动方法、装置、电子设备和存储介质
CN115904656A (zh) * 2022-11-14 2023-04-04 南方电网数字电网研究院有限公司 应用于芯片中的状态控制方法、装置、设备及存储介质
CN115658277A (zh) * 2022-12-06 2023-01-31 苏州浪潮智能科技有限公司 一种任务调度方法、装置及电子设备和存储介质

Also Published As

Publication number Publication date
CN116243996A (zh) 2023-06-09

Similar Documents

Publication Publication Date Title
CN116243996B (zh) 业务的运行切换方法、装置、存储介质及电子装置
US9996142B2 (en) Selective power management for pre-boot firmware updates
WO2019084853A1 (zh) 裸金属服务器的硬件属性发现方法和系统
US11468170B2 (en) Techniques for processor boot-up
EP1892626A2 (en) Method and apparatus for managing power from sequestered partition of a processing system
CN116627520B (zh) 基板管理控制器的系统运行方法以及基板管理控制器
CN116244229B (zh) 硬件控制器的访问方法、装置、存储介质和电子设备
CN116830082A (zh) 嵌入式系统的启动控制方法和装置、存储介质和电子设备
CN116868167A (zh) 操作系统的运行控制方法和装置,以及嵌入式系统和芯片
CN116521209B (zh) 操作系统的升级方法及装置、存储介质及电子设备
CN116302141B (zh) 串口切换方法、芯片及串口切换系统
CN116881929B (zh) 安全防护方法、装置、电子设备以及基板控制器芯片
CN116521324B (zh) 中断虚拟化处理方法、装置及电子设备
US10572151B2 (en) System and method to allocate available high bandwidth memory to UEFI pool services
US10996942B1 (en) System and method for graphics processing unit firmware updates
CN116848519A (zh) 硬件接口信号的生成方法、装置及电子设备
WO2023125482A1 (zh) 集群管理方法、设备及计算系统
CN116868170A (zh) 嵌入式系统的运行方法和装置、嵌入式系统及芯片
CN114967890B (zh) 管理计算系统的方法、可管理性控制器和机器可读介质
CN110716697B (zh) 一种信息处理方法和设备
CN117687703B (zh) 服务器的启动方法、装置、系统、存储介质和电子设备
WO2023010265A1 (en) Firmware update technologies
CN117369841A (zh) 固件激活方法、装置、相关设备及计算机可读存储介质
CN117931315A (zh) 应用于服务器的状态信息的获取方法及装置
CN117742800A (zh) 启动项启动顺序的调整方法、装置、存储介质及电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant