CN111381945B - 任务迁移方法及电子设备 - Google Patents
任务迁移方法及电子设备 Download PDFInfo
- Publication number
- CN111381945B CN111381945B CN201811644631.1A CN201811644631A CN111381945B CN 111381945 B CN111381945 B CN 111381945B CN 201811644631 A CN201811644631 A CN 201811644631A CN 111381945 B CN111381945 B CN 111381945B
- Authority
- CN
- China
- Prior art keywords
- core
- task
- physical
- slave
- time
- 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
Links
- 230000005012 migration Effects 0.000 title claims abstract description 211
- 238000013508 migration Methods 0.000 title claims abstract description 210
- 238000000034 method Methods 0.000 title claims abstract description 80
- 238000012545 processing Methods 0.000 claims description 24
- 238000003860 storage Methods 0.000 claims description 15
- 238000004458 analytical method Methods 0.000 abstract description 14
- 238000004590 computer program Methods 0.000 description 18
- 230000001960 triggered effect Effects 0.000 description 17
- 238000005192 partition Methods 0.000 description 14
- 238000004891 communication Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 11
- 230000003068 static effect Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 6
- 238000007726 management method Methods 0.000 description 6
- 230000006399 behavior Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000000691 measurement method Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请提供了一种任务迁移方法,该方法应用于计算机系统,计算机系统包括一个主物理核和一个或多个从物理核,该方法包括:为主物理核的任务迁移设置了确定的时间开销,即主物理核的WCET,主物理核只能在主物理核的WCET时间内将主物理核对应的多个从物理核中需迁移任务迁移至主物理核。对于每个从物理核设置了主物理核将该从物理核中的需迁移任务迁移至主物理核的时间开销,即从物理核的WCET。通过确定的任务迁移的时间开销,保证了物理核之间任务迁移的时间开销的确定性,即可以保证计算机系统的可调度性分析的准确性,还可以提高计算机系统的资源利用率。
Description
技术领域
本申请涉及计算机技术,具体涉及一种任务调度方法及电子设备。
背景技术
随着信息技术的飞速发展和应用需求的不断扩展,在统一的共享资源平台上整合多种功能已经成为当前实时系统的发展趋势。而多核处理器技术在极大程度提升处理器性能的同时,也为实时系统的综合集成化设计提供了硬件平台支持。不同功能或者说不同任务对于实时系统的关键性不一样,这种不同关键级别的任务共享硬件平台的系统可以称为混合关键性系统(mixed-criticality system,MCS),例如自动/半自动驾驶系统、航空航天控制系统。为了保证不同关键级别的任务之间不相互干扰,且任务可在截止期限前执行完毕,MCS系统设定了时间约束,例如对于周期性执行的任务,该任务的截止期限为任务下一周期开始执行的时间之前。具体的,划分了时间资源(或者称为时间分区),时间分区内的任务只能在该时间分区内执行,不同的时间分区有独立的时间段,且相互不可抢占;MCS系统限制任务在时间分区内的可执行时间,任务的可执行时间的时长为该任务的最差执行时间(worst case execution time,WCET),当任务的可执行时间耗尽,则停止当前任务的运行,选择另一个任务去运行。
为了保证MCS系统的正常运行,需要分析系统的可调度性来验证MCS系统是否满足设定的时间约束,确保系统中所有任务在运行时都可以在规定的截止期限前完成。为了保证MCS系统的可调度性分析,MCS系统中通常将所有的任务静态地分配到每个物理核上,不允许任务在不同物理核之间迁移,然而任务在实际的执行过程中并不会每次都耗尽该任务的WCET,从而产生大量的资源空闲时间段,降低了资源利用率。
发明内容
本申请提供一种任务迁移方法,可以在保证系统的可调度性分析的准确性基础上实现不同物理核之间的任务迁移,提高系统的资源利用率。
第一方面,本申请实施例提供了一种任务迁移方法,该方法应用于计算机系统,其中,该计算机系统包括一个主物理核和一个或多个从物理核,该方法包括:主物理核向一个或多个从物理核发送中断,其中,中断用于使得一个或多个从物理核中每个从物理核在第二时间内停止正在执行的任务。其中,第二时间用于表示主物理核将一个或多个从物理核中任一个从物理核中的需迁移任务迁移至主物理核的最差执行时间WCET;从物理核中需迁移的任务可以为预先设置的任务,可以为动态随机任务,或者可选任务等,主物理核可从调度信息表中获取需迁移的任务。主物理核在第一时间内将一个或多个从物理核中的一个或多个需迁移任务迁移至主物理核,其中,第一时间用于表示主物理核将一个或多个从物理核中所有需迁移任务迁移至主物理核的最差执行时间WCET,第一时间大于或等于一个或多个从物理核中每个从物理核的第二时间之和。第一时间可称为主物理核的WCET,第二时间可称为从物理核的WCET。通过第一时间和第二时间,可以实现物理核之间任务迁移的时间开销的确定性,主物理核可以在第一时间内将对应的从物理核中的需迁移任务迁移至主物理核;对于每一个从物理核中的需迁移任务,主物理核可以在第二时间内将该从物理核中的需迁移任务迁移至主物理核。第一时间和第二时间为估计的最差执行时间WCET,具体的,可采用静态方法分析任务迁移程序的WCET,静态分析可包括处理器行为分析、程序流分析和WCET计算三个步骤。
在现有技术中,如果允许物理核之间的任务迁移,可能会因为物理核的实际负载等原因导致任务迁移的时间开销波动较大,任务迁移的时间开销可能会导致无法分析系统的可调度性。任务迁移的确定性的时延可以保证任务迁移在固定时间段内执行,保证了计算机系统的可调度性分析,并且通过物理核之间的任务迁移还可以提高计算机系统的资源利用率,还可以实现物理核之间的负载均衡。
在一些可实现方式中,该方法还包括:主物理核接收任务迁移请求,任务迁移请求为应用程序发送的请求,由此任务迁移可按照用户需求触发。
在一些可实现方式中,该方法还包括:主物理核接收任务迁移请求,任务迁移请求为周期性发送的请求,定期触发任务迁移可以避免物理核长期处于资源空闲。
在一些可实现方式中,该方法还包括:主物理核获取预设的第一时间;主物理核在计时器中设置第一时间;若第一时间超时,主物理核停止迁移一个或多个从物理核中的一个或多个需迁移任务。
在一些可实现方式中,第一时间和第二时间可以定期更新。
在一些可实现方式中,该方法还包括:主物理核获取主物理核与一个或多个从物理核的对应关系;主物理核根据主物理核与一个或多个从物理核的对应关系向多个从物理核发送中断。
第二方面,本申请实施例提供了一种任务迁移方法,该方法应用于计算机系统,计算机系统包括一个主物理核和一个或多个从物理核,该方法包括:从物理核接收主物理核发送的中断,中断使得从物理核在第二时间内停止正在执行的任务,第二时间用于表示主物理核将从物理核中需迁移任务迁移至主物理核的最差执行时间WCET,从物理核为一个或多个从物理核中的任一个;从物理核在第二时间内停止执行正在执行的任务。
第三方面,本申请实施例提供了一种任务迁移装置,该装置包括:发送模块和任务迁移模块,
发送模块用于:向一个或多个从物理核发送中断,中断用于使得一个或多个从物理核中每个从物理核停止正在执行的任务直到第二时间超时,第二时间用于表示主物理核将一个或多个从物理核中任一个从物理核中的需迁移任务迁移至主物理核的最差执行时间WCET;
任务迁移模块用于:在第一时间内将一个或多个从物理核中的一个或多个需迁移任务迁移至主物理核,第一时间用于表示主物理核将一个或多个从物理核中所有需迁移任务迁移至主物理核的最差执行时间WCET,第一时间大于或等于一个或多个从物理核中每个从物理核的第二时间之和。
在一些可实现方式中,任务迁移装置还包括获取模块,获取模块用于:接收任务迁移请求,任务迁移请求为应用程序发送的请求。
在一些可实现方式中,任务迁移装置还包括获取模块,获取模块用于:接收任务迁移请求,任务迁移请求为周期性发送的请求。
在一些可实现方式中,任务迁移装置还包括计时模块,计时模块用于在计时器中设置第一时间;获取模块还用于获取预设的第一时间;任务迁移模块还用于:若第一时间超时,停止迁移一个或多个从物理核中的一个或多个需迁移任务。
在一些可实现方式中,获取模块还用于获取主物理核与一个或多个从物理核的对应关系;发送模块还用于:根据主物理核与一个或多个从物理核的对应关系向多个从物理核发送中断。
第四方面,本申请实施例提供了一种任务迁移装置,该任务迁移装置包括接收模块和处理模块,其中,接收模块用于接收主物理核发送的中断,中断使得从物理核停止正在执行的任务直到第二时间超时,第二时间用于表示主物理核将从物理核中需迁移任务迁移至主物理核的最差执行时间WCET,从物理核为主物理核的一个或多个从物理核中的任一个;处理模块用于在第二时间内停止执行正在执行的任务。
第五方面,本申请实施例提供了一种计算机系统,该计算机系统包括一个主物理核和一个或多个从物理核,其中,主物理核用于:向一个或多个从物理核发送中断,中断用于使得一个或多个从物理核中每个从物理核停止正在执行的任务直到第二时间超时,其中第二时间用于表示主物理核将一个或多个从物理核中任一个从物理核中的需迁移任务迁移至主物理核的最差执行时间WCET;在第一时间内将一个或多个从物理核中的一个或多个需迁移任务迁移至主物理核,其中第一时间用于表示主物理核将一个或多个从物理核中所有需迁移任务迁移至主物理核的最差执行时间WCET,第一时间大于或等于一个或多个从物理核中每个从物理核的第二时间之和;从物理核用于:接收主物理核发送的中断,从物理核为一个或多个从物理核中的任一个;停止执行正在执行的任务直到第二时间超时。
在一些实现方式中,主物理核还用于接收任务迁移请求,任务迁移请求为应用程序发送的请求。
在一些实现方式中,主物理核还用于接收任务迁移请求,任务迁移请求为周期性发送的请求。
在一些实现方式中,主物理核还用于:获取预设的第一时间;在计时器中设置第一时间;若第一时间超时,停止迁移一个或多个从物理核中的需迁移任务。
在一些实现方式中,主物理核还用于:获取主物理核与一个或多个从物理核的对应关系;根据主物理核与一个或多个从物理核的对应关系向多个从物理核发送中断。
第六方面,本申请实施例提供了一种电子设备,该电子设备包括处理器和存储有计算机程序的计算机可读存储介质,处理器与计算机可读存储介质耦合,计算机程序被处理器执行时实现第一方面及第一方面的任一可能的实现方式中提供的任务迁移方法。
第七方面,本申请实施例提供了一种电子设备,该电子设备包括处理器和存储有计算机程序的计算机可读存储介质,处理器与计算机可读存储介质耦合,计算机程序被处理器执行时实现第二方面及第二方面的任一可能的实现方式中提供的任务迁移方法。
第八方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现前述第一方面及第一方面的任一可能的实现方式中提供的任务迁移方法。
第九方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现前述第二方面及第一方面的任一可能的实现方式中提供的任务迁移方法。
第十方面,本申请实施例提供了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序在被处理器执行时实现前述第一方面及任意一个可能的实现方式中提供的任务迁移方法。
附图说明
图1为本申请实施例提供的通信系统结构示意图;
图2为本申请实施例提供的电子设备结构示意图;
图3为本申请实施例提供的自动驾驶系统结构示意图;
图4为本申请实施例提供的流程图;
图5为本申请实施例提供的迁移规则示意图;
图6为本申请实施例提供的物理核之间任务迁移示意图;
图7为本申请实施例提供的流程图;
图8为本申请实施例提供的流程图;
图9为本申请实施例提供的流程图。
具体实施方式
本申请各实施例提供的任务调度方法可以适用于实时系统,实时系统根据其对于实时性要求的不同,可以分为软实时和硬实时两种类型。硬实时系统指系统中的任务要有确定的可执行时间,并且任务必须在截止期限前完成,该截止期限可以为该任务下一次执行的起始时间,例如航天中的宇宙飞船的控制等就是这样的系统。软实时系统中任务也有确定的可执行时间,任务即使在截止期限到达时未完成处理也并不会带来致命的错误,例如实时多媒体系统就是一种软实时系统。
在本申请各实施例中,实时系统可以为自动或半自动驾驶系统。自动驾驶系统将传统的由人执行的对车的控制,例如转向,刹车,加速等,转化成计算机系统中的不同任务,通过计算机系统自动执行任务实现对车的控制。实时系统要求任务的执行在功能上是正确的,即任务的逻辑运算的运行结果要符合期望,例如下达转向任务的命令时最终运行结果的是对车的转向的控制;进一步的,还要求任务在执行时间上是可预测的,例如设定了刹车任务的最差执行时间WCET为10us,当前的刹车任务必须在下一个刹车任务启动前全部完成,下一个刹车任务启动的时刻是当前的刹车任务的截止期限。自动驾驶系统中的任务调度模块负责协调系统中多个任务的运行,决定任务开始执行的时刻以及任务的可执行时间,任务调度模块的调度策略决定了控制任务在执行时间上的可预测性。
图1为本申请实施例提供的通信系统,需注意,图1的系统仅仅是一种可能系统的一个示例,并且根据需要可在各种系统中的任一种系统中实现公开的实施方案。图1仅仅示出了与本申请实施例所公开的多个实现方式相关的部件。如图1所示,该系统包括电子设备10,还可以包括网络20和电子设备30。
电子设备10可以执行本申请各实施例提供的任务迁移方法。电子设备10可以是终端设备,具体的,可以是移动式或便携式并执行无线通信的各种类型的计算机系统或设备中的任一个计算机系统或设备。例如可包括移动电话或智能电话(例如iPhoneTM、基于AndroidTM的电话)、车载终端设备、便携式游戏设备(例如,Nintendo DSTM、PlayStationPortableTM、Gameboy AdvanceTM、iPhoneTM)、膝上型电脑、个人数码助理(personal digitalassistant,PDA)、便携式互联网设备、音乐播放器、数据存储设备、其他手持设备以及可穿戴设备诸如腕表、耳机、吊坠、听筒等。电子设备30可以为终端设备,或者服务器。电子设备10和电子设备30可以通过网络20通信连接,其中网络20可以为无线局域网络或移动网络。
电子设备10包括处理器101、存储器102、输入/输出接口103、显示设备104和通信接口105等部件。本领域技术人员可以理解,电子设备10可以包括比图示更多或更少的部件,或者组合某些部件。这些部件可通过一根或多根总线106或信号线进行通信,总线可以分为地址总线、数据总线、控制总线等。
处理器101可以是中央处理器(central processing unit,CPU),网络处理器(network processor,NP)或者CPU和NP的组合。处理器101还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(,programmable logic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complex programmable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。可选的,处理器101可包括一个或多个处理单元(处理单元还可称为物理核)。
存储器102还存储有除计算机程序之外的其他数据,诸如操作系统22和应用程序201运行过程中产生的数据。存储器102可以包括易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器102也可以包括非易失性存储器(non-volatile memory),例如快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);存储器202还可以包括上述种类的存储器的组合。图1中仅示出了一个存储器,当然,存储器102也可以根据需要,设置为多个存储设备。存储器102也可以是处理器101中的存储器,在此不做限制。
输入/输出接口103转发用户通过输入输出设备(例如感应器、键盘、触摸屏)输入的命令或数据。
显示设备104显示各种信息给用户。在本申请实施例中,将最终定位结果显示在定位应用的界面上。
通信接口105用于将电子设备10与其它电子设备(例如电子设备30)连接,使得电子设备10可在网络上进行通讯。例如,通信接口105可以通过有线或无线连接到网络以连接到外部其它的终端或服务器。无线通信可以使用任一通信标准或协议,包括但不限于全球定位系统(global positioning system,GPS)、全球移动通讯系统(global system ofmobile communication,GSM)、通用分组无线服务(general packet radio service,GPRS)、码分多址(code division multiple access,CDMA)、宽带码分多址(wideband codedivision multiple access,WCDMA)、长期演进(long term evolution,LTE)、电子邮件、短消息服务(short messaging service,SMS)、Wi-Fi,蓝牙(bluetooth,BT)和近场通讯(nearfield communication,NFC)等。在终端设备中,通信接口可以具体为调制解调器或者天线或者wifi模块或者GPS模块。通信接口上也可集成有处理器和存储器(包括RAM和只读存储器(read-only memory,ROM))。
进一步地,在一个实施例中,如图2所示,电子设备10从逻辑上可划分为硬件层21、操作系统22以及应用层23。硬件层21可包括如图1所示的处理器101、存储器102、输入输出接口103和通信接口104,还可以包括中断107。应用层23包括一个或多个应用程序,比如应用程序201。操作系统22作为硬件层21和应用层23之间的软件中间件,是管理和控制硬件与软件资源的计算机程序。
私有中断209用于向处理器发送中断(interrupt),使得处理器停止当前正在执行的任务。中断是指计算机运行过程中,出现某些情况时,计算机能自动停止正在运行的程序并转入处理新情况的程序,处理完毕后又返回原被暂停的程序继续运行。私有中断是多核处理器上特有的中断,私有中断发送的中断只能被对应的物理核获取和响应。私有中断209可以包括时间中断210、核间中断212和计时器213。其中,私有中断209可以位于处理器101内部,也可以位于处理器101外部。处理器101中的多个物理核中的每个物理核可具有该物理核对应的私有中断。时间中断2031可用于周期性或者定时触发核间调度模块206,使得核间调度模块206将物理核上的任务迁移至另一个物理核。计时器213用于计时任务迁移的执行时间的上限。核间中断212可用于接收任务迁移的命令后,发送中断给处理器101中的物理核,中断该物理核正在执行的任务。
操作系统22包括系统调用202、任务管理模块203和内存管理模块206。任务管理模块203可包括任务调度模块205和核间调度模块206。内存管理模块206可包括调度信息表207和迁移规则208,内存管理模块206可用于将调度信息表207和迁移规则208存储在可共享的内存区域。
系统调用202可用于为应用程序201提供调用核间调度模块206的接口,应用程序201可以通过系统调用202触发核间调度模块206执行物理核之间的任务迁移。
调度信息表207中可存储任务的信息。任务调度模块205可调用调度信息表207来获得任务的信息。
迁移规则208用于调用存储在存储器202中的迁移规则。该迁移规则包括多核处理器中物理核之间的主从关系。多个物理核中,可以设置其中一个物理核为主物理核,其他物理核为与该主物理核关联的从物理核。主物理核与从物理核的对应关系可以是预设的,主物理核与从物理核的对应关系可以反应任务迁移的方向,即任务迁移是将从物理核的任务迁移至主物理核。有对应关系的多个物理核中可存储相同的迁移规则,迁移规则在主物理核和该主物理核对应的从物理核中可以同步更新。迁移规则208还可以包括主执行单元的WCET,还可包括从执行单元的WCET,执行单元为物理核时,主执行单元的WCET是主核的WCET,从执行单元的WCET是从核的WCET。多个从物理核中的每一个从物理核的WCET为:从物理核接收到核间中断到主物理核将需迁移的任务从该从物理核迁移至主物理核的最差执行时间;主物理核的WCET为:主物理核接收时间中断或者系统调用被触发开始,到主物理核将对应的所有从物理核中每个从物理核中需迁移的任务迁移至主物理核的最差执行时间,主物理核的WCET大于或等于该主物理核对应的所有从物理核的WCET。
迁移规则208还可以包括需迁移任务的缓存首地址,需迁移的任务的缓存首地址为需迁移的任务迁移至主核后的起始地址,主核将从核中需迁移的任务迁移至迁移规则定义的缓存首地址;由于主核可迁移多个从核上的任务,主核可在主物理核的WCET超时后修改迁移规则中定义的需迁移任务的缓存首地址,避免多次迁移过程中不同任务的相互覆盖。迁移规则208还可以包括时间中断210的时间间隔。迁移规则208还可以包括核间调度模块206被系统调用202触发的次数的上限,若核间调度模块206被系统调用202的触发的次数超过上限,则不触发核间调度模块206。迁移规则208还可以包括次数重置周期,用于表示核间调度模块206被系统调用202触发的次数被重置的时间间隔。
核间调度模块206可用于根据迁移规则208执行任务的迁移。其中,主物理核的核间调度模块可以由系统调用202或者时间中断212触发,而从物理核的核间调度模块可由核间中断212触发。
图2所示的电子设备10可以具体为如图3所示的自动驾驶系统20,图3与图2相同的结构可参考图2对应的描述,在此不再赘述。图3中处理器201可包括一个主核和多个从核,例如主核201-1和从核201-2、201-3,在图3中仅显示两个从核,可以理解的是,主核201-1对应的从核可以有多个。每个物理核都由对应的任务调度模块、核间调度模块和私有中断。
如图4所示,以执行单元为物理核为例,本申请实施例提供的任务迁移方法可以包括以下步骤。可以包括四个阶段:
一、准备阶段
301:生成迁移规则
可通过辅助设计设备的软件开发工具包(software development kit,SDK)生成迁移规则。具体的,使用SDK生成XML格式的用户配置文件,再对用户配置文件进行冲突性检测,生成的迁移规则可如图5所示。迁移规则中各个参数及其对应的含义如下表1所示:
表1
以图5中名称为分区1的一组主、从物理核为例,主物理核的id为1,从物理核的id包括2和3,主物理核1是从物理核2、3的主物理核,主物理核1有两个从物理核。。主物理核1的WCET为5us,从物理核2的WCET为2us,从物理核3的WCET为2us,主物理核1与从物理核2、3通过双向链表的形式表示物理核1-3之间的关系。以10ms为周期,触发时间中断,停止主物理核1正在执行的任务,主物理核1向从物理核2和3发送核间中断。应用程序通过系统调用触发任务迁移的上限为2次,前述上限次数的重置周期为1s,1s到达时,将应用程序通过系统调用触发任务迁移的次数清零。从物理核上需迁移任务被迁移后,需迁移任务的起始地址。
从物理核的WCET和主物理核的WCET可通过分析程序代码获得。具体的,程序静态分析方法通过程序的路径信息和硬件的处理能力等信息估算出程序的WCET;动态测量方法通过运行程序以测量程序的执行时间。
302:存储迁移规则
存储迁移规则至存储器中,通过内存管理模块实现迁移规则在多个执行单元中的共享,多个执行单元均可访问该迁移规则。具体的,例如迁移规则可存储在自动驾驶车控系统的存储器中,用于自动驾驶车控系统的读取。
二、启动阶段
在系统初始化阶段,主物理核读取迁移规则,在调用信息表中注册迁移规则中的信息,具体以下步骤:
303:注册时间中断/系统调用
任务调度模块205-1首先读取迁移规则208,在调度信息表207中注册主核201-1的时间中断(图3中未在私有中断209-1中示出)和系统调用202中的其中一个或全部,使得任务调度模块205-1能够响应时间中断和系统调用202的命令;
304:注册主物理核的WCET
任务调度模块205-1根据迁移规则208中设置的主物理核的WCET,在调度信息表207中注册主核201-1的核间调度模块206-1的执行时间,该执行时间为主物理核的WCET。
305:注册核间调度模块
任务调度模块205-1还可以在调度信息表207中注册核间调度模块206-1,建立时间中断和系统调用中的至少一个与核间调度模块206-1的对应关系,使得在时间中断和系统调用中至少一个被触发时,任务调度模块205-1可以触发核间调度模块206-1。
306:使能时间中断
根据迁移规则208中设定的主、从物理核关系,在主核201-1和所有从核都完成注册之后,主核201-1的任务调度模块205-1可以使能主核201-1的私有中断209-1中的时间中断,时间中断的计时器开始计时。等计时器到达时间中断的周期后,时间中断被计时器触发,时间中断发送中断给主核201-1。
在系统初始化阶段,从核201-2读取迁移规则208,在调用信息表207中注册迁移规则中的信息,具体以下步骤:
401:注册核间中断
任务调度模块205-2首先读取迁移规则208,在调度信息表207中注册从核201-2的核间中断,使得从核201-2可以响应主核201-1发送的核间中断;
402:注册从物理核的WCET
任务调度模块205-2还可以根据迁移规则208中设置的从物理核的WCET,在调度信息表207中注册从核201-2的核间调度模块206-2的可执行时间,该可执行时间为从物理核的WCET;
403:注册核间调度器
任务调度模块205-2还可以建立核间中断2032-2与核间调度器1032-2的对应关系,使得从核201-2接收到主核201-1发送的核间中断后,停止正在执行的任务。根据迁移规则208中定义的主从物理核关系,在主核和所有从核中都完成注册之后,可通知主核201-1执行306。
三、触发阶段
对于主核,执行以下步骤:
307:接收任务迁移请求;
应用程序可通过系统调用202发送任务迁移请求给主核201-1的任务调度模块205-1,以命令主核停止正在执行的任务,将从核上的需迁移的任务迁移至主核。
在其他可实现方式中,任务迁移请求可以是一种中断,私有中断209-1中的时间中断周期性发送中断,以使得主核201-1停止正在执行的任务,将从核上的需迁移的任务迁移至主核。
可选的,还可包括以下步骤:
308:确定当前物理核为迁移规则中定义的主物理核;
309:确定该主核对应的从核中有需迁移的任务;
从核中需迁移的任务可以是预先定义好的,从核可以通过任务调度模块读取调度信息表207获取任务的信息,确定从核中是否有需迁移的任务。
310:确定系统调用次数未超过迁移规则中定义的系统调用次数的上限;
若任务迁移请求是应用程序下发的,则主核201-1中的任务调度器205-1判断通过系统调用202触发任务调度模块205-1的次数是否超过迁移规则中定义的系统调用次数的上限;若通过系统调用202触发任务调度模块205-1的次数未超过迁移规则中定义的系统调用次数的上限,则可执行311;若系统调用次数超过迁移规则中定义的系统调用次数的上限,则等待等于迁移规则中定义的系统调用次数的重置周期到达,将系统调用次数清理后,则可执行311。若任务迁移请求是时间中断周期性触发的,则执行步骤311。
311:设置主物理核的WCET并计时;
主核的任务调度模块205-1从迁移规则中读取主物理核的WCET,在主核201-1的计时器中设置主物理核的WCET,并使计时器开始计时。
四、迁移阶段
对于主核,执行以下步骤:
312:向从核发送核间中断;
主核的核间调度模块206-1从迁移规则208中获取主核对应的从核,向主核对应的多个从核发送核间中断,用于使得从核停止正在执行的任务。
313:将对应的多个从核上的需迁移的任务迁移至主核;
主核的核间调度模块206-1可获取迁移规则中定义的需迁移的任务的缓存首地址,将主核对应的多个从核的需迁移的任务迁移至主核。需迁移的任务的缓存首地址为需迁移的任务迁移至主核后的起始地址,主核将从核中需迁移的任务迁移至迁移规则定义的缓存首地址;由于主核支需迁移多个从核上的任务,主核需要在主物理核的WCET超时后修改迁移规则中定义的需迁移任务的缓存首地址,避免多次迁移过程中不同任务的相互覆盖。
314:等待主物理核的WCET超时;
若主物理核的WCET超时,则主核的核间调度模块206-1结束任务迁移。主物理核的WCET为任务迁移阶段主核进行任务迁移的可执行时间,主核只能在主物理核的WCET限定的时间段内将从核上的需迁移的任务迁移至主核。若主物理核的WCET未超时,且主核的核间调度模块206-1已完成需迁移的任务的迁移,已将从核上需迁移的任务迁移至主核,则主核等待主物理核的WCET超时。
对于从核,执行以下步骤:
404:接收主核发送的核间中断;
从核的任务调度模块205-2接收到主核发送的核间中断后,从核中断正在执行的任务,并执行步骤405-407。
405:设置从物理核的WCET并使能计时;
从核的任务调度模块205-2从迁移规则208中读取从物理核的WCET,在从核的计时器中设置从物理核的WCET,并开始计时;
406:等待从物理核的WCET超时。
若从物理核的WCET超时,则结束该从执行单元的任务迁移。
如图6所示,物理核1为物理核2和物理核3的主核,物理核2和物理核3为物理核1的从核。图中虚线代表时间轴,任务1被分配到物理核1上执行,任务2和3被分配到物理核3上执行,任务4-6被分配到物理核1上执行。因此物理核1的任务队列包括任务1,物理核2的任务队列包括任务4-6,物理核3的任务队列包括任务2-3。物理核1-3的任务队列所处的时间分区可以为同一个时间分区,也可以为不同的时间分区。在本申请实施例提供的任务迁移方法中,物理核1向物理核2与物理核3发送核间中断,使得物理核2和物理核3停止正在执行的任务,物理核1将物理核2和物理核3上的需迁移任务(任务3和任务6)迁移至物理核1。物理核1设置了物理核1的WCET,如图6所示的WCET3;物理核2设置了物理核2的WCET,如图6所示的WCET1,物理核1只能在WCET1表示的时间段内将物理核2上的需迁移任务迁移至物理核1;物理核3设置了物理核3的WCET,如图6所示的WCET2,物理核1只能在WCET2表示的时间段内将物理核3上的需迁移任务迁移至物理核1。
本申请实施例提供了一种任务迁移的方法,下面结合图6介绍该方法的步骤,如图7所示,该方法可包括以下步骤:
S501:主核接收任务迁移请求
图6中的物理核1为迁移规则中定义的主核,物理核1接收任务迁移请求,其中,任务迁移请求用于使得物理核1向物理核1对应的多个从核,如物理核2和物理核3,发送核间中断。
可选的,任务迁移请求可以为应用程序通过操作系统的系统调用模块提供的接口下发的任务迁移请求。由此可以实现任务迁移可以按照用户的需求来触发。
可选的,任务迁移请求可以为周期性发送的中断。具体的,物理核1的私有中断中的时间中断按照计时器中设定的周期,周期性的给物理核1发送中断,使得物理核1停止当前正在运行的任务。
可选的,可包括步骤S502;
S502:主核读取迁移规则;
主核读取迁移规则确定主核对应的多个从核。迁移规则可以包括主物理核与多个从物理核的对应关系,一个主物理核对应多个从物理核。迁移规则还可以包括主物理核的WCET和从物理核的WCET。在本申请实施例中,迁移规则中包括物理核1的WCET(图6中的WCET3)、物理核2的WCET(图6中的WCET1)和物理核3的WCET(图6中的WCET2)。WCET3代表物理核1完成对应的所有从核上的需迁移任务的任务迁移的时间开销;WCET1代表物理核2上的需迁移任务被迁移至物理核1的时间开销。主物理核的WCET以及从物理核的WCET可以为预设的时间,具体的,可采用静态方法分析程序的WCET,静态分析主要包括处理器行为分析、程序流分析和WCET计算三个步骤。并且主物理核与从物理核的WCET还可以周期性的进行更新。迁移规则还可以包括需迁移任务的缓存首地址,需迁移的任务从从核迁移至主核时,任务存储在该缓存首地址中,首地址还可以称为起始地址。
可选的,还包括步骤S503:主核判断多个从核中是否有需迁移任务;
若多个从核中至少一个从核中有需迁移任务,则可执行下一步骤S504;若多个从核中都没有需迁移任务,则表示迁移完成,结束方法流程。对于图6中的物理核1,物理核1判断物理核2和3中是否有需迁移的任务。具体的,物理核1可从调度信息表中获取任务的信息,调度信息表中记录了需迁移的任务。需迁移的任务可以为从核的多个任务中未执行的任务,未执行的任务可以理解为当前时刻从核没有正在执行的任务,以及从未被从核执行过的任务。需迁移任务还可以为从核的任务队列中最后一个任务,从核的任务队列表示任务的执行顺序。需迁移任务的选择还可以采用其他的方式,再此不作限定。
S504:设置主物理核的WCET并计时
主核在计时器中设置主物理核的WCET并计时,主物理核的WCET表示主物理核将对应的多个从核上的需迁移任务迁移至主物理核的可执行时间,如图6中的WCET3。主物理核的WCET大于或等于对应的多个从物理核中每个从物理核的WCET的总和,图6中的WCET3大于或等于WCET1与WCET2的总和。从物理核的WCET表示主物理核将该从物理核上的需迁移任务迁移至主物理核的可执行时间。从物理核的WCET和主物理核的WCET可通过分析程序代码获得。具体的,程序静态分析方法通过程序的路径信息和硬件的处理能力等信息估算出程序的WCET;动态测量方法为通过运行程序以测量程序的执行时间。
S505:主核向多个从核发送核间中断;
主核向该主核对应的多个从核分别发送核间中断,核间中断用于使得从核停止正在执行的任务。主核可根据迁移规则中定义的主核对应的多个从核,配置核间中断,并向对应的多个从核分别发送核间中断,使得从核停止当前正在执行的任务。
S506:主核将多个从核上的需迁移的任务迁移至主核;
主核将多个从核中每个从核上需迁移的任务迁移至主核,例如图6中,物理核1将物理核2和物理核3上的需迁移任务(任务3和任务6)迁移至物理核1。具体的,迁移至迁移规则中定义的缓存首地址,缓存首地址为需迁移的任务迁移至主核后的起始地址,主核从从核中将需迁移的任务迁移至迁移规则定义的缓存首地址。
S507:等待主物理核的WCET超时;
在主物理核的WCET时间内,主核可以执行步骤S506。若主物理核的WCET超时,不论主核是否将对应的多个从核上的所有需迁移任务迁移至主核,主核将停止执行任务迁移。主核可以继续执行因核间中断而停止执行的任务,或者主核可以执行任务队列中的下一个任务。
可选的,该方法还包括S508:修改迁移规则中的缓存首地址
主核可在主物理核的WCET超时后修改迁移规则中定义的需迁移任务的缓存首地址,避免多次执行任务迁移的过程中不同任务的相互覆盖。
步骤S508之后,还可以继续执行步骤S503,若判断主核对应的多个从核中有需迁移的任务,则继续执行步骤S504-508;若判断主核对应的多个从核中没有需迁移的任务,则结束本方法。
在本申请实施例中,步骤S501-504以及S508可以由主核的任务调度模块执行,步骤S505-507可以由主核的核间调度模块执行。
本申请实施例还提供了一种任务迁移的方法,如图8所示,该方法可包括以下步骤:
S601:从核接收到主核发送的核间中断;
从核接收到主核发送的核间中断,从核停止当前正在执行的任务;
S602:从核读取迁移规则;
S603:设置从物理核的WCET并计时;
从核在计时器中设置从物理核的WCET并计时。从物理核的WCET表示主物理核将该从物理核上的需迁移任务迁移至主物理核的可执行时间。
S604:等待从物理核的WCET超时;
在从物理核的WCET时间内,主核可以执行步骤S506将从核上的需迁移任务迁移至主核,例如,图6中物理核1可以在物理核3的WCET2时间内将物理核3的需迁移任务—任务3迁移至物理核3。若从物理核的WCET超时,不论主核是否将该从核上的需迁移任务迁移至主核,主核将停止执行迁移该从核上的需迁移任务,例如物理核1在物理核3的WCET2时间内未将物理核3的需迁移任务—任务3迁移至物理核3,物理核1将停止迁移任务3。从核可以继续执行因核间中断而停止执行的任务,或者从核可以执行任务队列中的下一个任务。
本申请实施例的任务迁移方法,可以通过不同物理核之间的任务迁移,提高物理核之间的负载均衡,提高系统整体的资源利用率。通过设置主、从物理核,确定了核间迁移的方向,减少核间迁移的不确定性;并且,分别设置了主、从物理核的可执行时间(主物理核的WCET和从物理核的WCET),减少了任务迁移的时间开销的不确定性,保证了对实时系统的可调度性分析的准确性。
本申请实施例提供了一种任务迁移方法,该方法是在不同时间分区中的任务队列之间任务迁移,不同时间分区中的任务队列可以存在于同一个物理核上,也可以存在于不同物理核上,同一个物理核上的不同时间分区中的任务队列按照预先定义好的顺序执行。若不同时间分区中的任务队列存在于不同物理核上,则任务迁移方法可参考上述主核与从核之间的任务迁移。若不同时间分区中的任务队列存在于同一个物理核上,则如图9所示,该任务迁移方法可包括以下步骤:
在本申请实施例中,将需迁移任务所在的任务队列称为从任务队列,需迁移任务至从任务队列中被迁移至主任务队列。
S701:接收任务迁移请求
任务调度模块接收任务迁移请求,其中,任务迁移请求用于命令主任务队列将从任务队列中的需迁移任务迁移至从任务队列。
可选的,任务迁移请求可以为应用程序通过操作系统的系统调用模块提供的接口下发的任务迁移请求。由此可以实现任务迁移可以按照用户的需求来触发。
可选的,任务迁移请求可以为周期性发送的中断。具体的,处理器的私有中断中的时间中断按照计时器中设定的周期,周期性的给处理器发送中断,使得处理器停止主任务队列中当前正在运行的任务。
可选的,可包括步骤S702;
S702:读取迁移规则;
任务调度模块读取迁移规则确定主任务队列对应的多个从任务队列。迁移规则可以包括主任务队列与多个从任务队列的对应关系,一个主任务队列对应多个从任务队列。迁移规则还可以包括主任务队列的WCET和从任务队列的WCET。主任务队列的WCET代表主任务队列将对应的所有从任务队列上的需迁移任务迁移至主任务队列的时间开销;从任务队列的WCET代表从任务队列上的需迁移任务被迁移至主任务队列的时间开销。主任务队列的WCET以及从任务队列的WCET可以为预设的时间,具体的,可采用静态方法分析程序的WCET,静态分析主要包括处理器行为分析、程序流分析和WCET计算三个步骤。并且主任务队列与从任务队列各自的WCET还可以周期性的进行更新。迁移规则还可以包括需迁移任务的缓存首地址,从任务队列中需迁移的任务被迁移至主任务队列时,任务存储在该缓存首地址中,首地址还可以称为起始地址。
可选的,还包括步骤S703:判断多个从任务队列中是否有需迁移任务;
若主任务队列对应的多个从任务队列中至少一个从任务队列中有需迁移任务,则可执行下一步骤S704;若多个从任务队列中都没有需迁移任务,则可表示迁移完成,结束方法流程。具体的,任务调度模块可从调度信息表中获取任务的信息,调度信息表中记录了需迁移的任务。需迁移的任务可以为从任务队列的多个任务中未执行的任务,未执行的任务可以理解为当前时刻未正在执行的任务,以及从未被执行过的任务。需迁移任务还可以为从任务队列中最后一个任务,任务队列表示任务的执行顺序。需迁移任务的选择还可以采用其他的方式,在此不作限定。
S704:设置主任务队列的WCET并计时
任务调度模块在计时器中设置主任务队列的WCET并计时,主任务队列的WCET表示主任务队列将对应的多个从任务队列上的需迁移任务迁移至主任务队列的可执行时间。主任务队列的WCET大于或等于对应的多个从任务队列中每个从任务队列的WCET的总和。从任务队列的WCET表示主任务队列将该从任务队列上的需迁移任务迁移至主任务队列的可执行时间。从任务队列的WCET和主任务队列的WCET可通过分析程序代码获得。具体的,程序静态分析方法通过程序的路径信息和硬件的处理能力等信息估算出程序的WCET;动态测量方法为通过运行程序以测量程序的执行时间。
S705:判断从任务队列是否在当前核上
核间调度模块判断主任务队列对应的从任务队列是否在执行上述方法步骤的物理核上,换句话说,判断主任务队列对应的从任务队列与主任务队列是否在同一个物理核上,若从任务队列在当前核上,则表示从任务队列与主任务队列在同一个物理核上,执行步骤S706;若从任务队列不在当前核上,则从任务队列与主任务队列位于不同的物理核上,则执行步骤S709-710。
S706:停止从任务队列正在执行的任务,设置从任务队列的WCET并计时;
核间调度模块停止从任务队列正在执行的任务,在计时器中设置从任务队列的WCET并计时。具体的,为多个从任务队列中的每个从任务队列分别设置该从任务队列对应的从任务队列的WCET。
S707:将从任务队列中的需迁移任务迁移至主任务队列;
核间调度模块将从任务队列中的需迁移的任务迁移至迁移规则中定义的缓存首地址,缓存首地址为需迁移的任务迁移目的地的起始地址。
S708:等待主任务队列的WCET超时;
在主任务队列的WCET时间内,核间调度模块可以执行步骤S706。若主任务队列的WCET超时,不论核间调度模块是否将对应的多个从任务队列上的所有需迁移任务迁移至主任务队列,核间调度模块将停止执行任务迁移。核间调度模块可以继续执行主任务队列中因核间中断而停止执行的任务,或者可以执行主任务队列中的下一个任务。
可选的,该方法还包括S709:修改迁移规则中的缓存首地址;
任务调度模块可在主任务队列的WCET超时后修改迁移规则中定义的需迁移任务的缓存首地址,避免多次执行任务迁移的过程中不同任务的相互覆盖。
步骤S709之后,还可以继续执行步骤S703,若判断主任务队列对应的多个从任务队列中有需迁移的任务,则继续执行步骤S704-708;若判断主任务队列对应的多个从任务队列中没有需迁移的任务,则结束本方法。
S710:向从任务队列所在的物理核发送核间中断;
步骤S705中确定需迁移任务所在的从任务队列不位于当前核上,不与主任务队列位于同一个物理核上,则核间调度模块向从任务队列所在的物理核发送核间中断,核间中断用于使得从任务队列所在的物理核停止正在执行的任务。
S711:将从任务队列上的需迁移的任务迁移至主任务队列;
该步骤可参考前述步骤S506;
本申请实施例还提供了一种任务迁移装置,该装置包括:发送模块和任务迁移模块,其中:
发送模块用于:向一个或多个从物理核发送中断,中断用于使得一个或多个从物理核中每个从物理核停止正在执行的任务直到第二时间超时,第二时间用于表示主物理核将一个或多个从物理核中任一个从物理核中的需迁移任务迁移至主物理核的最差执行时间WCET;
任务迁移模块用于:在第一时间内将一个或多个从物理核中的一个或多个需迁移任务迁移至主物理核,第一时间用于表示主物理核将一个或多个从物理核中所有需迁移任务迁移至主物理核的最差执行时间WCET,第一时间大于或等于一个或多个从物理核中每个从物理核的第二时间之和。
可选的,任务迁移装置还包括获取模块,获取模块用于:接收任务迁移请求,任务迁移请求为应用程序发送的请求。
可选的,任务迁移装置还包括获取模块,获取模块用于:接收任务迁移请求,任务迁移请求为周期性发送的请求。
可选的,任务迁移装置还包括计时模块,计时模块用于在计时器中设置第一时间;
获取模块还用于获取预设的第一时间;任务迁移模块还用于:若第一时间超时,停止迁移一个或多个从物理核中的一个或多个需迁移任务。获取模块还用于获取所述主物理核与所述一个或多个从物理核的对应关系;
可选的,发送模块还用于:根据主物理核与一个或多个从物理核的对应关系向多个从物理核发送中断。
在本申请实施例中,发送模块和任务迁移模块可以为前述实施例中的核间调度模块,获取模块和计时模块可以为前述实施例中的任务调度模块。
本申请实施例还提供了一种任务迁移装置,该装置包括:接收模块和处理模块:
接收模块用于接收主物理核发送的中断,中断使得从物理核停止正在执行的任务直到第二时间超时,第二时间用于表示主物理核将从物理核中需迁移任务迁移至主物理核的最差执行时间WCET,从物理核为所主物理核的一个或多个从物理核中的任一个;
处理模块用于在第二时间内停止执行正在执行的任务。
在本申请实施例中,接收模块和处理模块可以为核间调度模块。
基于以上实施例,本申请实施例还提供了一种计算机存储介质,该存储介质中存储计算机指令,该计算机指令在被一个或多个处理器读取并执行时可实现上述任意一个或多个实施例提供的任务迁移方法。计算机存储介质可以包括:U盘、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码或计算机指令的介质。
基于以上实施例,本申请提供一种计算机程序产品,计算机程序产品包括计算机指令,当计算机指令被处理器执行时,使得处理器执行上述任意一个或多个实施例提供的任务迁移方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (21)
1.一种任务迁移方法,其特征在于,所述方法应用于计算机系统,所述计算机系统包括一个主物理核和一个或多个从物理核,所述方法包括:
所述主物理核向所述一个或多个从物理核发送中断,所述中断用于使得所述一个或多个从物理核中每个从物理核停止正在执行的任务直到第二时间超时,所述第二时间用于表示所述主物理核将所述一个或多个从物理核中任一个从物理核中的需迁移任务迁移至所述主物理核的最差执行时间WCET;
所述主物理核在第一时间内将所述一个或多个从物理核中的一个或多个需迁移任务迁移至所述主物理核,所述第一时间用于表示所述主物理核将所述一个或多个从物理核中所有需迁移任务迁移至所述主物理核的最差执行时间WCET,所述第一时间大于或等于所述一个或多个从物理核中每个从物理核的所述第二时间之和。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述主物理核接收任务迁移请求,所述任务迁移请求为应用程序发送的请求。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述主物理核接收任务迁移请求,所述任务迁移请求为周期性发送的请求。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:
所述主物理核获取预设的所述第一时间;
所述主物理核在计时器中设置所述第一时间;
若所述第一时间超时,所述主物理核停止迁移所述一个或多个从物理核中的需迁移任务。
5.根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:
所述主物理核获取所述主物理核与所述一个或多个从物理核的对应关系;
所述主物理核根据所述主物理核与所述一个或多个从物理核的对应关系向所述多个从物理核发送中断。
6.一种任务迁移方法,其特征在于,所述方法应用于计算机系统,所述计算机系统包括一个主物理核和一个或多个从物理核,所述方法包括:
从物理核接收所述主物理核发送的中断,所述中断使得所述从物理核停止正在执行的任务直到第二时间超时,所述第二时间用于表示所述主物理核将所述从物理核中需迁移任务迁移至所述主物理核的最差执行时间WCET,所述从物理核为所述一个或多个从物理核中的任一个;
所述从物理核在所述第二时间内停止执行所述正在执行的任务,直至所述第二时间超时。
7.一种计算机系统,其特征在于,所述计算机系统包括一个主物理核和一个或多个从物理核,其中,
所述主物理核用于:向所述一个或多个从物理核发送中断,所述中断用于使得所述一个或多个从物理核中每个从物理核停止正在执行的任务直到第二时间超时,所述第二时间用于表示所述主物理核将所述一个或多个从物理核中任一个从物理核中的需迁移任务迁移至所述主物理核的最差执行时间WCET;在第一时间内将所述一个或多个从物理核中的一个或多个需迁移任务迁移至所述主物理核,所述第一时间用于表示所述主物理核将所述一个或多个从物理核中所有需迁移任务迁移至所述主物理核的最差执行时间WCET,所述第一时间大于或等于所述一个或多个从物理核中每个从物理核的所述第二时间之和;
从物理核用于:接收所述主物理核发送的所述中断,所述从物理核为所述一个或多个从物理核中的任一个;停止执行所述正在执行的任务直到所述第二时间超时。
8.根据权利要求7所述的计算机系统,其特征在于,所述主物理核还用于接收任务迁移请求,所述任务迁移请求为应用程序发送的请求。
9.根据权利要求7所述的计算机系统,其特征在于,所述主物理核还用于接收任务迁移请求,所述任务迁移请求为周期性发送的请求。
10.根据权利要求7-9任一项所述的计算机系统,其特征在于,所述主物理核还用于:
获取预设的所述第一时间;
在计时器中设置所述第一时间;
若所述第一时间超时,停止迁移所述一个或多个从物理核中的需迁移任务。
11.根据权利要求7-9任一项所述的计算机系统,其特征在于,所述主物理核还用于:
获取所述主物理核与所述一个或多个从物理核的对应关系;
根据所述主物理核与所述一个或多个从物理核的对应关系向所述多个从物理核发送中断。
12.一种电子设备,其特征在于,所述电子设备包括处理单元和存储器,所述存储器用于存储程序指令,当所述处理单元调用所述程序指令时,实现权利要求1-5任一项所述的方法。
13.一种电子设备,其特征在于,所述电子设备包括处理单元和存储器,所述存储器用于存储程序指令,当所述处理单元调用所述程序指令时,实现权利要求6所述的方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当其在处理器上运行时,实现权利要求1-5任一项所述的方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当其在处理器上运行时,实现权利要求6所述的方法。
16.一种任务迁移装置,其特征在于,所述任务迁移装置包括发送模块和任务迁移模块,其中,所述发送模块用于:向一个或多个从物理核发送中断,所述中断用于使得所述一个或多个从物理核中每个从物理核停止正在执行的任务直到第二时间超时,所述第二时间用于表示主物理核将所述一个或多个从物理核中任一个从物理核中的需迁移任务迁移至所述主物理核的最差执行时间WCET;
所述任务迁移模块用于:在第一时间内将所述一个或多个从物理核中的一个或多个需迁移任务迁移至所述主物理核,所述第一时间用于表示所述主物理核将所述一个或多个从物理核中所有需迁移任务迁移至所述主物理核的最差执行时间WCET,所述第一时间大于或等于所述一个或多个从物理核中每个从物理核的所述第二时间之和。
17.根据权利要求16所述的任务迁移装置,其特征在于,所述任务迁移装置还包括获取模块,所述获取模块用于:接收任务迁移请求,所述任务迁移请求为应用程序发送的请求。
18.根据权利要求16所述的任务迁移装置,其特征在于,所述任务迁移装置还包括获取模块,所述获取模块用于:接收任务迁移请求,所述任务迁移请求为周期性发送的请求。
19.根据权利要求17或18所述的任务迁移装置,其特征在于,所述任务迁移装置还包括计时模块,所述计时模块用于在计时器中设置所述第一时间;
所述获取模块用于获取预设的所述第一时间;
所述任务迁移模块还用于:若所述第一时间超时,停止迁移所述一个或多个从物理核中的一个或多个需迁移任务。
20.根据权利要求17或18所述的任务迁移装置,其特征在于,所述获取模块用于获取所述主物理核与所述一个或多个从物理核的对应关系;
所述发送模块还用于:根据所述主物理核与所述一个或多个从物理核的对应关系向所述多个从物理核发送中断。
21.一种任务迁移装置,其特征在于,所述任务迁移装置包括接收模块和处理模块,其中,所述接收模块用于接收主物理核发送的中断,所述中断使得从物理核停止正在执行的任务直到第二时间超时,所述第二时间用于表示所述主物理核将所述从物理核中需迁移任务迁移至所述主物理核的最差执行时间WCET,所述从物理核为所述主物理核的一个或多个从物理核中的任一个;
所述处理模块用于在所述第二时间内停止执行所述正在执行的任务,直至所述第二时间超时。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811644631.1A CN111381945B (zh) | 2018-12-29 | 2018-12-29 | 任务迁移方法及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811644631.1A CN111381945B (zh) | 2018-12-29 | 2018-12-29 | 任务迁移方法及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111381945A CN111381945A (zh) | 2020-07-07 |
CN111381945B true CN111381945B (zh) | 2024-02-09 |
Family
ID=71216790
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811644631.1A Active CN111381945B (zh) | 2018-12-29 | 2018-12-29 | 任务迁移方法及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111381945B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014072628A1 (fr) * | 2012-11-08 | 2014-05-15 | Bull Sas | Procédé, dispositif et programme d'ordinateur de placement de tâches dans un système multi-coeurs |
CN104969182A (zh) * | 2012-12-28 | 2015-10-07 | 英特尔公司 | 高动态范围软件-透明异构计算元件处理器、方法及系统 |
CN108983712A (zh) * | 2018-06-04 | 2018-12-11 | 华东师范大学 | 一种优化混合关键实时系统使用寿命的任务调度方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101366075B1 (ko) * | 2007-12-20 | 2014-02-21 | 삼성전자주식회사 | 멀티코어 플랫폼에서의 태스크 이동 방법 및 장치 |
KR101901587B1 (ko) * | 2011-12-13 | 2018-10-01 | 삼성전자주식회사 | 연성 실시간 운영체제의 실시간성을 확보하는 방법 및 장치 |
US10185566B2 (en) * | 2012-04-27 | 2019-01-22 | Intel Corporation | Migrating tasks between asymmetric computing elements of a multi-core processor |
KR101697647B1 (ko) * | 2013-10-08 | 2017-02-01 | 한국전자통신연구원 | 스케줄링 정책 기반 코어 간 태스크 이주 관리 장치 및 방법 |
-
2018
- 2018-12-29 CN CN201811644631.1A patent/CN111381945B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014072628A1 (fr) * | 2012-11-08 | 2014-05-15 | Bull Sas | Procédé, dispositif et programme d'ordinateur de placement de tâches dans un système multi-coeurs |
CN104969182A (zh) * | 2012-12-28 | 2015-10-07 | 英特尔公司 | 高动态范围软件-透明异构计算元件处理器、方法及系统 |
CN108983712A (zh) * | 2018-06-04 | 2018-12-11 | 华东师范大学 | 一种优化混合关键实时系统使用寿命的任务调度方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111381945A (zh) | 2020-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101798369B1 (ko) | 휴대용 디바이스에서 동기적 태스크 디스패치를 위한 시스템 및 방법 | |
CN109697122B (zh) | 任务处理方法、设备及计算机存储介质 | |
WO2017070900A1 (zh) | 多核数字信号处理系统中处理任务的方法和装置 | |
US20170329632A1 (en) | Device scheduling method, task manager and storage medium | |
KR20070083460A (ko) | 다중 커널을 동시에 실행하는 방법 및 시스템 | |
JP2005056391A (ja) | コンピューティング環境の作業負荷を均衡させる方法およびシステム | |
US20140359636A1 (en) | Multi-core system performing packet processing with context switching | |
CN106897299B (zh) | 一种数据库访问方法及装置 | |
US11347546B2 (en) | Task scheduling method and device, and computer storage medium | |
CN107704310B (zh) | 一种实现容器集群管理的方法、装置和设备 | |
US20170097854A1 (en) | Task placement for related tasks in a cluster based multi-core system | |
US20190044883A1 (en) | NETWORK COMMUNICATION PRIORITIZATION BASED on AWARENESS of CRITICAL PATH of a JOB | |
CN115454589A (zh) | 一种任务调度方法、装置及Kubernetes调度器 | |
WO2015042904A1 (zh) | 一种多核系统中资源池的调度方法、装置和系统 | |
US9753769B2 (en) | Apparatus and method for sharing function logic between functional units, and reconfigurable processor thereof | |
CN114168301A (zh) | 线程调度方法、处理器以及电子装置 | |
CN108958903B (zh) | 嵌入式多核中央处理器任务调度方法与装置 | |
CN111381945B (zh) | 任务迁移方法及电子设备 | |
WO2024046017A1 (zh) | 基于容器的进程调度方法、装置、设备及存储介质 | |
CN109791534B (zh) | 可切换拓扑机器 | |
CN112486638A (zh) | 用于执行处理任务的方法、装置、设备和存储介质 | |
JP6368452B2 (ja) | 非同期のデバイスによって実行されるタスクのスケジューリングの向上 | |
JP2010113667A (ja) | 情報処理装置 | |
CN115168040A (zh) | 一种作业抢占调度方法、装置、设备和存储介质 | |
CN114968500A (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 |