CN115964150A - 一种基于双实时内核的业务处理方法、系统、设备及介质 - Google Patents
一种基于双实时内核的业务处理方法、系统、设备及介质 Download PDFInfo
- Publication number
- CN115964150A CN115964150A CN202211735506.8A CN202211735506A CN115964150A CN 115964150 A CN115964150 A CN 115964150A CN 202211735506 A CN202211735506 A CN 202211735506A CN 115964150 A CN115964150 A CN 115964150A
- Authority
- CN
- China
- Prior art keywords
- real
- time
- virtual machine
- kernel
- scheduling
- 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.)
- Pending
Links
Images
Classifications
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明涉及一种基于双实时内核的业务处理方法、系统、设备及介质。本申请构建实时Linux内核与实时虚拟机监控器内核,实时Linux内核与实时虚拟机监控器内核之间建立消息共享通道;根据预设的多维任务调度策略和预设的资源分配与隔离策略,所述实时Linux内核负责操作系统层面的系统业务进程调度和资源分配,所述实时虚拟机监控器内核负责虚拟机业务的调度、设备模拟和资源的分配。通过双实时内核将任务调度分离,能有效提高任务调度的效率。通过优化的多维任务调度策略和资源分配与隔离策略控制任务调度,结合硬件优化改善系统业务和/或虚拟机业务中实时任务的调度延时和抖动。本申请提供基于方法的系统设备和介质同样能够实现上述效果。
Description
技术领域
本发明涉及虚拟化操作系统优化领域,尤其涉及一种基于双实时内核的业务处理方法、系统、设备及介质。
背景技术
随着云计算的蓬勃发展,性能敏感业务将越来越多迁移到虚拟化操作系统之上,虚拟化操作系统普遍采用普通内核,普通内核为了系统运行任务高吞吐考虑,任务调度只发生在系统调用和中断返回,这种方式导致任务的处理效率慢,无法满足时延敏感性实时任务的需求。
当前为了优化敏感业务的处理效率,有些虚拟化操作系统采用实时调度设计,实时调度的任务相比普通任务具有更高的优先级,能够相较普通任务优先执行。然而,对于更高延时敏感要求的业务,通过实时调度来处理实时任务的延时降低效果仍不理想,且容易受中断影响导致延时抖动范围很大,不稳定。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本发明提供一种基于双实时内核的业务处理方法、系统、设备及介质。
第一方面,本发明提供一种基于双实时内核的业务处理方法,包括:将Linux内核和虚拟机监控器内核修改为实时内核,在实时Linux内核与实时虚拟机监控器内核之间建立消息共享通道;根据预设的多维任务调度策略和预设的资源分配与隔离策略,所述实时Linux内核负责操作系统层面的系统业务进程调度和资源分配,所述实时虚拟机监控器内核负责虚拟机业务的调度、设备模拟和资源的分配;其中,所述实时Linux内核响应于所述虚拟机监控器实时内核请求通过所述消息共享通道提供所述虚拟机监控器实时内核依赖的内存管理和事件通知,所述实时Linux内核通过所述消息通道向所述虚拟机监控器实时内核发送虚拟机操作管理通知。
更进一步地,所述多维任务调度策略包括:通过中断例程线程化、同步机制和信号量可睡眠配合,实现内核全抢占任务调度模型;基于实时系统任务优先级继承与反转资源协调,进行资源互斥与任务阻塞协调。
更进一步地,所述内核全抢占任务调度模型通过中断例程线程化把现有的中断处理函数修改为唤醒中断的中断线程,给中断线程配置与其他线程一样的优先级,任何线程基于优先级高低进行任务调度;对于系统业务和/或虚拟机业务中的实时任务对应的线程,配置高于中断线程的优先级,实时任务能抢占中断线程以提高实时性。
更进一步地,所述内核全抢占任务调度模型通过同步机制和信号量可睡眠,使临界资源锁保护的临界资源区域可被抢占、可主动睡眠;进程使用实时互斥机制获取锁时,如果要获取锁已被占用,则将所述进程添加到等待队列,然后调用schedule进行调度;当临界资源被释放时,唤醒所述等待队列上的进程。
更进一步地,所述资源分配与隔离策略包括:
根据所述实时任务的任务量适应性地规划分配给实时任务的CPU资源,并将所述实时任务占用的硬件资源隔离免受其他任务影响;对于非实时任务,则最大化复用资源,进行分时调度。
更进一步地,针对系统非实时任务、系统实时任务、虚拟机监控器和虚拟机非实时任务、虚拟机监控器和虚拟机实时任务分配给不同的CPU处理并进行资源隔离;在资源隔离的基础上,将任务与所资源进行绑定,其中,系统任务按照范围进行模糊绑定,虚拟机监控器和虚拟机任务进行精确绑定。
更进一步地,给Linux操作系统内存配置双层大页。
更进一步地,结合硬件优化改善系统业务和/或虚拟机业务中实时任务的调度延时和抖动,所述硬件优化包括但不限于从硬件层面基于指令编码预期、分支预测、缓存预留和内存通道和频率优化提高处理性能,从硬件层面基于CPU电源管理优化、频率管理优化和降低核间中断唤醒延时提高处理性能。
第二方面,本发明提供一种基于双实时内核的任务处理系统,包括:双实时内核模块、多维任务调度策略模块、资源分配与隔离策略模块和硬件优化模块;
所述双实时内核模块提供实时Linux内核和实施虚拟机监控器内核,在实时Linux内核与实时虚拟机监控器内核之间建立消息共享通道;根据所述多维任务调度策略模块提供的多维任务调度策略和资源分配与隔离策略模块提供的资源分配与隔离策略,所述实时Linux内核负责操作系统层面的系统业务进程调度和资源分配,所述实时虚拟机监控器内核负责虚拟机业务的调度、设备模拟和资源的分配;其中,所述实时Linux内核响应于所述虚拟机监控器实时内核请求通过所述消息共享通道提供所述虚拟机监控器实时内核依赖的内存管理和事件通知,所述实时Linux内核通过所述消息通道向所述虚拟机监控器实时内核发送虚拟机操作管理通知;
所述硬件优化模块,用于通过硬件优化改善系统业务和/或虚拟机业务中实时任务的调度延时和抖动。
第三方面,本发明提供一种基于双实时内核的任务处理设备,包括:至少一处理单元、存储单元和总线单元,总线单元连接处理单元和存储单元,存储单元存储计算机程序,处理单元执行所述计算机程序实现所述的基于双实时内核的业务处理方法。
第四方面,本发明提供一种实现基于双实时内核的业务处理方法的计算机可读存储介质,所述计算机可读存储介质存储计算机程序,所述计算机程序被处理器执行时实现所述的基于双实时内核的业务处理方法。
本发明实施例提供的上述技术方案与现有技术相比具有如下优点:
本申请实现的虚拟化操作系统中,通过消息共享通道的实时Linux内核与实时虚拟机监控器内核,根据预设的多维任务调度策略和预设的资源分配与隔离策略所述实时Linux内核负责操作系统层面的系统业务进程调度和资源分配,所述实时虚拟机监控器内核负责虚拟机业务的调度、设备模拟和资源的分配。通过双实时内核将任务调度分离,能有效提高调度的效率。
所述多维任务调度策略中通过中断例程线程化把现有的中断处理函数修改为唤醒中断的中断线程,给中断线程配置与其他线程一样的优先级,任何线程基于优先级高低进行任务调度;对于系统业务和/或虚拟机业务中的实时任务对应的线程,配置高于中断线程的优先级,实时任务能抢占中断线程以提高实时性避免中断导致实时任务的调度抖动。基于实时系统任务优先级继承与反转资源协调,进行资源互斥与任务阻塞协调,有效协调实时任务阻塞。
所述资源分配与隔离策略根据所述实时任务的任务量适应性地规划分配给实时任务的CPU资源,并将所述实时任务占用的硬件资源隔离免受其他任务影响;对于非实时任务,则最大化复用资源,进行分时调度。
结合硬件优化改善系统业务和/或虚拟机业务中实时任务的调度延时和抖动。
综上,能够充分的改善时延敏感的实时任务的调度处理,大幅度改善任务延时,避免中断影响导致时延抖动不稳定的问题。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种基于双实时内核的业务处理方法的流程图;
图2为本发明实施例提供的包含实时Linux内核与实时虚拟机监控器内核的虚拟化操作系统的架构的示意图;
图3为本发明实施例提供的一种基于双实时内核的业务处理系统的示意图;
图4为本发明实施例提供的一种基于双实时内核的任务处理设备的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本申请具体实施方式中涉及到的术语及解释如下:
锁:高性能并行程序中,数据一致性访问是一个非常重要的部分,一般都是采用锁机制保护共享数据,锁机制的基本思路是在访问临界资源时,首先访问一个全局的变量(锁),通过全局变量的状态来控制线程对临界资源的访问。
互斥锁(Mutual exclusion,缩写Mutex):是一种用于多线程环境中,防止两条线程同时对同一共享资源进行读写的机制。通过将代码切片成一个一个的临界区域(critical section)实现。临界区域指的是一块对公共资源进行存取的代码。
信号量(Semaphore),是在多线程环境下使用的一种设施,用来保证两个或多个关键代码段不被并发调用。
自旋锁(spinlock):用于非阻塞型同步,具体的用于不可睡眠上下文环境访问共享数据的互斥,同一时间只有一个进程可以获得自旋锁,其他不能获得自旋锁的进程原地自旋,直到获取自旋锁。即,一个进程在获取自旋锁的时候,如果自旋锁已经被其它进程获取占用,那么该进程将循环等待,不断尝试获取自旋锁,直到自旋锁的保持者已经释放了锁而该线程获取到自旋锁才会退出循环。
读拷贝修改锁(RCUlock):用于非阻塞型同步,对于被RCUlock保护的共享数据,读者不需要获得任何锁就可以访问它,但写者在访问它时首先拷贝一个副本,然后对副本进行修改,最后使用一个回调(callback)机制在适当的时机把指向原来数据的指针替换为发生修改的副本,这个时机就是所有引用该数据的CPU都退出对共享数据的访问。
实施例1
本发明实施例提供一种基于双实时内核的业务处理方法,用于从任务调度和处理效率方面提高系统业务中实时任务和虚拟机业务中实施任务的处理速度,相比普通虚拟化操作系统调度延时在毫秒级别,应用本申请后业务调度延时可以在20us内得到响应,有了大幅的性能提升,同时调度的抖动也可以控制在15us以内。
参阅图1所示,所述一种基于双实时内核的业务处理方法的过程包括:
S100,将虚拟化操作系统的Linux内核和虚拟机监控器内核修改为实时内核,在实时Linux内核与实时虚拟机监控器内核之间建立消息共享通道。
具体实施过程中,将Linux内核修改为实时Linux内核时,需要开启内核抢占,需要将自旋锁(spinlock)和读拷贝修改锁(RCUlock)设置为可抢占,需要强制将中断例程线程化;然后重新编译Linux内核得到实时Linux内核。
具体实施过程中,将虚拟机监控器内核修改为实时虚拟机监控器内核时,需要将虚拟机监控器内核的不可抢占锁替换为可抢占锁,并增加实施模式开启参数,然后重新编译虚拟机监控器内核得到实时虚拟机监控器内核。
如图2所示,通过步骤S100构建了包含实时Linux内核与实时虚拟机监控器内核的虚拟化操作系统的架构。
S200,提供预设的多维任务调度策略和预设的资源分配与隔离策略。
其中,所述多维任务调度策略包括:
通过中断例程线程化、同步机制和信号量可睡眠配合,实现内核全抢占任务调度模型;基于实时系统任务优先级继承与反转资源协调,进行资源互斥与任务阻塞协调。具体的,所述内核全抢占任务调度模型通过中断例程线程化把现有的中断处理函数修改为唤醒中断的中断线程,给中断线程配置与其他线程一样的优先级,任何线程基于优先级高低进行任务调度;对于系统业务和/或虚拟机业务中的实时任务对应的线程,配置高于中断线程的优先级,实时任务能抢占中断线程以提高实时任务的实时性。
所述内核全抢占任务调度模型通过同步机制和信号量可睡眠,使临界资源锁保护的临界资源区域可被抢占、可主动睡眠;进程使用实时互斥机制获取锁时,如果要获取锁已被占用,则将所述进程添加到等待队列,然后调用schedule进行调度;当临界资源被释放时,唤醒所述等待队列上的进程。
在一种可行的实施方式中,设置实时任务的优先级范围为1-99,通过调用优先级配置的系统指令chrt–f–p优先级值进程号或者通过配置优先级的API实现优先级的配置int sched_setscheduler(pid_t pid,int policy,const struct sched_param*param)。
在一种可行的实施方式中,所述多维任务调度策略遵循SCHED_FIFO方式,SCHED_FIFO方式下优先级较高的实时业务将一直运行,直到更高优先级的实时任务到来或主动放弃CPU。
所述同步机制涉及到资源互斥,而所述资源互斥可能会导致高优先级实时任务被低优先级实时任务阻塞,而优先级介于两者之间的实时任务可以在高优先级任务恢复之前运行并完成,这种现象被称为优先级反转。通过优先级继承解决优先级反转出现的问题,当低优先级实时任务占有了高优先级实时任务所需要的资源从而阻塞了高优先级实时任务时,低优先级实时任务会继承高优先级实时任务的优先级,从而尽快释放资源。资源释放后,继承失效。本申请目的是对实时任务处理的优化,因此在描述优先级反转和优先级继承时,对象为实时任务。而优先级反转和继承同样对非实时任务的任务有效。
所述资源分配与隔离策略包括:
根据所述实时任务的任务量适应性地规划分配给实时任务的CPU资源,并将所述实时任务占用的硬件资源隔离免受其他任务影响;对于非实时任务,则最大化复用资源,进行分时调度。具体的,运行实时任务越多,就分配给实时任务的CPU资源及相关硬件资源就越多,剩余硬件资源给非实时任务运行即可;以保证实时任务的高效处理的同时,保证非实时任务的可处理。
作为一种优选地实施方式,CPU资源配置调用sysctl–w kernel.sched_rt_period_us=950000sysctl–w kernel.sched_rt_runtime_us=1000000指令配置分配给实时任务的CPU资源,上述指令中,分配给实时任务CPU资源比例为95%,预留给非实时任务的CPU资源为5%。
所述资源分配与隔离策略在执行资源分配过程中,将资源分配与任务、中断绑定结合。如将一个任务绑定到一个CPU上,而不再经过系统调度器进行调度,这样可以减少任务切换带来的缓存失效和调度开销;如将一个中断绑定到指定的CPU,防止中断在多个CPU间处理带来的缓存失效问题。
作为一种优选地实施方式,在具备多CPU和或多CPU核心的设备中,针对系统非实时任务、系统实时任务、虚拟机监控器和虚拟机非实时任务、虚拟机监控器和虚拟机实时任务分配给不同的CPU或CPU核心处理并进行资源隔离;在资源隔离的基础上,将任务与所资源进行绑定,其中,系统任务按照范围进行模糊绑定,虚拟机监控器和虚拟机任务进行精确绑定。
S300,基于步骤S200中的策略,所述实时Linux内核负责操作系统层面的系统业务进程调度和资源分配,所述实时虚拟机监控器内核负责虚拟机业务的调度、设备模拟和资源的分配。以实现从任务调度和处理效率方面提高系统业务中实时任务和虚拟机业务中实施任务的处理速度。其中,所述实时Linux内核响应于所述虚拟机监控器实时内核请求通过所述消息共享通道提供所述虚拟机监控器实时内核依赖的内存管理和事件通知,所述实时Linux内核通过所述消息通道向所述虚拟机监控器实时内核发送虚拟机操作管理通知。
S400,结合硬件优化改善系统业务和/或虚拟机业务中实时任务的调度延时和抖动。具体的,所述硬件优化包括但不限于从硬件层面基于指令编码预期、分支预测、缓存预留和内存通道和频率优化提高处理性能,从硬件层面基于CPU电源管理优化、频率管理优化和降低核间中断唤醒延时提高处理性能。如在BIOS中硬件开启CPU分支预测功能和指令预取功能。
作为一种可应用于本申请所述基于双实时内核的业务处理方法的优化项,给Linux操作系统内存配置双层大页。内存大页机制(Transport Huge Pages,THP),支持2MB的大页内存分配,相比常规的内存分配为4KB单元,采用双层大页一方面能够减少内存分配的次数,另一方面能够有效的减少内存回收等,避免缓存失效。
作为一种可应用于本申请所述基于双实时内核的业务处理方法的优化项,基于编译优化、缓存局部性原理,设计规律性程序分支判断或无分支代码,优化虚拟化系统的软件性能来提示实时任务处理速度。如:根据程序执行局部性原理,将系统程序和虚拟监控器进行静态编译,较少分支判断和使用likely和unlikely预测机制。
实施例2
基于所述一种基于双实时内核的业务处理方法,本发明实施例提供一种基于双实时内核的任务处理系统,参阅图3所示,包括:双实时内核模块、多维任务调度策略模块、资源分配与隔离策略模块、硬件优化模块和软件优化模块。
所述双实时内核模块提供实时Linux内核和实施虚拟机监控器内核,在实时Linux内核与实时虚拟机监控器内核之间建立消息共享通道。根据所述多维任务调度策略模块提供的多维任务调度策略和资源分配与隔离策略模块提供的资源分配与隔离策略,所述实时Linux内核负责操作系统层面的系统业务进程调度和资源分配,所述实时虚拟机监控器内核负责虚拟机业务的调度、设备模拟和资源的分配;其中,所述实时Linux内核响应于所述虚拟机监控器实时内核请求通过所述消息共享通道提供所述虚拟机监控器实时内核依赖的内存管理和事件通知,所述实时Linux内核通过所述消息通道向所述虚拟机监控器实时内核发送虚拟机操作管理通知。
所述多维任务调度策略模块通过中断例程线程化、同步机制和信号量可睡眠配合,实现内核全抢占任务调度模型;基于实时系统任务优先级继承与反转资源协调,进行资源互斥与任务阻塞协调。
所述资源分配与隔离策略模块,根据所述实时任务的任务量适应性地规划分配给实时任务的CPU资源,并将所述实时任务占用的硬件资源隔离免受其他任务影响;对于非实时任务,则最大化复用资源,进行分时调度。
所述硬件优化模块,优化硬件参数以从硬件层面基于指令编码预期、分支预测、缓存预留和内存通道和频率优化提高处理性能,从硬件层面基于CPU电源管理优化、频率管理优化和降低核间中断唤醒延时提高处理性能。
所述软件优化模块,基于编译优化、缓存局部性原理,设计规律性程序分支判断或无分支代码,优化虚拟化系统的软件性能来提示实时任务处理速度。
实施例3
本发明实施例提供一种基于双实时内核的任务处理设备,参阅图4所示,包括:至少一处理单元、存储单元和总线单元,总线单元连接处理单元和存储单元,存储单元作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的基于双实时内核的业务处理方法对应的软件程序、计算机可执行程序以及模块(例如一种基于双实时内核的任务处理系统中的双实时内核模块,多维任务调度策略模块、资源分配与隔离策略模块、硬件优化模块和软件优化模块)。处理单元通过运行存储在存储单元中的软件程序、计算机可执行程序以及模块,从而实现上述基于双实时内核的业务处理方法。
此外,存储单元可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储单元可进一步包括相对于处理单元远程设置的存储器,这些远程存储器可以通过网络连接至电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
实施例4
本发明实施例4还提供一种实现基于双实时内核的业务处理方法的计算机可读存储介质,所述计算机可读存储介质存储计算机程序,所述计算机程序被处理器执行时实现所述的基于双实时内核的业务处理方法。该方法包括:
将Linux内核和虚拟机监控器内核修改为实时内核,在实时Linux内核与实时虚拟机监控器内核之间建立消息共享通道;根据预设的多维任务调度策略和预设的资源分配与隔离策略,所述实时Linux内核负责操作系统层面的系统业务进程调度和资源分配,所述实时虚拟机监控器内核负责虚拟机业务的调度、设备模拟和资源的分配;其中,所述实时Linux内核响应于所述虚拟机监控器实时内核请求通过所述消息共享通道提供所述虚拟机监控器实时内核依赖的内存管理和事件通知,所述实时Linux内核通过所述消息通道向所述虚拟机监控器实时内核发送虚拟机操作管理通知;结合硬件优化改善系统业务和/或虚拟机业务中实时任务的调度延时和抖动。
当然,本发明实施例所提供的一种实现基于双实时内核的业务处理方法的计算机可读存储介质,其存储的计算机程序不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的基于双实时内核的业务处理方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read—Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台电子设备(可以是手机,个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
在本发明所提供的实施例中,应该理解到,所揭露的结构和方法,可以通过其它的方式实现。例如,以上所描述的结构实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,结构或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种基于双实时内核的业务处理方法,其特征在于,包括:将Linux内核和虚拟机监控器内核修改为实时内核,在实时Linux内核与实时虚拟机监控器内核之间建立消息共享通道;根据预设的多维任务调度策略和预设的资源分配与隔离策略,所述实时Linux内核负责操作系统层面的系统业务进程调度和资源分配,所述实时虚拟机监控器内核负责虚拟机业务的调度、设备模拟和资源的分配,优化改善系统业务和/或虚拟机业务中实时任务的调度延时和抖动;其中,所述实时Linux内核响应于所述虚拟机监控器实时内核请求通过所述消息共享通道提供所述虚拟机监控器实时内核依赖的内存管理和事件通知,所述实时Linux内核通过所述消息通道向所述虚拟机监控器实时内核发送虚拟机操作管理通知。
2.根据权利要求1所述的基于双实时内核的业务处理方法,其特征在于,所述多维任务调度策略包括:通过中断例程线程化、同步机制和信号量可睡眠配合,实现内核全抢占任务调度模型;基于实时系统任务优先级继承与反转资源协调,进行资源互斥与任务阻塞协调。
3.根据权利要求2所述的基于双实时内核的业务处理方法,其特征在于,所述内核全抢占任务调度模型通过中断例程线程化把现有的中断处理函数修改为唤醒中断的中断线程,给中断线程配置与其他线程一样的优先级,任何线程基于所述优先级高低进行任务调度;对于系统业务和/或虚拟机业务中的实时任务对应的线程,配置高于中断线程的优先级,实时任务能抢占中断线程以提高实时性。
4.根据权利要求2所述的基于双实时内核的业务处理方法,其特征在于,所述内核全抢占任务调度模型通过同步机制和信号量可睡眠,使临界资源锁保护的临界资源区域可被抢占、可主动睡眠;进程使用实时互斥机制获取锁时,如果要获取锁已被占用,则将所述进程添加到等待队列,然后调用schedule进行调度;当临界资源被释放时,唤醒所述等待队列上的进程。
5.根据权利要求1所述的基于双实时内核的业务处理方法,其特征在于,所述资源分配与隔离策略包括:
根据所述实时任务的任务量适应性地规划分配给实时任务的CPU资源,并将所述实时任务占用的硬件资源隔离免受其他任务影响;对于非实时任务,则最大化复用资源,进行分时调度。
6.根据权利要求5所述的基于双实时内核的业务处理方法,其特征在于,针对系统非实时任务、系统实时任务、虚拟机监控器和虚拟机非实时任务、虚拟机监控器和虚拟机实时任务分配给不同的CPU处理并进行资源隔离;在资源隔离的基础上,将任务与所资源进行绑定,其中,系统任务按照范围进行模糊绑定,虚拟机监控器和虚拟机任务进行精确绑定。
7.根据权利要求1所述的基于双实时内核的业务处理方法,其特征在于,结合硬件优化改善系统业务和/或虚拟机业务中实时任务的调度延时和抖动,所述硬件优化包括但不限于从硬件层面基于指令编码预期、分支预测、缓存预留和内存通道和频率优化提高处理性能,从硬件层面基于CPU电源管理优化、频率管理优化和降低核间中断唤醒延时提高处理性能。
8.一种基于双实时内核的任务处理系统,其特征在于,包括:双实时内核模块、多维任务调度策略模块、资源分配与隔离策略模块和硬件优化模块;
所述双实时内核模块提供实时Linux内核和实施虚拟机监控器内核,在实时Linux内核与实时虚拟机监控器内核之间建立消息共享通道;根据所述多维任务调度策略模块提供的多维任务调度策略和资源分配与隔离策略模块提供的资源分配与隔离策略,所述实时Linux内核负责操作系统层面的系统业务进程调度和资源分配,所述实时虚拟机监控器内核负责虚拟机业务的调度、设备模拟和资源的分配;其中,所述实时Linux内核响应于所述虚拟机监控器实时内核请求通过所述消息共享通道提供所述虚拟机监控器实时内核依赖的内存管理和事件通知,所述实时Linux内核通过所述消息通道向所述虚拟机监控器实时内核发送虚拟机操作管理通知;
所述硬件优化模块,用于通过硬件优化改善系统业务和/或虚拟机业务中实时任务的调度延时和抖动。
9.一种基于双实时内核的任务处理设备,其特征在于,包括:至少一处理单元、存储单元和总线单元,总线单元连接处理单元和存储单元,存储单元存储计算机程序,处理单元执行所述计算机程序实现如权利要求1-7任一所述的基于双实时内核的业务处理方法。
10.一种实现基于双实时内核的业务处理方法的计算机可读存储介质,所述计算机可读存储介质存储计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7任一所述的基于双实时内核的业务处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211735506.8A CN115964150A (zh) | 2022-12-30 | 2022-12-30 | 一种基于双实时内核的业务处理方法、系统、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211735506.8A CN115964150A (zh) | 2022-12-30 | 2022-12-30 | 一种基于双实时内核的业务处理方法、系统、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115964150A true CN115964150A (zh) | 2023-04-14 |
Family
ID=87359670
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211735506.8A Pending CN115964150A (zh) | 2022-12-30 | 2022-12-30 | 一种基于双实时内核的业务处理方法、系统、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115964150A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117112244A (zh) * | 2023-08-22 | 2023-11-24 | 电子科技大学 | 一种面向混合实时性任务集的非对称stm同步方法 |
-
2022
- 2022-12-30 CN CN202211735506.8A patent/CN115964150A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117112244A (zh) * | 2023-08-22 | 2023-11-24 | 电子科技大学 | 一种面向混合实时性任务集的非对称stm同步方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10430226B2 (en) | Dynamic virtual machine sizing | |
US9003410B2 (en) | Abstracting a multithreaded processor core to a single threaded processor core | |
EP3039540B1 (en) | Virtual machine monitor configured to support latency sensitive virtual machines | |
US7698540B2 (en) | Dynamic hardware multithreading and partitioned hardware multithreading | |
US8635615B2 (en) | Apparatus and method for managing hypercalls in a hypervisor and the hypervisor thereof | |
Cheng et al. | vScale: Automatic and efficient processor scaling for SMP virtual machines | |
US8539499B1 (en) | Symmetric multiprocessing with virtual CPU and VSMP technology | |
US20140223437A1 (en) | Method and electronic device for thread scheduling | |
Han et al. | Experimental evaluation and selection of data consistency mechanisms for hard real-time applications on multicore platforms | |
Suo et al. | Preserving i/o prioritization in virtualized oses | |
Parsons et al. | Implementing multiprocessor scheduling disciplines | |
CN111459622B (zh) | 调度虚拟cpu的方法、装置、计算机设备和存储介质 | |
WO2005048009A2 (en) | Method and system for multithreaded processing using errands | |
CN115964150A (zh) | 一种基于双实时内核的业务处理方法、系统、设备及介质 | |
Yu et al. | Colab: a collaborative multi-factor scheduler for asymmetric multicore processors | |
Al-Bayati et al. | Partitioning and selection of data consistency mechanisms for multicore real-time systems | |
Sodan | Loosely coordinated coscheduling in the context of other approaches for dynamic job scheduling: a survey | |
US20220291962A1 (en) | Stack memory allocation control based on monitored activities | |
Kim et al. | Mixed-criticality on multicore (MC2): A status report | |
Nemati et al. | Resource sharing among real-time components under multiprocessor clustered scheduling | |
Burns et al. | Supporting execution on multiprocessor platforms | |
Gait | Scheduling and process migration in partitioned multiprocessors | |
Rothberg | Interrupt handling in Linux | |
Burns et al. | Multiprocessor systems session summary | |
Takada et al. | Towards a scalable real-time kernel for function-distributed multiprocessors |
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 |