CN110069287A - 一种多系统共存的方法、装置及存储设备 - Google Patents
一种多系统共存的方法、装置及存储设备 Download PDFInfo
- Publication number
- CN110069287A CN110069287A CN201810070749.1A CN201810070749A CN110069287A CN 110069287 A CN110069287 A CN 110069287A CN 201810070749 A CN201810070749 A CN 201810070749A CN 110069287 A CN110069287 A CN 110069287A
- Authority
- CN
- China
- Prior art keywords
- subsystem
- run
- management module
- resource management
- chondromitiome
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4406—Loading of operating system
- G06F9/441—Multiboot arrangements, i.e. selecting an operating system to be loaded
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明公开了一种多系统共存的方法、装置及存储设备。该方法基于多核处理系统,该多核处理系统包括多核处理器,该多核处理器包括一主核及至少一副核,该方法包括:由主核运行主系统后,启动运行在主系统上的资源管理模块;由资源管理模块检测是否存在待运行的子系统;若存在待运行的子系统,由资源管理模块动态分配资源,该资源包括至少一副核,以利用已分配的至少一副核运行待运行的子系统;待运行的子系统运行结束后,由资源管理模块回收运行待运行的子系统的至少一副核。通过上述方式,本发明能够在满足子系统的实时性需求、又不浪费资源的前提下,实现主系统和子系统共存。
Description
技术领域
本发明涉及多系统领域,特别是涉及一种多系统共存的方法、装置及存储设备。
背景技术
随着电子设备能够实现越来越多的功能,越来越多的电子设备采用主系统和子系统共存的运行模式。
其中,为了实现主系统和子系统能够共存,目前的解决办法有如下四种:
1、使用额外的CPU(Central Processing Unit,处理器)和外设运行子系统。采用这种方式,需要使用多个CPU和多个外设分别运行主系统和子系统,成本高,浪费资源。
2、使用独立CPU核和外设运行子系统。采用这种方式,子系统独占的资源无法供主系统使用,浪费资源。
3、使用Hypervisor技术虚拟化硬件,来同时运行主系统和子系统。采用这种方式,子系统的指令需要经过Hypervisor层中转才能到达硬件层,实时性不够高。
4、使用LXC等软件模拟,在主系统上安装虚拟机来运行子系统。采用这种方式,虚拟机上的子系统指令需要经过虚拟机和主系统才能到达硬件,实时性更差。
因此,如何在满足子系统的实时性需求、又不浪费资源的前提下,实现主系统和子系统共存是个亟待解决的问题。
发明内容
有鉴于此,本发明提供一种多系统共存的方法、装置及存储设备。
根据本发明一实施例,本发明提供一种多系统共存的方法,该方法基于多核处理系统,该多核处理系统包括多核处理器,该多核处理器包括一主核及至少一副核,该方法包括:由主核运行主系统后,启动运行在主系统上的资源管理模块;由资源管理模块检测是否存在待运行的子系统;若存在待运行的子系统,由资源管理模块动态分配资源,该资源包括至少一副核,以利用已分配的至少一副核运行待运行的子系统;当待运行的子系统运行结束后,由资源管理模块回收运行待运行的子系统的至少一副核。
根据本发明另一实施例,本发明提供一种存储设备,其上存储有程序数据,该程序数据用于被处理器执行时实现上述的多系统共存的方法。
根据本发明又一实施例,本发明提供一种多系统共存装置,包含,存储设备,用于存储程序数据;处理器,用于执行存储设备中的程序数据以实现上述的多系统共存的方法。
本发明的有益效果是:区别于现有技术的情况,本发明的多系统共存的方法、装置及存储设备通过主系统启动后,当运行在主系统上的资源管理模块检测到存在待运行的子系统时,动态分配多核处理器中的副核以运行待运行的子系统,可以实现主系统和子系统共存的同时,保证子系统运行的实时性;当待运行的子系统运行结束时,回收运行子系统的副核并归还给主系统使用,可以节省资源。
附图说明
图1是本发明第一实施例的多系统共存的方法的流程图;
图2是图1中由资源管理模块动态分配至少一副核的一实施例的子流程图;
图3是图1中由资源管理模块回收运行待运行的子系统的至少一副核的一实施例的子流程图;
图4是本发明第二实施例的多系统共存的方法的流程图;
图5是图4中由资源管理模块动态分配内存的一实施例的子流程图;
图6是图4中由资源管理模块回收运行待运行的子系统的内存的一实施例的子流程图;
图7是本发明第三实施例的多系统共存的方法的流程图;
图8是图7中由资源管理模块动态分配外设的第一实施例的子流程图;
图9是图7中由资源管理模块回收运行待运行的子系统的外设的第一实施例的子流程图;
图10是图7中由资源管理模块动态分配外设的第二实施例的子流程图;
图11是中由资源管理模块回收运行待运行的子系统的外设的第二实施例的子流程图;
图12是本发明第四实施例的多系统共存的方法的流程图;
图13是本发明实施例的多系统共存的装置的结构示意图;
图14是本发明实施例的存储设备的结构示意图。
具体实施方式
在说明书及权利要求书当中使用了某些词汇来指称特定的组件。所属领域中的技术人员应可理解,制造商可能会用不同的名词来称呼同样的组件。本说明书及权利要求书并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的基准。在通篇说明书及权利要求书当中所提及的「包含」是开放式的用语,故应解释成「包含但不限定于」。另外,「耦接」一词在此包含任何直接及/或间接的电气耦接手段。因此,若文中描述第一装置耦接于第二装置,则代表第一装置可直接电气耦接于第二装置,或透过其它装置或耦接手段间接地电气耦接至第二装置。下面结合附图和实施例对本发明进行详细说明。
图1是本发明第一实施例的多系统共存的方法的流程图,本发明的多系统共存的方法基于多核处理系统而进行,多核处理系统包括多核处理器,多核处理器包括一主核及至少一副核。需注意的是,若有实质上相同的结果,本发明的方法并不以图1所示的流程顺序为限。如图1所示,该方法包括如下步骤:
步骤S101:由主核运行主系统后,启动运行在主系统上的资源管理模块。
在步骤S101中,在现有技术中,主系统支持多核处理器中副核的上电和断电,以达到动态节能的目的,但是副核一旦在主系统里面上电就会由主系统直接管理和调度。为了达到副核上电后能运行子系统的目标,引入资源管理模块(Resource Manager,RM),资源管理模块在主系统中运行,可以动态分配副核,以利用已分配的副核运行子系统。
需要理解的是,多核处理器中的主核可以为多核处理器中的任意处理核,其具体为主系统启动时占用的第一个处理核,主核在多核处理系统运行的过程中是不能被释放的。举例来说,当多核处理器包括CPU0、CPU1、CPU2、CPU3四个处理核时,主核可以为CPU0,也可以为CPU1,也可以为CPU2,也可以为CPU3。进一步,除主核之外的其它处理核被定义为副核,其在多核处理系统运行的过程是可以动态分配的。举例来说,当主核为CPU0时,CPU1、CPU2、CPU3均为副核。
步骤S102:由资源管理模块检测是否存在待运行的子系统。
在步骤S102中,当子系统需要运行时,子系统会向资源管理模块发送触发信号,其中,触发信号的触发方式可以为:定时中断,例如每隔30min运行一次;人为触发;高优先级紧急情况处理等。其中,当资源管理模块检测到该触发信号时,资源管理模块判定存在待运行的子系统。其中,子系统也可以理解为实时任务。
步骤S103:若存在待运行的子系统,由资源管理模块动态分配资源,该资源包括至少一副核,以利用已分配的至少一副核运行待运行的子系统。
在步骤S103中,当资源管理模块检测到存在待运行的子系统后,资源管理模块动态分配多核处理器中的副核,并对已分配的副核进行上电操作以运行子系统。
其中,待运行的子系统的运行过程包括:资源管理模块记录整个系统中子系统可能会用到的资源(例如副核等)及为每个子系统维护一份资源列表;当有待运行的子系统时,资源管理模块加载子系统运行镜像到内存,并根据需求为子系统申请资源并维护子系统信息表,同时包括优先级信息,通信方式等待,并更新系统总资源表。将资源信息表写入子系统运行镜像的约定位置,并启动子系统。子系统启动后,会使用指定的通信方式与主系统建立通信,通过定时通信来和主系统同步,以便互相监控运行状态。
步骤S104:由资源管理模块检测待运行的子系统是否运行结束。
在步骤S104中,当待运行的子系统运行后,资源管理模块可以通过核间通信机制与子系统进行通讯。其中,当子系统运行后,会通知资源管理模快启动成功。当子系统运行结束后,先通知资源管理模块即将退出,然后自行执行必要的反初始化动作,执行完毕再通知资源管理模块运行结束。
当资源管理模块接收到子系统发送的运行结束的消息时,资源管理模块判定子系统运行结束。
步骤S105:若待运行的子系统运行结束,由资源管理模块回收运行待运行的子系统的至少一副核。
在步骤S105中,当子系统运行结束后,资源管理模块回收运行待运行的子系统的副核以供主系统使用。
请一并参考图2,图2是图1中由资源管理模块动态分配至少一副核的一实施例的子流程图,如图2所示,该子流程图包括如下步骤:
步骤S201:由资源管理模块检测至少一副核中是否存在处于空闲状态的副核;若存在,执行步骤S205,否则执行步骤S202。
在步骤S201中,当资源管理模块检测到存在处于空闲状态的副核时,直接将处于空闲状态的副核分配给待运行的子系统。当资源管理模块检测到不存在处于空闲状态的副核时,则需要从主系统或其它的子系统中抢占副核。
步骤S202:判断至少一副核的使用对象中是否包括主系统,若是,执行步骤S203,否则执行步骤S204。
在步骤S202中,当资源管理模块检测到不存在处于空闲状态的副核时,进一步检测到副核的使用对象中包括主系统时,优先从主系统中抢占副核。
步骤S203:由资源管理模块利用热插拔机制关闭主系统所使用的副核,并继续执行步骤S205。
在步骤S203中,热插拔机制是指主系统在负载(loading)较低时,关闭掉不需要使用的副核以实现节电的策略,其中,热插拔机制为一种现有技术,为简约起见,在此不再赘述。
在本实施例中,关闭主系统所使用的副核的目的是告知主系统该副核已处于不可用状态,主系统的应用暂时不要使用该副核。
步骤S204:由资源管理模块根据待运行的子系统和正在运行的至少一子系统的优先级获取副核,并继续执行步骤S205。
在步骤S204中,当资源管理模块检测到不存在处于空闲状态的副核,进一步检测到副核的使用对象中不存在主系统时,从正在运行的至少一子系统中抢占副核。
其中,由资源管理模块根据待运行的子系统和正在运行的至少一子系统的优先级获取副核的步骤包括:由资源管理模块比较待运行的子系统和正在运行的至少一子系统的优先级;若待运行的子系统的优先级高于正在运行的至少一子系统中的一个的优先级,由资源管理模块回收优先级最低的子系统的副核;若待运行的子系统的优先级均低于正在运行的至少一子系统的优先级,等待正在运行的至少一子系统中的一个运行结束后获取运行结束的子系统的副核。
其中,如果正在运行的某一子系统要求运行过程中其使用的副核不被抢占,将其设定为最高优先级即可。
由资源管理模块回收优先级最低的子系统的副核的步骤包括:由资源管理模块通过核间通信机制发送结束运行的消息通知优先级最低的子系统的结束运行,优先级最低的子系统接收到结束运行的消息后退出运行以使资源管理模块回收运行优先级最低的子系统的副核。
步骤S205:由资源管理模块将副核分配给待运行的子系统。
在步骤S205中,由资源管理模块将副核分配给待运行的子系统的步骤包括:由资源管理器设置副核的状态为不可用状态(例如,进行加锁操作);由资源管理器控制上电模块对处于不可用状态的副核进行上电操作;由上电后的副核运行待运行的子系统。
其中,由资源管理器设置副核的状态为不可用状态的目的是避免主系统或其它子系统使用该副核。
其中,上电模块具体可以为电源管理模块(System Power Manager,SPM)或断电控制模块(Power Down Controller),电源管理模块或断电控制模块是多核处理器中提供的控制多核供电/断电的硬件模块,其根据具体的芯片不同,操作方式会有差异。在本实施例中,具体来说,由资源管理器控制上电模块对处于不可用状态的副核进行上电操作的步骤包括:通过电源管理模块或断电控制模块配置副核上电开始运行的位置,然后写上电时序将副核上电。
请一并参考图3,图3是图1中由资源管理模块回收运行待运行的子系统的至少一副核的一实施例的子流程图,如图3所示,该子流程图包括如下步骤:
步骤S301:由资源管理模块控制上电模块对运行待运行的子系统的至少一副核进行断电操作。
在步骤S301中,由资源管理模块控制上电模块对运行待运行的子系统的至少一副核进行断电操作的步骤包括:通过电源管理模块或断电控制模块写断电时序将副核断电。
步骤S302:由资源管理模块设置断电后的至少一副核的状态为可用状态(例如,对应上述加锁操作,可以执行解锁操作)。
在步骤S302中,当资源管理模块设置断电后的至少一副核的状态为可用状态后,主系统可以根据需要通过热插拔机制恢复对副核的使用。
通过上述方式,本发明第一实施例的多系统共存的方法通过主系统启动后,当运行在主系统上的资源管理模块检测到存在待运行的子系统时,动态分配多核处理器中的副核以运行待运行的子系统,可以实现主系统和子系统共存的同时,保证子系统运行的实时性;当资源管理模块检测到待运行的子系统运行结束时,回收运行子系统的副核并归还给主系统使用,可以节省资源。
图4是本发明第二实施例的多系统共存的方法的流程图,本发明的多系统共存的方法基于多核处理系统而进行,多核处理系统包括多核处理器和内存,多核处理器包括一主核及至少一副核。需注意的是,若有实质上相同的结果,本发明的方法并不以图4所示的流程顺序为限。
图4所示的第二实施例与图1所示的第一实施例的区别在于:
步骤S403:若存在待运行的子系统,由资源管理模块动态分配资源,该资源包括至少一副核和内存,以利用已分配的至少一副核和内存运行待运行的子系统。
步骤S405:若待运行的子系统运行结束,由资源管理模块回收运行待运行的子系统的至少一副核和内存。
也就是说,在本实施例中,除了对副核的动态分配和回收,还进一步包括对内存的动态分配和回收。其中,本发明第二实施例和本发明第一实施例中对副核的动态分配和回收相类似,为简约起见,在此不再赘述。
请一并参考图5,图5是图4中由资源管理模块动态分配内存的一实施例的子流程图。如图5所示,该子流程图包括如下步骤:
步骤S501:由资源管理模块获取待运行的子系统对空闲内存的需求量。
步骤S502:判断该需求量是否大于等于预定阈值;若是,执行步骤S503,否则执行步骤S504。
步骤S503:由资源管理模块从资源管理模块启动时预留的内存中分配该需求量的空闲内存。
在步骤S503中,当待运行的子系统对空闲内存的需求量比较大也即大于等于预定阈值时,由资源管理模块从资源管理模块启动时预留的内存区域直接分配。
其中,资源管理模块启动时预留的内存区域是为了保证当待运行的子系统需求大量物理连续内存时,可以及时获得。
步骤S504:由资源管理器检测主系统管理的内存中是否存在该需求量的空闲内存,若存在,执行步骤S510,否则执行步骤S505。
在步骤S504中,当资源管理模块检测到主系统管理的内存中存在该需求量的空闲内存时,直接将该需求量的空闲内存分配给待运行的子系统。当资源管理模块检测到主系统管理的内存中不存在该需求量的空闲内存时,则需要从主系统或其它的子系统中抢占内存。
步骤S505:由资源管理模块根据白名单回收不存在于白名单且运行于主系统上的应用所使用的内存。
在步骤S505中,白名单为主系统要求必须运行的应用的集合。换个角度来说,主系统最低要求为仅需要保留正常运行必须的程序,这些程序形成白名单。当资源管理模块检测到主系统管理的内存没有足够的空闲内存时,也即当待运行的子系统需求的内存不足时,优先杀死主系统中不存在于白名单中的应用以获得需要的内存。
步骤S506:判断空闲内存是否达到该需求量,若未达到该需求量,执行步骤S507,否则执行步骤S510;
在步骤S506中,若执行一次,判断空闲内存是否达到该需求量的步骤具体为:判断杀死主系统中不存在于白名单中的应用后获得的内存和原始的空闲内存之和是否达到该需求量。
若执行两次,判断空闲内存是否达到该需求量的步骤具体为:判断正在运行的一子系统停止运行后获得的内存、杀死主系统中不存在于白名单中的应用后获得的内存和原始的空闲内存之和是否达到该需求量。若继续执行,依此类推。
步骤S507:判断待运行的子系统的优先级是否均低于正在运行的至少一子系统的优先级,若是,执行步骤S509,否则执行步骤S508。
步骤S508:由资源管理模块回收优先级最低的子系统的内存,并执行步骤S506。
在步骤S508中,当待运行的子系统的优先级高于正在运行的至少一子系统中的一个的优先级时,由资源管理模块回收优先级最低的子系统的内存。
步骤S509:等待正在运行的至少一子系统中的一个运行结束以获取运行结束的子系统的内存,并继续执行步骤S506。
在步骤S509中,当待运行的子系统的优先级均低于正在运行的至少一子系统的优先级时,等待正在运行的至少一子系统中的一个运行结束以获取运行结束的子系统的内存。
步骤S510:由资源管理器分配该需求量的空闲内存给待运行的子系统。
在步骤S510:由资源管理模块直接从主系统管理的内存中利用malloc指令分配该需求量的空闲内存给待运行的子系统,其中,已分配的空闲内存的地址由资源管理模块告知已分配的副核以供副核使用。
其中,子系统约定只能访问其被分配的内存,至于如何访问,依赖于其具体实现,可以直接以物理地址方式访问,亦可以使用MMU(内存管理单元)访问,此时主系统不知道子系统时如何使用的。主系统默认不允许访问分配给子系统的内存,除了通信内存或其他交换内存外。
另外,当存在多个待运行的子系统时,可以根据优先级确保高优先级的子系统先分配到空闲内存后运行,也可以根据子系统的运行状态让满足预设条件的子系统先分配到空闲内存后运行。举例来说,预设条件可以为运行时间小于预定时间和/或空闲内存需求量小于预定阈值,也即可以让运行时间短和/或内存需求小的子系统先运行。
在其它实施例中,当资源管理模块没有预留的内存时,由资源管理模块直接从主系统管理的内存中分配需求量的空闲内存。也就是说,在执行步骤S501获取到待运行的子系统对空闲内存的需求量后,继续执行步骤S504~S510以从主系统管理的内存中分配需求量的空闲内存。
可以理解的是,为了满足子系统对内存的需求,当需要杀死主系统中不存在于白名单中的应用时,除了根据上述优先级杀死应用外,在杀死主系统中不存在于白名单中的应用前还可以预先计算杀死一个应用后所获取的内存是否能够满足需求,如果不能满足需求,可以直接考虑根据所需内存的大小选择杀死的应用。
请一并参考图6,图6是图4中由资源管理模块回收运行待运行的子系统的内存的一实施例的子流程图。如图6所示,该子流程图包括如下步骤:
步骤S601:判断运行待运行的子系统的内存是否分配自主系统管理的内存,若是,执行步骤S602,否则执行步骤S603。
步骤S602:由资源管理模块将运行待运行的子系统的内存释放给主系统。
在步骤S602中,当运行待运行的子系统的内存分配自主系统管理的内存,由资源管理模块利用free指令将运行待运行的子系统的内存释放给主系统。
步骤S603:由资源管理模块将运行待运行的子系统的内存回收至资源管理模块启动时预留的内存。
在步骤S603中,当运行待运行的子系统的内存分配自资源管理模块启动时预留的内存,由资源管理模块将运行待运行的子系统的内存回收至资源管理模块启动时预留的内存。
通过上述方式,本发明第二实施例的多系统共存的方法通过主系统启动后,当运行在主系统上的资源管理模块检测到存在待运行的子系统时,动态分配多核处理器中的副核和内存以运行待运行的子系统,可以实现主系统和子系统共存的同时,保证子系统运行的实时性;当资源管理模块检测到待运行的子系统运行结束时,回收运行子系统的副核和内存,可以节省副核和内存的资源。
图7是本发明第三实施例的多系统共存的方法的流程图,本发明的多系统共存的方法基于多核处理系统而进行,多核处理系统包括多核处理器、内存和外设,多核处理器包括一主核及至少一副核。需注意的是,若有实质上相同的结果,本发明的方法并不以图7所示的流程顺序为限。
图7所示的第三实施例与图4所示的第二实施例的区别在于:
步骤S703:若存在待运行的子系统,由资源管理模块动态分配资源,该资源包括至少一副核、内存和外设,以利用已分配的至少一副核、内存和外设运行待运行的子系统。
步骤S705:若待运行的子系统运行结束,由资源管理模块回收运行待运行的子系统的至少一副核、内存和外设。
也就是说,在本实施例中,除了对副核和内存的动态分配和回收,还进一步包括对外设的动态分配和回收。其中,本发明第三实施例和本发明第二实施例中对副核和内存的动态分配和回收相类似,为简约起见,在此不再赘述。
图8是图7中由资源管理模块动态分配外设的第一实施例的子流程图,该外设为待运行的子系统要求独占的外设,如图8所示,该子流程图包括如下步骤:
步骤S801:由资源管理模块判断要求独占的外设是否处于空闲状态,若是,执行步骤S806,否则执行步骤S802。
步骤S802:判断要求独占的外设的使用对象是否为主系统,若是,执行步骤S803,否则执行步骤S804;
步骤S803:判断要求独占的外设是否被主系统中的白名单中的应用所使用,若是,执行步骤S805,否则执行步骤S806;
步骤S804:判断正在使用要求独占的外设的子系统的优先级是否低于待运行的子系统,若是,执行步骤S805,否则执行步骤S806。
步骤S805:等待要求独占的外设使用结束。
步骤S806:由资源管理模块回收要求独占的外设并将要求独占的外设分配给待运行的子系统。
在步骤S806中,由资源管理模块回收要求独占的外设并将要求独占的外设分配给待运行的子系统的步骤包括:由资源管理模块将要求独占的外设标记为不可用;由资源管理模块将要求独占的外设的信息记录至待运行的子系统的资源列表中。
图9是图7中由资源管理模块回收运行待运行的子系统的外设的第一实施例的子流程图,该外设为待运行的子系统要求独占的外设,如图9所示,该子流程图包括步骤:
步骤S901:待运行的子系统反初始化运行待运行的子系统的外设。
步骤S902:由资源管理模块将关闭后的外设标记为可用。
步骤S903:由资源管理模块在待运行的子系统的资源列表中清除该外设的信息。
在本实施例中,当子系统运行结束后,先通知资源管理模块即将退出,然后自行执行必要的反初始化动作,子系统退出反初始化动作时关闭运行待运行的子系统的外设,资源管理模块收到子系统发送的外设关闭的信息后,标记该外设为可用状态,并且在待运行的子系统的资源列表中清除该外设的信息。此时,如果主系统需要使用该外设,可以重新初始化该外设后使用。
图10是图7中由资源管理模块动态分配外设的第二实施例的子流程图,该外设为待运行的子系统和主系统要求共享的外设,如图10所示,该子流程图包括如下步骤:
步骤S1001:由资源管理模块检测要求共享的外设的数量是否满足需求,若是,执行步骤S1006,否则执行步骤S1002。
在步骤S1001中,要求共享的外设可以是多个设备、也可以是一个设备的多个控制层面。
举例来说,当外设是显示设备时,其可以分为多层例如五层显示,最终显示的效果为五层的组合,每层可以分别控制如控制是否覆盖下面的层或者让下面的层可以显示。例如,主系统使用0层以显示正常桌面,子系统使用2层以显示仪表信息,两层叠加显示。步骤S1002:判断要求共享的外设的使用对象是否为主系统,若是,执行步骤S1003,否则执行步骤S1004。
步骤S1003:判断要求共享的外设是否被主系统中的白名单中的应用所使用,若是,执行步骤S1005,否则执行步骤S1006。
步骤S1004:判断正在使用要求共享的外设的子系统的优先级是否低于待运行的子系统,若是,执行步骤S1005,否则执行步骤S1006。
步骤S1005:等待要求共享的外设使用结束。
步骤S1006:由资源管理模块回收要求共享的外设并将要求共享的外设分配给待运行的子系统。
在步骤S1006中,由资源管理模块回收要求共享的外设并将要求共享的外设分配给待运行的子系统的步骤包括:由资源管理模块将要求共享的外设的使用量的计数加一;由资源管理模块将要求共享的外设的信息记录至待运行的子系统的资源列表中。
图11是图7中由资源管理模块回收运行待运行的子系统的外设的第二实施例的子流程图,该外设为待运行的子系统和主系统要求共享的外设,如图11所示,该子流程图包括步骤:
步骤S1101:待运行的子系统反初始化运行待运行的子系统的外设。
步骤S1102:由资源管理模块将要求共享的外设的使用量的计数减一。
步骤S1103:由资源管理模块在待运行的子系统的资源列表中清除外设的信息。
在本实施例中,当子系统运行结束后,先通知资源管理模块即将退出,然后自行执行必要的反初始化动作,子系统退出反初始化动作时关闭运行待运行的子系统的外设,资源管理模块收到子系统发送的外设关闭的信息后,标记该外设的使用量的计数减一,并且在在待运行的子系统的资源列表中清除该外设的信息。此时,如果主系统和其它子系统需要使用该外设,可以按照需要申请使用。
其中,当要求共享的外设是一个设备的多个控制层面时,子系统退出反初始化动作时关闭运行待运行的子系统的外设并非关闭外设的电源,而是禁用(disable)该外设中待运行的子系统使用的层面。
通过上述方式,本发明第三实施例的多系统共存的方法通过主系统启动后,当运行在主系统上的资源管理模块检测到存在待运行的子系统时,动态分配多核处理器中的副核、内存和外设以运行待运行的子系统,可以实现主系统和子系统共存的同时,保证子系统运行的实时性;当资源管理模块检测到待运行的子系统运行结束时,回收运行子系统的副核、内存和外设,可以节省资源。
图12是本发明第四实施例的多系统共存的方法的流程图,本发明的多系统共存的方法基于多核处理系统而进行,多核处理系统包括多核处理器,多核处理器包括一主核及至少一副核。需注意的是,若有实质上相同的结果,本发明的方法并不以图12所示的流程顺序为限。
图12所示的第四实施例与图1所示的第一实施例的区别在于:
步骤S1201:当待运行的子系统运行后,建立主系统和待运行的子系统的核间通信机制。
在步骤S1201中,核间通信机制是指主系统和待运行的子系统利用CPU间通信消息(IPI)进行通信。其中,主系统默认绑定主核(CPU0)IPI,子系统绑定副核(CPUX)IPI。IPI负责告诉是哪个CPU给哪个CPU发送了消息,此时具体消息未知。其中,具体消息的获取为,先依据资源表确认发消息的CPU隶属于哪个子系统,然后从对应的子系统资源列表中获取通讯消息存放的内存位置,然后解析通讯内容即可。
步骤S1202:由资源管理模块通过核间通信机制与待运行的子系统进行通讯以监控主系统和待运行的子系统的运行状态。
在步骤S102中,主系统和子系统间通过周期的IPI消息来告知对方自己的运行状态处于正常。
步骤S1203:判断主系统和待运行的子系统的运行状态是否正常,若正常,继续执行步骤S104,否则执行步骤S1204。
步骤S1204:当主系统运行正常、子系统运行异常时,主系统通过资源管理模块强制回收或重启子系统。
在步骤S1204中,当主系统在预定时间内未收到子系统消息,则判定子系统异常,主系统通过资源管理模块强制回收或重启子系统。在其它实施例中,也可以通过资源管理模块给出子系统异常的提示信息后,人工重启系统。
步骤S1205:当主系统运行异常、子系统运行正常时,在最后一个子系统运行结束时重启系统。
在步骤S1205中,当子系统在预定时间内未收到主系统消息,则判定主系统异常,此时,建立正在运行的子系统之间的核间通信机制以使子系统相互通信,直至最后一个系统运行结束时主动重启系统。在其它实施例中,也可以给出子系统给出主系统异常的提示信息后,人工重启系统。
步骤S1206:当主系统运行异常、子系统运行异常时,由硬件看门狗重启系统。
通过上述方式,本发明第四实施例的多系统共存的方法通过主系统启动后,当运行在主系统上的资源管理模块检测到存在待运行的子系统时,动态分配多核处理器中的副核以运行待运行的子系统,可以实现主系统和子系统共存的同时,保证子系统运行的实时性;当资源管理模块检测到待运行的子系统运行结束时,回收运行子系统的副核并归还给主系统使用,可以节省资源;与此同时,当待运行的子系统运行后,由资源管理模块通过核间通信机制与待运行的子系统进行通讯以监控主系统和待运行的子系统的运行状态,并根据运行状态进行异常处理,可以保证主系统和子系统正常运行。
图13是本发明实施例的多系统共存的装置的结构示意图。如图13所示,该装置300包括处理器301、与处理器301耦合的存储设备302。
存储设备302用于存储程序数据;处理器301用于执行存储设备301中的程序数据以实现上述实施例所阐述的多系统共存的方法。
图14是本发明实施例的存储设备的结构示意图。如图14所示,存储设备400存储有程序数据401,程序数据401能够被执行以实现上述实施例所阐述的多系统共存的方法。
以上所述仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种多系统共存的方法,所述方法基于多核处理系统,所述多核处理系统包括多核处理器,所述多核处理器包括一主核及至少一副核,其特征在于,所述方法包括:
由所述主核运行主系统后,启动运行在所述主系统上的资源管理模块;
由所述资源管理模块检测是否存在待运行的子系统;
若存在所述待运行的子系统,由所述资源管理模块动态分配资源,所述资源包括所述至少一副核,以利用已分配的所述至少一副核运行所述待运行的子系统;
所述待运行的子系统运行结束后,由所述资源管理模块回收运行所述待运行的子系统的所述至少一副核。
2.根据权利要求1所述的方法,其特征在于,所述由所述资源管理模块动态分配所述至少一副核的步骤包括:
由所述资源管理模块检测所述至少一副核的使用状态;
若所述至少一副核中存在处于空闲状态的副核,由所述资源管理模块将所述副核分配给所述待运行的子系统;
若所述至少一副核均处于工作状态,由所述资源管理模块检测所述至少一副核的使用对象;
若所述至少一副核的使用对象中包括所述主系统,由所述资源管理模块利用热插拔机制关闭所述主系统所使用的副核并将所述副核分配给待运行的所述子系统;
若所述至少一副核的使用对象均为正在运行的至少一子系统,由所述资源管理模块根据所述待运行的子系统和所述正在运行的至少一子系统的优先级获取副核并将所述副核分配给所述待运行的子系统。
3.根据权利要求2所述的方法,其特征在于,所述由所述资源管理模块将所述副核分配给所述待运行的子系统的步骤包括:
由所述资源管理器设置所述副核的状态为不可用状态;
由所述资源管理器控制上电模块对处于不可用状态的所述副核进行上电操作;
由上电后的所述副核运行所述待运行的子系统;
其中,所述待运行的子系统运行结束后,由所述资源管理模块控制上电模块对运行所述待运行的子系统的所述至少一副核进行断电操作,以及设置断电后的所述至少一副核的状态为可用状态。
4.根据权利要求1所述的方法,其特征在于,所述多核处理系统进一步包括内存,所述资源进一步包括内存;
若存在待运行的所述子系统,所述方法进一步包括:
由所述资源管理模块动态分配所述内存,以利用已分配的所述内存运行所述待运行的子系统;
以及,若所述待运行的子系统运行结束,所述方法进一步包括:
由所述资源管理模块回收运行所述待运行的子系统的所述内存。
5.根据权利要求4所述的方法,其特征在于,由所述资源管理模块动态分配所述内存的步骤包括:
由所述资源管理模块获取所述待运行的子系统对空闲内存的需求量;
由所述资源管理模块从所述资源管理模块启动时预留的内存中分配所述需求量的所述空闲内存;或,
由所述资源管理模块从所述主系统管理的内存中分配所述需求量的所述空闲内存。
6.根据权利要求1所述的方法,其特征在于,所述多核处理系统进一步包括外设,所述资源进一步包括外设;
若存在所述待运行的子系统,所述方法进一步包括:
由所述资源管理模块动态分配所述外设,以利用已分配的所述外设运行所述待运行的子系统;
以及,若所述待运行的子系统运行结束,所述方法进一步包括:
由所述资源管理模块回收运行所述待运行的子系统的所述外设。
7.根据权利要求6所述的方法,其特征在于,所述由所述资源管理模块动态分配所述外设的步骤包括:
判断所述待运行的子系统对所述外设的需求是需要独占或需要共享,由所述资源管理模块根据独占需求或共享需求实现所述外设的分配。
8.根据权利要求7所述的方法,其特征在于,由所述资源管理模块根据共享需求实现所述外设的分配的步骤包括:
由所述资源管理模块将要求共享的所述外设的使用量的计数加一;
由所述资源管理模块将要求共享的所述外设的信息记录至所述待运行的子系统的资源列表中;
其中,所述待运行的子系统运行结束后,由所述资源管理模块将要求共享的所述外设的使用量的计数减一,以及在所述待运行的子系统的资源列表中清除所述外设的信息。
9.一种存储设备,其上存储有程序数据,其特征在于,所述程序数据用于被处理器执行时实现权利要求1-8中任一项所述的多系统共存的方法。
10.一种多系统共存的装置,其特征在于,包含,
存储设备,用于存储程序数据;
处理器,用于执行所述存储设备中的程序数据以实现权利要求1-8中任一项所述的多系统共存的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810070749.1A CN110069287B (zh) | 2018-01-24 | 2018-01-24 | 一种多系统共存的方法、装置及存储设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810070749.1A CN110069287B (zh) | 2018-01-24 | 2018-01-24 | 一种多系统共存的方法、装置及存储设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110069287A true CN110069287A (zh) | 2019-07-30 |
CN110069287B CN110069287B (zh) | 2022-04-15 |
Family
ID=67365748
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810070749.1A Active CN110069287B (zh) | 2018-01-24 | 2018-01-24 | 一种多系统共存的方法、装置及存储设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110069287B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101035321A (zh) * | 2006-03-09 | 2007-09-12 | 中兴通讯股份有限公司 | 一种实体资源分配方法 |
CN101178666A (zh) * | 2007-12-13 | 2008-05-14 | 中兴通讯股份有限公司 | 一种异构多核间协调调度的方法及异构多核系统 |
CN102053869A (zh) * | 2009-10-29 | 2011-05-11 | 杭州华三通信技术有限公司 | 一种多操作系统的资源分配方法和装置 |
CN102929719A (zh) * | 2012-09-18 | 2013-02-13 | 中标软件有限公司 | 一种多核计算机上多操作系统的控制方法及多核计算机 |
CN104714924A (zh) * | 2013-12-12 | 2015-06-17 | 华为技术有限公司 | 一种资源控制方法和装置 |
CN106919452A (zh) * | 2015-12-28 | 2017-07-04 | 中兴通讯股份有限公司 | 多核异构系统及其硬件资源的管理方法 |
-
2018
- 2018-01-24 CN CN201810070749.1A patent/CN110069287B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101035321A (zh) * | 2006-03-09 | 2007-09-12 | 中兴通讯股份有限公司 | 一种实体资源分配方法 |
CN101178666A (zh) * | 2007-12-13 | 2008-05-14 | 中兴通讯股份有限公司 | 一种异构多核间协调调度的方法及异构多核系统 |
CN102053869A (zh) * | 2009-10-29 | 2011-05-11 | 杭州华三通信技术有限公司 | 一种多操作系统的资源分配方法和装置 |
CN102929719A (zh) * | 2012-09-18 | 2013-02-13 | 中标软件有限公司 | 一种多核计算机上多操作系统的控制方法及多核计算机 |
CN104714924A (zh) * | 2013-12-12 | 2015-06-17 | 华为技术有限公司 | 一种资源控制方法和装置 |
CN106919452A (zh) * | 2015-12-28 | 2017-07-04 | 中兴通讯股份有限公司 | 多核异构系统及其硬件资源的管理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110069287B (zh) | 2022-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104714846B (zh) | 资源处理方法、操作系统及设备 | |
CN104508634B (zh) | 虚拟机的动态资源分配 | |
CN107885666B (zh) | 一种内存管理方法和装置 | |
US10552337B2 (en) | Memory management and device | |
CN104216767B (zh) | 多线程之间访问共享数据的方法及装置 | |
JP2013506179A (ja) | 命令スレッドを組み合わせた実行の管理システムおよび管理方法 | |
CN106547612A (zh) | 一种多任务处理方法及装置 | |
WO2013148440A2 (en) | Managing coherent memory between an accelerated processing device and a central processing unit | |
CN107273231A (zh) | 分布式存储系统硬盘挂住故障检测、处理方法及装置 | |
CN102063338A (zh) | 一种请求独占资源的方法及装置 | |
CN112269641A (zh) | 一种调度方法、装置、电子设备及存储介质 | |
CN108932160A (zh) | 多操作系统控制方法、装置、电子设备和计算机存储介质 | |
CN105975327A (zh) | 在虚拟环境下减小虚拟机的抢占的方法和计算机系统 | |
CN108880898A (zh) | 主备容器系统切换方法及装置 | |
CN110162396A (zh) | 内存回收方法、装置、系统和存储介质 | |
CN103049328A (zh) | 计算机系统中内存资源分配方法 | |
CN109144714A (zh) | 内存管理方法及装置 | |
CN104077266B (zh) | 多内核操作系统实现方法和实现装置及系统 | |
CN109947489A (zh) | 基于容器的外接设备管理方法、装置、设备及存储介质 | |
CN109960569A (zh) | 一种虚拟化处理方法及装置 | |
CN105630599B (zh) | 基于32/64位混合操作系统的显存分配方法及装置 | |
CN108694083B (zh) | 一种服务器的数据处理方法和装置 | |
US8001341B2 (en) | Managing dynamically allocated memory in a computer system | |
CN105900066B (zh) | 计算机以及基于管理程序的资源调度方法 | |
CN110069287A (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 |