CN108401454B - 事务调度方法、处理器、分布式系统和无人机 - Google Patents
事务调度方法、处理器、分布式系统和无人机 Download PDFInfo
- Publication number
- CN108401454B CN108401454B CN201780004456.7A CN201780004456A CN108401454B CN 108401454 B CN108401454 B CN 108401454B CN 201780004456 A CN201780004456 A CN 201780004456A CN 108401454 B CN108401454 B CN 108401454B
- Authority
- CN
- China
- Prior art keywords
- processor
- time
- transaction
- scheduling
- virtual
- 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.)
- Expired - Fee Related
Links
Images
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/465—Distributed object oriented systems
-
- 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/466—Transaction processing
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Hardware Redundancy (AREA)
Abstract
提供一种事务调度方法、处理器、分布式系统和无人机。该方法可应用于具有多处理器的分布式系统,分布式系统中的各处理器均配置有虚拟时钟,且分布式系统中的各处理器的虚拟时钟同步,该方法包括:分布式系统中的任意一个第一处理器获取待调度的第一事务(310);第一处理器确定第一事务相对第一处理器的虚拟时钟的调度时间(320);第一处理器根据第一事务相对第一处理器的虚拟时钟的调度时间,对第一事务进行调度(330)。上述技术方案可以改善分布式系统的协同调度过程。
Description
版权申明
本专利文件披露的内容包含受版权保护的材料。该版权为版权所有人所有。版权所有人不反对任何人复制专利与商标局的官方记录和档案中所存在的该专利文件或者该专利披露。
技术领域
本申请涉及分布式系统领域,更为具体地,涉及一种事务调度方法、处理器、分布式系统和无人机。
背景技术
分布式系统一般由多个子系统组成,各子系统之间可以相互配合,以协同调度一个或多个事务。
在分布式系统中,为了实现协同调度,处理器之间一般需要先通过专用的通信接口交互协同消息,再由各处理器上的软件执行同步过程,等各处理器同步之后,再由各处理器对事务进行协同调度,导致协同调度的过程复杂。因此,亟需改善分布式系统的协同调度过程。
发明内容
本申请提供一种事务调度方法、处理器、分布式系统和无人机,能够改善分布式系统的协同调度过程。
第一方面,提供一种事务调度方法,所述方法可应用于具有多处理器的分布式系统,所述分布式系统中的各处理器均配置有虚拟时钟,且所述分布式系统中的各处理器的虚拟时钟同步,所述方法包括:所述分布式系统中的任意一个第一处理器获取待调度的第一事务;所述第一处理器确定所述第一事务相对所述第一处理器的虚拟时钟的调度时间;所述第一处理器根据所述第一事务相对所述第一处理器的虚拟时钟的调度时间,对所述第一事务进行调度。
第二方面,提供一种处理器,包含能够执行第一方面中的方法的模块。
第三方面,提供一种处理器,所述处理器为分布式系统中的第一处理器,所述分布式系统中的各处理器均配置有虚拟时钟,且所述分布式系统中的各处理器的虚拟时钟同步,所述第一处理器包括:存储器,用于存储计算机指令;控制器,用于执行所述存储器中存储的计算机指令,以执行以下操作:获取待调度的第一事务;确定所述第一事务相对所述第一处理器的虚拟时钟的调度时间;根据所述第一事务相对所述第一处理器的虚拟时钟的调度时间,对所述第一事务进行调度。
第四方面,提供一种分布式系统,所述分布式系统包括如第三方面所述的处理器。
第五方面,提供一种无人机,包括如第四方面所述的分布式系统。
第六方面,提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在处理器上运行时,使得处理器执行如第一方面所述的方法。
第七方面,提供一种包含指令的计算机程序产品,当其在处理器上运行时,使得处理器执行如第一方面所述的方法。
本申请可以改善分布式系统的协同调度过程。
附图说明
图1是分布式系统的总体架构示例图。
图2是本发明实施例提供的虚拟时钟同步的示意性流程图。
图3是本发明实施例提供的事务调度方法的示意性流程图。
图4是本发明一个实施例提供的处理器的示意性结构图。
图5是本发明另一实施例提供的处理器的示意性结构图。
图6是本发明实施例提供的分布式系统的示意性结构图。
图7是本发明实施例提供的无人机的示意性结构图。
具体实施方式
本申请提供的技术方案可作为分布式系统的底层支撑技术之一,应用于需要进行协同调度或对时钟同步有要求的场景。例如,本申请提供的技术方案可应用于电信基站时钟同步或基础网络时钟同步。又如,本申请提供的技术方案可应用于车载分布式控制系统、高速分布式伺服控制系统、无人机、无人车、移动机器人等自动化系统中。
如图1所示,分布式系统通常包括多个处理器,处理器之间可以通过通信信道相连。该通信信道可以负责在不同的处理器之间交互时钟同步报文和/或调度分派报文。
为了便于理解,下面以无人机的控制系统为例,对传统分布式系统的协同调度过程进行举例说明。
传统的四轴无人机的控制系统仅需要对四个轴的电机以及遥控设备进行控制,控制系统的需求简单。因此,传统的四轴无人机的控制系统内部仅需要设置一个处理器(如一个微控制单元(microcontroller unit,MCU),或一个片上系统(system-on-a-chip,SOC))即可完成对该无人机的控制。
随着无人机技术的发展,无人机对控制系统的需求越来越高。例如,目前的无人机的控制系统一般包含用于实现不同功能的多种类型的子系统。例如,无人机的控制系统可以包含飞控子系统、云台子系统、相机子系统、避障子系统、图传子系统、应用子系统等。由于子系统功能越来越复杂,且不同子系统对处理器的处理性能的要求也可能不同,许多子系统由之前共用一个处理器逐步发展成使用专用的处理器。因此,目前无人机的控制系统通常包含不同类型的多个处理器。作为一个示例,无人机的控制系统可以包含MCU,SOC,数字信号处理(digital signal processing,DSP)以及专用硬件加速器等。无人机控制系统中的处理器可以设置专用的通信接口,如通用串行总线(universal serial bus,USB)接口、串行外设接口(serial peripheral interface,SPI)、通用异步收发传输器(universalasynchronous receiver/transmitter,UART)、移动产业处理器接口(mobile industryprocessor interface,MIPI)等。进一步地,无人机控制系统中的处理器可以通过通信信道互联。由此可见,目前的无人机的控制系统逐渐演变成包含多处理器的分布式系统。
随着无人机技术的复杂化,在无人机的控制系统中,为了控制无人机执行某项复杂的任务,通常需要各个子系统的各处理器进行协调,以共同完成该任务。例如,当希望通过无人机拍摄目标场景的图像时,无人机受到强风影响,导致机身出现抖动。在这种情况下,可以协调无人机的云台子系统和相机子系统,使得在强风影响下,无人机仍然能够对目标场景进行稳定的拍摄。
分布式系统中的处理器需要协同调度时,一般需要先通过专用的通信接口交互协同消息,再由各处理器上的软件执行同步过程,等各处理器同步之后,再由各处理器对事务进行协同调度,导致协同调度的过程复杂。
进一步地,当分布式系统中的一个处理器向另一处理器发送协同消息时,如果作为接收方的处理器由于某种原因(比如该处理器当前正在调度某些计算量较大的事务)未及时响应该协同消息,就会导致协事务的协同调度过程失败。
上文以无人机为例,对分布式系统在协同调度时存在的问题进行举例说明的,但本发明实施例提供的技术方案应用场景不限于无人机场景,可应用于需要时钟同步或协同调度的任意分布式系统中,尤其可应用于处理器之间没有通过实时总线相连的分布式系统。
为了改善分布式系统的协同调度方式,本发明实施例为分布式系统中的处理器配置了虚拟时钟。分布式系统中的各处理器的虚拟时钟可以具有相同的时钟频率。针对不同需求的分布式系统,虚拟时钟的时钟频率或时钟周期的粒度可以不同。例如,虚拟时钟的时钟周期可以是微秒量级的时钟周期,也可以是毫秒量级的时钟周期。虚拟时钟可以是一个变量,该变量的取值可以表示虚拟时钟的计数值,从而表示虚拟时钟的时间(可以将虚拟时钟的时间称为虚拟时间)。本发明实施例对用于表征虚拟时钟的变量的格式不做具体限定,可以选取为32位的变量,也可以选取为64位的变量。变量的长度越大,在分布式系统工作期间,该变量达到最大值的可能性就越小,从而可以有效避免变量达到最大值之后快速翻转(即从0开始重新计数)而带来的计算问题,进而简化了软件处理的复杂度。以无人机为例,可以综合考虑无人机的续航时间来设定虚拟时钟的变量长度,尽量使得无人机上电工作过程中,该虚拟时钟的变量不会发生快速翻转。例如,对无人机而言,可以将虚拟时钟的变量长度定义为64位。
分布式系统中的各处理器可以负责对各自的虚拟时钟进行初始化和校准。以分布式系统中的任意一个处理器(下称第一处理器)为例,在第一处理器使用其自身的虚拟时钟之前,可以先对用于表征第一处理器的虚拟时钟的变量进行初始化;确定第一处理器的虚拟时钟的虚拟时间;并根据第一处理器的虚拟时钟的虚拟时间,为变量赋值,以校准第一处理器的虚拟时钟。
对变量初始化时,可以将变量的初始值设置为0。然后,第一处理器可以与其他处理器进行通信,以获取虚拟时钟的虚拟时间。该虚拟时间可以采用虚拟时钟的计数值表示。然后,第一处理器可以使用该计数值为第一处理器的虚拟时钟的变量赋值,从而完成第一处理器的虚拟时钟的校准。
此外,第一处理器还可以负责同步虚拟时钟的时间精度,对虚拟时钟进行更新,并维护虚拟时钟的当前时间和状态。例如,第一处理器可以按照虚拟时钟的时钟频率对虚拟时钟的变量的取值不断执行加1操作。
需要说明的是,虚拟时钟的时钟频率或精度可以根据分布式系统的应用场合而定,对协同调度的精度要求高的场合,可以将虚拟时钟的时钟频率或精度设置的较高,对协同调度的精度要求低的场合,可以将虚拟时钟的时钟频率或精度设置的低一些,以简化实现。
本发明实施例对虚拟时钟的同步方式不做具体限定,可以根据分布式系统的应用场合选取不同的时钟同步方式及算法。以无人机为例,无人机的控制系统可以采用主从的方式进行时钟同步,如可以基于1588V2协议提供的时钟同步算法对分布式系统的虚拟时钟进行同步。
下面对本发明实施例提供的一种主从时钟同步方式进行详细介绍。
首先,可以将分布式系统中的某个处理器定义为主处理器,分布式系统中的其他处理器定义为从处理器。主处理器可以将自身的虚拟时钟作为分布式系统的时钟同步源,并与从处理器进行通信,使得从处理器的虚拟时钟与主处理器的虚拟时钟进行同步,从而使得从处理器的虚拟时钟与主处理器的虚拟时钟的频率和相位保持一致。
假设第一处理器是分布式系统中的从处理器,第一处理器可以与主处理器通信,以获取第一处理器与主处理器之间的线路延迟信息;然后,第一处理器可以根据线路延迟信息,确定第一处理器的虚拟时钟和主处理器的虚拟时钟的时间差;接着,第一处理器可以根据时间差,调整第一处理器的虚拟时钟,使得第一处理器的虚拟时钟与主处理器的虚拟时钟同步。
具体地,如图2所示,第一处理器接收主处理器发送的同步消息,并记录第一处理器接收同步消息的虚拟时间t2;第一处理器接收主处理器发送的同步消息的跟随消息,跟随消息包含主处理器发送同步消息的虚拟时间t1;第一处理器向主处理器发送延迟请求消息,并记录第一处理器发送延迟请求消息的虚拟时间t3;第一处理器接收主处理器发送的延迟响应消息,延迟响应消息包含主处理器接收延迟请求消息的虚拟时间t4。
上述第一处理器根据线路延迟信息,确定第一处理器的虚拟时钟和主处理器的虚拟时钟的时间差可包括:第一处理器根据虚拟时间t1、虚拟时间t2、虚拟时间t3和虚拟时间t4,确定时间差。
例如,第一处理器可以先计算主到从的延迟delay1=(t2-t1),再计算从到主的延迟delay2=(t4-t3)。假设主到从的延迟和从到主的延迟相等,则第一处理器可以计算出第一处理器的虚拟时钟和主处理器的虚拟时钟的时间差T=(delay1-delay2)。当然,第一处理器也可以无需计算延迟,直接基于公式T=(t2-t1-t4+t3)计算出第一处理器的虚拟时钟和主处理器的虚拟时钟的时间差。
在其他实施例中,上述第一处理器也可以是分布式系统中的主处理器,第一处理器可以向其他处理器发送同步消息以及同步消息的跟随消息,跟随消息包含第一处理器发送同步消息的虚拟时间t1;第一处理器接收其他处理器发送的延时请求消息;第一处理器向其他处理器发送延时响应消息,延时响应消息包含第一处理器接收延迟请求消息的虚拟时间t4,以便其他处理器基于虚拟时间t1和虚拟时间t4确定第一处理器的虚拟时钟和其他处理器的虚拟时钟之间的时间差,并基于时间差调整其他处理器的虚拟时钟,使得其他处理器的虚拟时钟与第一处理器的虚拟时钟同步。
该实施例是以第一处理器为主处理器,其他处理器作为从处理器为例进行举例说明的。在该实施例中,其他处理器的具体同步过程与前一实施例描述的第一处理器作为从处理器时的同步过程类似,为避免重复,此处不再详述。
上文主要描述了虚拟时钟的同步过程。应理解,以上描述的虚拟时钟的同步过程仅是举例说明,实际上,还可以采用其他传统的时钟同步算法对分布式系统中的处理器的虚拟时钟进行同步,本发明实施例对此不做具体限定。通过保持分布式系统中的各处理器的虚拟时钟同步,使得分布式系统中的处理器可以以统一的时间(即虚拟时钟对应的虚拟时间)为基准对各项事务进行调度,分布式系统中的各处理器只要定期维护虚拟时钟,保持它们之间的同步性即可,无需像传统分布式系统那样,在每次协同调度前均通过应用层协议发送协同消息,从而简化了软件实现。
在虚拟时钟同步的基础上,下面结合图3,详细描述本发明实施例提供的事务调度方法。
图3是本发明实施例提供的事务调度方法的示意性流程图。图3主要是以分布式系统中的第一处理器的事务调度过程为例进行举例说明的。第一处理器可以是分布式系统中的任意一个处理器。图3的方法可以包括步骤310-330,下面对图3的步骤进行详细描述。
在步骤310中,第一处理器获取待调度的第一事务。所述多个处理器中的第一处理器获取待调度的目标任务。
在步骤320中,第一处理器确定第一事务相对第一处理器的虚拟时钟的调度时间。
第一事务可以是任意一个事务,第一事务的触发方式以及第一事务相对第一处理器的虚拟时钟的调度时间的确定方式可以有多种,例如,可以由第一处理器自主触发第一事务,并分配第一事务相对第一处理器的虚拟时钟的调度时间;又如,可以由其他处理器触发第一事务,并分配第一事务相对第一处理器的虚拟时钟的调度时间,然后,其他处理器通过报文(如任务分派报文)将第一事务及其相对虚拟时钟的调度时间发送至第一处理器。
在步骤330中,第一处理器根据第一事务相对第一处理器的虚拟时钟的调度时间,对第一事务进行调度。
从图3对应的实施例的描述可以看出,分布式系统中的各处理器的事务调度过程相互独立,只不过事务的调度时间以统一的虚拟时钟作为基准。换句话说,各处理器以相同的虚拟时钟作为基准对各自的事务进行调度,处理器甚至可能无需获知其正在与其他处理器进行协同调度,它们之间的协同由于有了共同的时间基准自然而言地完成了。
下面对步骤330的实现方式进行详细描述。
在一些实施例中,步骤330可包括:第一处理器将第一事务相对第一处理器的虚拟时钟的调度时间转换为第一事务的本地调度时间,其中第一事务的本地调度时间为第一事务相对第一处理器的本地时钟的调度时间;第一处理器根据第一事务的本地调度时间对第一事务进行调度。
第一处理器可以基于第一处理器的虚拟时钟的时钟频率与第一处理器的本地时钟的时钟频率的关系,将第一处理器的虚拟时钟的调度时间转换为第一事务的本地调度时间。假设第一处理器的虚拟时钟的时钟频率是本地时钟的时钟频率的2倍,第一处理器的虚拟时钟的当前时间为300(这里的时间是以虚拟时钟的计数值表示的),第一事务相对第一处理器的虚拟时钟的调度时间为305,第一处理器的本地时钟的当前时间为500(这里的时间是以本地时钟的计数值表示的),则根据两个时钟的时钟频率的关系,可以计算出第一事务的本地调度时间为510。
第一处理器基于第一事务的本地调度时间对第一事务进行调度的方式可以有多种。
作为一个示例,可以采用传统的事务调度方式对第一事务进行调度。具体地,可以先将第一事务添加到第一处理器的调度队列中,然后设置一个周期性触发的定时器,该定时器每触发一个中断信号,第一处理器查看调度队列中是否有需要调度的事务。这样的事务调度方式虽然简单,但存在功率浪费的问题。比如,当定时器发送某个中断信号时,如果此时并不存在需要调度的事务,该定时器的该中断信号的发射功率则被浪费。
可选地,在一些实施例中,在第一处理器根据第一事务的本地调度时间对第一事务进行调度之前,图3的方法还可包括:第一处理器接收第一定时器触发的第一中断信号,第一中断信号用于指示第一处理器的本地时钟到达第一事务的前一事务的本地调度时间;响应于第一中断信号,第一处理器调度第一事务的前一事务,并调整第一定时器的定时时长,使得第一定时器的下一中断信号的触发时间为第一事务的本地调度时间;上述第一处理器根据第一事务的本地调度时间对第一事务进行调度可包括:响应于下一中断信号,第一处理器调度第一事务。
本发明实施例中引入第一定时器,该第一定时器并非周期性触发中断信号,指示第一处理器对事务进行调度,而是每调度一个事务,就重新设置该第一定时器的定时时长,使得该第一定时器的定时时长等于当前时间到下一事务的本地调度时间的时间间隔,这样可以节省系统功率,也可以提高事务调度的精度。
可选地,在一些实施例中,在第一处理器根据第一事务的本地调度时间对第一事务进行调度之前,图3的方法还可包括:所述第一处理器确定所述第一事务的调度结束时间;当所述第一事务的调度结束时间与所述第一事务的下一事务的本地调度时间之间的时间间隔小于预设的时间间隔时,所述第一处理器将所述第一事务和所述第一事务的下一事务合并为一项事务。
具体地,上述预设时间间隔可以是第一处理器的调度事务的时钟周期粒度。例如,第一处理器在340ms调度了一项事务(下称事务1),且事务1执行了2.95ms,也就是说事务1的调度结束时间是342.95ms。如果下一个被调度的事务(下称事务2)的本地调度时间是343ms,此时离事务2的本地调度时间还差50μs,如果第一处理器的调度事务的最小时钟粒度是100μs,则无需等待50μs再激励第一处理器调度事务2,第一处理器可以直接开始调度事务2,相当于将事务1和事务2合并成一项事务进行调度。本发明实施例优化了处理器的事务调度方式。
可选地,在一些实施例中,第一处理器根据第一事务的本地调度时间对第一事务进行调度可包括:在第一处理器调度第一调度队列中的事务的过程中,响应于第一处理器的本地时间到达第一事务的本地调度时间,第一处理器对第一事务进行调度,其中第一调度队列为第一处理器的多个调度队列中的一个,多个调度队列还包括第二调度队列和第三调度队列,第一调度队列包含本地调度时间位于当前时段的事务,第二调度队列包含本地调度时间位于第一时段的事务,第三调度队列包含本地调度时间位于第一时段之后的事务,其中第一时段为当前时段的下一时段。
可选地,在一些实施例中,图3的方法还可包括:第一处理器接收第二定时器触发的第二中断信号,第二中断信号用于指示当前时段结束;响应于第二中断信号,第一处理器调度第二调度队列中的事务,并对第一调度队列和第三调度队列中的事务进行更新,使得第一调度队列包含本地调度时间位于第二时段的事务,第三调度队列包含本地调度时间位于第二时段之后的事务,其中第二时段为第一时段的下一时段。
本发明实施例对调度队列的形式不做具体限定,例如可以采用调度表的形式记录待调度的事务。下面以调度表为例进行说明。
上述第一调度队列可以称为第一处理器的乒调度表,第二调度队列可以称为第一处理器的乓调度表,第三调度队列可以称为其余事务调度表。乒调度表可以包含本地调度时间位于当前时段的事务。乓调度表可以包含本地调度时间位于下一时段的事务。其余事务调度表可以包含第一处理器的剩余的待调度事务。
以时段长度为10ms为例,则乒调度表可以包含本地调度时间位于0-10ms的事务,乓度表可以包含本地调度时间位于10-20ms的事务。其余事务调度表可以包含本地调度时间位于20ms之后的事务。第一处理器在0-10ms先调度乒调度表中的事务;10ms结束之后,第一处理器指向乓调度表,以对本地调度时间位于10-20ms的事务进行调度。此外,第一处理器还需要对乒调度表和其余事务调度表进行更新,将其余事务调度表中的位于20-30ms的事务添加至乒调度表中。20ms结束之后,第一处理器重新指向乒调度表,以对本地调度时间位于20-30ms的事务进行调度,以此类推。
从上文的描述可以看出,第一处理器交替将乒调度表(或第一调度队列)和乓调度表(或第二调度队列)作为当前调度表(或当前调度队列),这样一来,第一处理器内部的软件调度器无需在待调度的所有事务中查找当前需要调度的事务,仅需要在当前调度表(或当前调度队列)中查找即可,有效降低第一处理器调度过程的实现复杂度。
需要说明的是,第一处理器获取到某个待调度的新事务时,可以根据该新事务的本地调度时间将其添加至相应的调度表(或调度队列)。以当前调度表为乒调度表(第一调度队列)为例,如果该新事务的本地调度时间位于当前时段,则可以将新事务添加至乒调度表,如果该新事务的本地调度时间位于当前时段的下一时段,则可以将新事务添加至乓调度表(第二调度队列),否则,可以将新事务添加至其余事务调度表(第三调度队列)。
此外,本发明实施例引入了第二定时器,该第二定时器可以以当前时段的长度为定时时长(如10ms),向第一处理器周期性发送中断信号,触发第一处理器对当前调度表(或当前调度队列)进行更新。
下面对本发明的装置实施例进行描述,由于装置实施例可以执行上述方法,因此未详细描述的部分可以参见前面各方法实施例。
图4是本发明一个实施例提供的处理器的示意性结构图。图4的处理器可以是上文描述的第一处理器,该第一处理器400可以包括获取模块410,第一确定模块420和调度模块430,下面对第一处理器400中的模块的功能进行详细说明。
获取模块410可获取待调度的第一事务。
第一确定模块420可确定所述第一事务相对所述第一处理器400的虚拟时钟的调度时间。
调度模块430可根据所述第一事务相对所述第一处理器400的虚拟时钟的调度时间,对所述第一事务进行调度。
可选地,在一些实施例中,调度模块430可具体用于将所述第一事务相对所述第一处理器400的虚拟时钟的调度时间转换为所述第一事务的本地调度时间,其中所述第一事务的本地调度时间为所述第一事务相对所述第一处理器400的本地时钟的调度时间;根据所述第一事务的本地调度时间对所述第一事务进行调度。
可选地,在一些实施例中,第一处理器400还可用于接收第一定时器触发的第一中断信号,所述第一中断信号用于指示所述第一处理器400的本地时钟到达所述第一事务的前一事务的本地调度时间;响应于所述第一中断信号,调度所述第一事务的前一事务,并调整所述第一定时器的定时时长,使得所述第一定时器的下一中断信号的触发时间为所述第一事务的本地调度时间;调度模块430具体用于响应于所述下一中断信号,所述第一处理器400调度所述第一事务。
可选地,在一些实施例中,所述第一处理器400确定所述第一事务的调度结束时间;当所述第一事务的调度结束时间与所述第一事务的下一事务的本地调度时间之间的时间间隔小于预设的时间间隔时,所述第一处理器400将所述第一事务和所述第一事务的下一事务合并为一项事务。
可选地,在一些实施例中,所述调度模块430具体用于在所述第一处理器400调度第一调度队列中的事务的过程中,响应于所述第一处理器400的本地时间到达所述第一事务的本地调度时间,对所述第一事务进行调度,其中所述第一调度队列为所述第一处理器400的多个调度队列中的一个,所述多个调度队列还包括第二调度队列和第三调度队列,所述第一调度队列包含本地调度时间位于当前时段的事务,所述第二调度队列包含本地调度时间位于第一时段的事务,所述第三调度队列包含本地调度时间位于所述第一时段之后的事务,其中所述第一时段为所述当前时段的下一时段。
可选地,在一些实施例中,第一处理器400还可包括接收模块,用于接收第二定时器触发的第二中断信号,所述第二中断信号用于指示所述当前时段结束。所述调度模块430还用于响应于所述第二中断信号,调度第二调度队列中的事务,并对所述第一调度队列和所述第三调度队列中的事务进行更新,使得所述第一调度队列包含本地调度时间位于第二时段的事务,所述第三调度队列包含本地调度时间位于所述第二时段之后的事务,其中所述第二时段为所述第一时段的下一时段。
可选地,在一些实施例中,所述第一处理器400还可包括通信处理模块,用于与所述分布式系统中的其他处理器通信,以将所述第一处理器400的虚拟时钟与所述其他处理器的虚拟时钟同步。
可选地,在一些实施例中,所述第一处理器400为所述多个处理器中的从处理器,所述多个处理器还包括主处理器,所述通信处理模块具体用于与所述主处理器通信,以获取所述第一处理器400与所述主处理器之间的线路延迟信息;根据所述线路延迟信息,确定所述第一处理器400的虚拟时钟和所述主处理器的虚拟时钟的时间差;根据所述时间差,调整所述第一处理器400的虚拟时钟,使得所述第一处理器400的虚拟时钟与所述主处理器的虚拟时钟同步。
可选地,在一些实施例中,所述通信处理模块具体用于接收所述主处理器发送的同步消息,并记录所述第一处理器400接收所述同步消息的虚拟时间t2;接收所述主处理器发送的所述同步消息的跟随消息,所述跟随消息包含所述主处理器发送所述同步消息的虚拟时间t1;向所述主处理器发送延迟请求消息,并记录所述第一处理器400发送所述延迟请求消息的虚拟时间t3;接收所述主处理器发送的延迟响应消息,所述延迟响应消息包含所述主处理器接收所述延迟请求消息的虚拟时间t4。
可选地,在一些实施例中,所述通信处理模块具体用于根据所述虚拟时间t1、虚拟时间t2、虚拟时间t3和虚拟时间t4,确定所述时间差。
可选地,在一些实施例中,所述时间差T=(t2-t1-t4+t3)。
可选地,在一些实施例中,所述第一处理器400为所述多个处理器中的主处理器,所述其他处理器为所述分布式系统的从主处理器,所述通信处理模块具体用于向所述其他处理器发送同步消息以及所述同步消息的跟随消息,所述跟随消息包含所述第一处理器400发送所述同步消息的虚拟时间t1;接收所述其他处理器发送的延时请求消息;向所述其他处理器发送延时响应消息,所述延时响应消息包含所述第一处理器400接收所述延迟请求消息的虚拟时间t4,以便所述其他处理器基于所述虚拟时间t1和所述虚拟时间t4确定所述第一处理器400的虚拟时钟和所述其他处理器的虚拟时钟之间的时间差,并基于所述时间差调整所述其他处理器的虚拟时钟,使得所述其他处理器的虚拟时钟与所述第一处理器400的虚拟时钟同步。
可选地,在一些实施例中,所述第一处理器400还可包括初始化模块,第三确定模块和赋值模块。所述初始化模块用于对用于表征所述第一处理器400的虚拟时钟的变量进行初始化。所述第三确定模块用于确定所述第一处理器400的虚拟时钟的虚拟时间。所述赋值模块用于根据所述第一处理器400的虚拟时钟的虚拟时间,为所述变量赋值,以校准所述第一处理器400的虚拟时钟。
可选地,在一些实施例中,所述第一处理器400还可包括第四确定模块和更新模块。所述第四确定模块用于确定所述第一处理器400的虚拟时钟的时钟频率,其中所述分布式系统中的各虚拟时钟的时钟频率相同。所述更新模块用于根据所述第一处理器400的虚拟时钟的时钟频率,更新所述变量的计数值。
图5是本发明另一实施例提供的处理器的示意性结构图。图5的处理器可以为分布式系统中的任意一个第一处理器。分布式系统中的各处理器均配置有虚拟时钟,且分布式系统中的各处理器的虚拟时钟同步。该第一处理器500包括存储器510和控制器520。
存储器510可用于存储计算机指令。
控制器520可用于执行存储器中存储的计算机指令,以执行以下操作:获取待调度的第一事务;确定第一事务相对第一处理器500的虚拟时钟的调度时间;根据第一事务相对第一处理器500的虚拟时钟的调度时间,对第一事务进行调度。
可选地,在一些实施例中,所述根据第一事务相对第一处理器500的虚拟时钟的调度时间,对第一事务进行调度可包括:将第一事务相对第一处理器500的虚拟时钟的调度时间转换为第一事务的本地调度时间,其中第一事务的本地调度时间为第一事务相对第一处理器500的本地时钟的调度时间;根据第一事务的本地调度时间对第一事务进行调度。
可选地,在一些实施例中,在根据第一事务的本地调度时间对第一事务进行调度之前,控制器520还用于执行以下操作:接收第一定时器触发的第一中断信号,第一中断信号用于指示第一处理器500的本地时钟到达第一事务的前一事务的本地调度时间;响应于第一中断信号,调度第一事务的前一事务,并调整第一定时器的定时时长,使得第一定时器的下一中断信号的触发时间为第一事务的本地调度时间;所述根据第一事务的本地调度时间对第一事务进行调度可包括:响应于下一中断信号,调度第一事务。
可选地,在一些实施例中,在所述根据第一事务的本地调度时间对第一事务进行调度之前,控制器520还用于执行以下操作:确定所述第一事务的调度结束时间;当所述第一事务的调度结束时间与所述第一事务的下一事务的本地调度时间之间的时间间隔小于预设的时间间隔时,将所述第一事务和所述第一事务的下一事务合并为一项事务。
可选地,在一些实施例中,所述根据第一事务的本地调度时间对第一事务进行调度可包括:在第一处理器500调度第一调度队列中的事务的过程中,响应于第一处理器500的本地时间到达第一事务的本地调度时间,对第一事务进行调度,其中第一调度队列为第一处理器500的多个调度队列中的一个,多个调度队列还包括第二调度队列和第三调度队列,第一调度队列包含本地调度时间位于当前时段的事务,第二调度队列包含本地调度时间位于第一时段的事务,第三调度队列包含本地调度时间位于第一时段之后的事务,其中第一时段为当前时段的下一时段。
可选地,在一些实施例中,控制器520还可用于执行以下操作:接收第二定时器触发的第二中断信号,第二中断信号用于指示当前时段结束;响应于第二中断信号,调度第二调度队列中的事务,并对第一调度队列和第三调度队列中的事务进行更新,使得第一调度队列包含本地调度时间位于第二时段的事务,第三调度队列包含本地调度时间位于第二时段之后的事务,其中第二时段为第一时段的下一时段。
可选地,在一些实施例中,在所述根据第一事务相对第一处理器500的虚拟时钟的调度时间,对第一事务进行调度之前,控制器520还可用于执行以下操作:与分布式系统中的其他处理器通信,以将第一处理器500的虚拟时钟与其他处理器的虚拟时钟同步。
可选地,在一些实施例中,第一处理器500为多个处理器中的从处理器,多个处理器还包括主处理器,所述与分布式系统中的其他处理器通信,以将第一处理器500的虚拟时钟与其他处理器的虚拟时钟同步可包括:与主处理器通信,以获取第一处理器500与主处理器之间的线路延迟信息;根据线路延迟信息,确定第一处理器500的虚拟时钟和主处理器的虚拟时钟的时间差;根据时间差,调整第一处理器500的虚拟时钟,使得第一处理器500的虚拟时钟与主处理器的虚拟时钟同步。
可选地,在一些实施例中,所述与主处理器通信,以获取第一处理器500与主处理器之间的线路延迟信息可包括:接收主处理器发送的同步消息,并记录第一处理器500接收同步消息的虚拟时间t2;接收主处理器发送的同步消息的跟随消息,跟随消息包含主处理器发送同步消息的虚拟时间t1;向主处理器发送延迟请求消息,并记录第一处理器500发送延迟请求消息的虚拟时间t3;接收主处理器发送的延迟响应消息,延迟响应消息包含主处理器接收延迟请求消息的虚拟时间t4。
可选地,在一些实施例中,所述根据线路延迟信息,确定第一处理器500的虚拟时钟和主处理器的虚拟时钟的时间差可包括:根据虚拟时间t1、虚拟时间t2、虚拟时间t3和虚拟时间t4,确定时间差。
可选地,在一些实施例中,时间差T=(t2-t1-t4+t3)。
可选地,在一些实施例中,第一处理器500为多个处理器中的主处理器,其他处理器为分布式系统的从主处理器,所述与分布式系统中的其他处理器通信,以将第一处理器500的虚拟时钟与其他处理器的虚拟时钟同步可包括:向其他处理器发送同步消息以及同步消息的跟随消息,跟随消息包含第一处理器500发送同步消息的虚拟时间t1;接收其他处理器发送的延时请求消息;向其他处理器发送延时响应消息,延时响应消息包含第一处理器500接收延迟请求消息的虚拟时间t4,以便其他处理器基于虚拟时间t1和虚拟时间t4确定第一处理器500的虚拟时钟和其他处理器的虚拟时钟之间的时间差,并基于时间差调整其他处理器的虚拟时钟,使得其他处理器的虚拟时钟与第一处理器500的虚拟时钟同步。
可选地,在一些实施例中,在根据第一事务相对第一处理器500的虚拟时钟的调度时间,对第一事务进行调度之前,控制器520还可用于执行以下操作:对用于表征第一处理器500的虚拟时钟的变量进行初始化;确定第一处理器500的虚拟时钟的虚拟时间;根据第一处理器500的虚拟时钟的虚拟时间,为变量赋值,以校准第一处理器500的虚拟时钟。
可选地,在一些实施例中,控制器520还用于执行以下操作:确定第一处理器500的虚拟时钟的时钟频率,其中分布式系统中的各虚拟时钟的时钟频率相同;根据第一处理器500的虚拟时钟的时钟频率,更新变量的计数值。
本发明实施例还提供一种分布式系统。如图6所示,该分布式系统600包括上文描述的第一处理器500。例如,分布式系统600中的每个处理器均可以执行如上文中的第一处理器500所执行的功能。
本发明实施例还提供一种无人机。如图7所示,该无人机700可以包括如图6所示的分布式系统600。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其他任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如数字视频光盘(digital video disc,DVD))、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (30)
1.一种事务调度方法,其特征在于,所述方法应用于具有多个处理器的分布式系统,所述分布式系统中的各处理器均配置有虚拟时钟,且所述分布式系统中的各处理器的虚拟时钟同步,
所述方法包括:
所述分布式系统中的任意一个第一处理器获取待调度的第一事务;
所述第一处理器确定所述第一事务相对所述第一处理器的虚拟时钟的调度时间;
所述第一处理器根据所述第一事务相对所述第一处理器的虚拟时钟的调度时间,对所述第一事务进行调度。
2.如权利要求1所述的方法,其特征在于,所述第一处理器根据所述第一事务相对所述第一处理器的虚拟时钟的调度时间,对所述第一事务进行调度,包括:
所述第一处理器将所述第一事务相对所述第一处理器的虚拟时钟的调度时间转换为所述第一事务的本地调度时间,其中所述第一事务的本地调度时间为所述第一事务相对所述第一处理器的本地时钟的调度时间;
所述第一处理器根据所述第一事务的本地调度时间对所述第一事务进行调度。
3.如权利要求2所述的方法,其特征在于,在所述第一处理器根据所述第一事务的本地调度时间对所述第一事务进行调度之前,所述方法还包括:
所述第一处理器接收第一定时器触发的第一中断信号,所述第一中断信号用于指示所述第一处理器的本地时钟到达所述第一事务的前一事务的本地调度时间;
响应于所述第一中断信号,所述第一处理器调度所述第一事务的前一事务,并调整所述第一定时器的定时时长,使得所述第一定时器的下一中断信号的触发时间为所述第一事务的本地调度时间;
所述第一处理器根据所述第一事务的本地调度时间对所述第一事务进行调度,包括:
响应于所述下一中断信号,所述第一处理器调度所述第一事务。
4.如权利要求2所述的方法,其特征在于,在所述第一处理器根据所述第一事务的本地调度时间对所述第一事务进行调度之前,所述方法还包括:
所述第一处理器确定所述第一事务的调度结束时间;
当所述第一事务的调度结束时间与所述第一事务的下一事务的本地调度时间之间的时间间隔小于预设的时间间隔时,所述第一处理器将所述第一事务和所述第一事务的下一事务合并为一项事务。
5.如权利要求2所述的方法,其特征在于,所述第一处理器根据所述第一事务的本地调度时间对所述第一事务进行调度,包括:
在所述第一处理器调度第一调度队列中的事务的过程中,响应于所述第一处理器的本地时间到达所述第一事务的本地调度时间,所述第一处理器对所述第一事务进行调度,其中所述第一调度队列为所述第一处理器的多个调度队列中的一个,所述多个调度队列还包括第二调度队列和第三调度队列,所述第一调度队列包含本地调度时间位于当前时段的事务,所述第二调度队列包含本地调度时间位于第一时段的事务,所述第三调度队列包含本地调度时间位于所述第一时段之后的事务,其中所述第一时段为所述当前时段的下一时段。
6.如权利要求5所述的方法,其特征在于,所述方法还包括:
所述第一处理器接收第二定时器触发的第二中断信号,所述第二中断信号用于指示所述当前时段结束;
响应于所述第二中断信号,所述第一处理器调度第二调度队列中的事务,并对所述第一调度队列和所述第三调度队列中的事务进行更新,使得所述第一调度队列包含本地调度时间位于第二时段的事务,所述第三调度队列包含本地调度时间位于所述第二时段之后的事务,其中所述第二时段为所述第一时段的下一时段。
7.如权利要求1所述的方法,其特征在于,在所述第一处理器根据所述第一事务相对所述第一处理器的虚拟时钟的调度时间,对所述第一事务进行调度之前,所述方法还包括:
所述第一处理器与所述分布式系统中的其他处理器通信,以将所述第一处理器的虚拟时钟与所述其他处理器的虚拟时钟同步。
8.如权利要求7所述的方法,其特征在于,所述第一处理器为所述多个处理器中的从处理器,所述多个处理器还包括主处理器,
所述第一处理器与所述分布式系统中的其他处理器通信,以将所述第一处理器的虚拟时钟与所述其他处理器的虚拟时钟同步,包括:
所述第一处理器与所述主处理器通信,以获取所述第一处理器与所述主处理器之间的线路延迟信息;
所述第一处理器根据所述线路延迟信息,确定所述第一处理器的虚拟时钟和所述主处理器的虚拟时钟的时间差;
所述第一处理器根据所述时间差,调整所述第一处理器的虚拟时钟,使得所述第一处理器的虚拟时钟与所述主处理器的虚拟时钟同步。
9.如权利要求8所述的方法,其特征在于,所述第一处理器与所述主处理器通信,以获取所述第一处理器与所述主处理器之间的线路延迟信息,包括:
所述第一处理器接收所述主处理器发送的同步消息,并记录所述第一处理器接收所述同步消息的虚拟时间t2;
所述第一处理器接收所述主处理器发送的所述同步消息的跟随消息,所述跟随消息包含所述主处理器发送所述同步消息的虚拟时间t1;
所述第一处理器向所述主处理器发送延迟请求消息,并记录所述第一处理器发送所述延迟请求消息的虚拟时间t3;
所述第一处理器接收所述主处理器发送的延迟响应消息,所述延迟响应消息包含所述主处理器接收所述延迟请求消息的虚拟时间t4。
10.如权利要求9所述的方法,其特征在于,所述第一处理器根据所述线路延迟信息,确定所述第一处理器的虚拟时钟和所述主处理器的虚拟时钟的时间差,包括:
所述第一处理器根据所述虚拟时间t1、虚拟时间t2、虚拟时间t3和虚拟时间t4,确定所述时间差。
11.如权利要求10所述的方法,其特征在于,所述时间差T=(t2-t1-t4+t3)。
12.如权利要求7所述的方法,其特征在于,所述第一处理器为所述多个处理器中的主处理器,所述其他处理器为所述分布式系统的从主处理器,
所述第一处理器与所述分布式系统中的其他处理器通信,以将所述第一处理器的虚拟时钟与所述其他处理器的虚拟时钟同步,包括:
所述第一处理器向所述其他处理器发送同步消息以及所述同步消息的跟随消息,所述跟随消息包含所述第一处理器发送所述同步消息的虚拟时间t1;
所述第一处理器接收所述其他处理器发送的延时请求消息;
所述第一处理器向所述其他处理器发送延时响应消息,所述延时响应消息包含所述第一处理器接收所述延时请求消息的虚拟时间t4,以便所述其他处理器基于所述虚拟时间t1和所述虚拟时间t4确定所述第一处理器的虚拟时钟和所述其他处理器的虚拟时钟之间的时间差,并基于所述时间差调整所述其他处理器的虚拟时钟,使得所述其他处理器的虚拟时钟与所述第一处理器的虚拟时钟同步。
13.如权利要求1所述的方法,其特征在于,在所述第一处理器根据所述第一事务相对所述第一处理器的虚拟时钟的调度时间,对所述第一事务进行调度之前,所述方法还包括:
所述第一处理器对用于表征所述第一处理器的虚拟时钟的变量进行初始化;
所述第一处理器确定所述第一处理器的虚拟时钟的虚拟时间;
所述第一处理器根据所述第一处理器的虚拟时钟的虚拟时间,为所述变量赋值,以校准所述第一处理器的虚拟时钟。
14.如权利要求13所述的方法,其特征在于,所述方法还包括:
所述第一处理器确定所述第一处理器的虚拟时钟的时钟频率,其中所述分布式系统中的各虚拟时钟的时钟频率相同;
所述第一处理器根据所述第一处理器的虚拟时钟的时钟频率,更新所述变量的计数值。
15.一种处理器,其特征在于,所述处理器为分布式系统中的第一处理器,所述分布式系统中的各处理器均配置有虚拟时钟,且所述分布式系统中的各处理器的虚拟时钟同步,
所述第一处理器包括:
存储器,用于存储计算机指令;
控制器,用于执行所述存储器中存储的计算机指令,以执行以下操作:
获取待调度的第一事务;
确定所述第一事务相对所述第一处理器的虚拟时钟的调度时间;
根据所述第一事务相对所述第一处理器的虚拟时钟的调度时间,对所述第一事务进行调度。
16.如权利要求15所述的处理器,其特征在于,所述根据所述第一事务相对所述第一处理器的虚拟时钟的调度时间,对所述第一事务进行调度,包括:
将所述第一事务相对所述第一处理器的虚拟时钟的调度时间转换为所述第一事务的本地调度时间,其中所述第一事务的本地调度时间为所述第一事务相对所述第一处理器的本地时钟的调度时间;
根据所述第一事务的本地调度时间对所述第一事务进行调度。
17.如权利要求16所述的处理器,其特征在于,在所述根据所述第一事务的本地调度时间对所述第一事务进行调度之前,所述控制器还用于执行以下操作:
接收第一定时器触发的第一中断信号,所述第一中断信号用于指示所述第一处理器的本地时钟到达所述第一事务的前一事务的本地调度时间;
响应于所述第一中断信号,调度所述第一事务的前一事务,并调整所述第一定时器的定时时长,使得所述第一定时器的下一中断信号的触发时间为所述第一事务的本地调度时间;
所述根据所述第一事务的本地调度时间对所述第一事务进行调度,包括:
响应于所述下一中断信号,调度所述第一事务。
18.如权利要求16所述的处理器,其特征在于,在所述根据所述第一事务的本地调度时间对所述第一事务进行调度之前,所述控制器还用于执行以下操作:
确定所述第一事务的调度结束时间;
当所述第一事务的调度结束时间与所述第一事务的下一事务的本地调度时间之间的时间间隔小于预设的时间间隔时,所述第一处理器将所述第一事务和所述第一事务的下一事务合并为一项事务。
19.如权利要求16所述的处理器,其特征在于,所述根据所述第一事务的本地调度时间对所述第一事务进行调度,包括:
在所述第一处理器调度第一调度队列中的事务的过程中,响应于所述第一处理器的本地时间到达所述第一事务的本地调度时间,对所述第一事务进行调度,其中所述第一调度队列为所述第一处理器的多个调度队列中的一个,所述多个调度队列还包括第二调度队列和第三调度队列,所述第一调度队列包含本地调度时间位于当前时段的事务,所述第二调度队列包含本地调度时间位于第一时段的事务,所述第三调度队列包含本地调度时间位于所述第一时段之后的事务,其中所述第一时段为所述当前时段的下一时段。
20.如权利要求19所述的处理器,其特征在于,所述控制器还用于执行以下操作:
接收第二定时器触发的第二中断信号,所述第二中断信号用于指示所述当前时段结束;
响应于所述第二中断信号,调度第二调度队列中的事务,并对所述第一调度队列和所述第三调度队列中的事务进行更新,使得所述第一调度队列包含本地调度时间位于第二时段的事务,所述第三调度队列包含本地调度时间位于所述第二时段之后的事务,其中所述第二时段为所述第一时段的下一时段。
21.如权利要求15所述的处理器,其特征在于,在所述根据所述第一事务相对所述第一处理器的虚拟时钟的调度时间,对所述第一事务进行调度之前,所述控制器还用于执行以下操作:
与所述分布式系统中的其他处理器通信,以将所述第一处理器的虚拟时钟与所述其他处理器的虚拟时钟同步。
22.如权利要求21所述的处理器,其特征在于,所述第一处理器为多个处理器中的从处理器,所述多个处理器还包括主处理器,
所述与所述分布式系统中的其他处理器通信,以将所述第一处理器的虚拟时钟与所述其他处理器的虚拟时钟同步,包括:
与所述主处理器通信,以获取所述第一处理器与所述主处理器之间的线路延迟信息;
根据所述线路延迟信息,确定所述第一处理器的虚拟时钟和所述主处理器的虚拟时钟的时间差;
根据所述时间差,调整所述第一处理器的虚拟时钟,使得所述第一处理器的虚拟时钟与所述主处理器的虚拟时钟同步。
23.如权利要求22所述的处理器,其特征在于,所述与所述主处理器通信,以获取所述第一处理器与所述主处理器之间的线路延迟信息,包括:
接收所述主处理器发送的同步消息,并记录所述第一处理器接收所述同步消息的虚拟时间t2;
接收所述主处理器发送的所述同步消息的跟随消息,所述跟随消息包含所述主处理器发送所述同步消息的虚拟时间t1;
向所述主处理器发送延迟请求消息,并记录所述第一处理器发送所述延迟请求消息的虚拟时间t3;
接收所述主处理器发送的延迟响应消息,所述延迟响应消息包含所述主处理器接收所述延迟请求消息的虚拟时间t4。
24.如权利要求23所述的处理器,其特征在于,所述根据所述线路延迟信息,确定所述第一处理器的虚拟时钟和所述主处理器的虚拟时钟的时间差,包括:
根据所述虚拟时间t1、虚拟时间t2、虚拟时间t3和虚拟时间t4,确定所述时间差。
25.如权利要求24所述的处理器,其特征在于,所述时间差T=(t2-t1-t4+t3)。
26.如权利要求21所述的处理器,其特征在于,所述第一处理器为多个处理器中的主处理器,所述其他处理器为所述分布式系统的从主处理器,
所述与所述分布式系统中的其他处理器通信,以将所述第一处理器的虚拟时钟与所述其他处理器的虚拟时钟同步,包括:
向所述其他处理器发送同步消息以及所述同步消息的跟随消息,所述跟随消息包含所述第一处理器发送所述同步消息的虚拟时间t1;
接收所述其他处理器发送的延时请求消息;
向所述其他处理器发送延时响应消息,所述延时响应消息包含所述第一处理器接收所述延时请求消息的虚拟时间t4,以便所述其他处理器基于所述虚拟时间t1和所述虚拟时间t4确定所述第一处理器的虚拟时钟和所述其他处理器的虚拟时钟之间的时间差,并基于所述时间差调整所述其他处理器的虚拟时钟,使得所述其他处理器的虚拟时钟与所述第一处理器的虚拟时钟同步。
27.如权利要求15所述的处理器,其特征在于,在所述根据所述第一事务相对所述第一处理器的虚拟时钟的调度时间,对所述第一事务进行调度之前,所述控制器还用于执行以下操作:
对用于表征所述第一处理器的虚拟时钟的变量进行初始化;
确定所述第一处理器的虚拟时钟的虚拟时间;
根据所述第一处理器的虚拟时钟的虚拟时间,为所述变量赋值,以校准所述第一处理器的虚拟时钟。
28.如权利要求27所述的处理器,其特征在于,所述控制器还用于执行以下操作:
确定所述第一处理器的虚拟时钟的时钟频率,其中所述分布式系统中的各虚拟时钟的时钟频率相同;
根据所述第一处理器的虚拟时钟的时钟频率,更新所述变量的计数值。
29.一种分布式系统,其特征在于,所述分布式系统包括如权利要求15-28中任一项所述的处理器。
30.一种无人机,其特征在于,包括如权利要求29所述的分布式系统。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2017/091105 WO2019000398A1 (zh) | 2017-06-30 | 2017-06-30 | 事务调度方法、处理器、分布式系统和无人机 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108401454A CN108401454A (zh) | 2018-08-14 |
CN108401454B true CN108401454B (zh) | 2021-10-22 |
Family
ID=63094892
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780004456.7A Expired - Fee Related CN108401454B (zh) | 2017-06-30 | 2017-06-30 | 事务调度方法、处理器、分布式系统和无人机 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN108401454B (zh) |
WO (1) | WO2019000398A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110795506A (zh) * | 2019-10-23 | 2020-02-14 | 广州巨杉软件开发有限公司 | 基于分布式逻辑时间戳的分布式数据库管理方法及装置 |
WO2021208868A1 (zh) * | 2020-04-13 | 2021-10-21 | 华为技术有限公司 | 确定时钟的方法和相关装置 |
CN114090269B (zh) * | 2022-01-21 | 2022-04-22 | 北京阿丘科技有限公司 | 业务调度均衡方法、装置、设备及存储介质 |
CN115396060B (zh) * | 2022-08-30 | 2023-07-14 | 深圳市智鼎自动化技术有限公司 | 一种基于激光的同步控制方法及相关装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101086711A (zh) * | 2006-06-11 | 2007-12-12 | 上海全成通信技术有限公司 | 一种多任务运行系统中的任务管理方法 |
EP2328077A1 (en) * | 2005-09-30 | 2011-06-01 | Coware, Inc. | Scheduling in a multicore architecture |
CN104598306A (zh) * | 2014-12-05 | 2015-05-06 | 中国航空工业集团公司第六三一研究所 | Phm仿真验证中的一种进程调度方法 |
CN105900077A (zh) * | 2013-11-05 | 2016-08-24 | 美国国家仪器有限公司 | 分布式系统中无损的基于时间的数据采集和控制 |
CN105959079A (zh) * | 2016-07-14 | 2016-09-21 | 深圳市旗众智能自动化有限公司 | 一种基于分布式控制系统的时钟同步方法 |
CN106126332A (zh) * | 2016-06-27 | 2016-11-16 | 北京京东尚科信息技术有限公司 | 分布式定时任务调度系统及方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003271401A (ja) * | 2002-03-18 | 2003-09-26 | Fujitsu Ltd | 負荷監視機能を有するマイクロプロセッサ |
US7787486B2 (en) * | 2006-11-13 | 2010-08-31 | Honeywell International Inc. | Method and system for achieving low jitter in real-time switched networks |
-
2017
- 2017-06-30 WO PCT/CN2017/091105 patent/WO2019000398A1/zh active Application Filing
- 2017-06-30 CN CN201780004456.7A patent/CN108401454B/zh not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2328077A1 (en) * | 2005-09-30 | 2011-06-01 | Coware, Inc. | Scheduling in a multicore architecture |
CN101086711A (zh) * | 2006-06-11 | 2007-12-12 | 上海全成通信技术有限公司 | 一种多任务运行系统中的任务管理方法 |
CN105900077A (zh) * | 2013-11-05 | 2016-08-24 | 美国国家仪器有限公司 | 分布式系统中无损的基于时间的数据采集和控制 |
CN104598306A (zh) * | 2014-12-05 | 2015-05-06 | 中国航空工业集团公司第六三一研究所 | Phm仿真验证中的一种进程调度方法 |
CN106126332A (zh) * | 2016-06-27 | 2016-11-16 | 北京京东尚科信息技术有限公司 | 分布式定时任务调度系统及方法 |
CN105959079A (zh) * | 2016-07-14 | 2016-09-21 | 深圳市旗众智能自动化有限公司 | 一种基于分布式控制系统的时钟同步方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2019000398A1 (zh) | 2019-01-03 |
CN108401454A (zh) | 2018-08-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108401454B (zh) | 事务调度方法、处理器、分布式系统和无人机 | |
JP7000649B2 (ja) | ビーコンに基づくワイヤレス同期化 | |
CN110870229A (zh) | 用于使从设备同步的技术 | |
US20140002683A1 (en) | Image pickup apparatus, image pickup system, image pickup method and computer readable non-transitory recording medium | |
US20160147568A1 (en) | Method and apparatus for data transfer to the cyclic tasks in a distributed real-time system at the correct time | |
CN114095109A (zh) | 一种时钟同步方法、装置、设备及存储介质 | |
CN107479426B (zh) | 一种机器人同步表演控制系统及方法 | |
CN110636603A (zh) | 飞行器时间同步系统及方法 | |
US20220222200A1 (en) | Timed-trigger synchronization enhancement | |
US20190351545A1 (en) | Cluster control method, cluster control system, and terminal device | |
CN108964825A (zh) | 校时方法、校时装置和校时服务器 | |
US20200116868A1 (en) | Satellite signal processing apparatus and unmanned aerial vehicle | |
US11868175B2 (en) | Heterogeneous computing systems and methods for clock synchronization | |
CN109660310B (zh) | 一种时钟同步的方法、装置、计算设备及计算机存储介质 | |
CN110572234A (zh) | 一种基于串口实现时钟同步的方法、智能终端及存储介质 | |
CN113711511B (zh) | 支持多时间同步协议的工业设备 | |
CN112003667B (zh) | 时序管理方法、设备及系统 | |
CN113204516A (zh) | 处理器时间同步的方法和装置 | |
CN103945237A (zh) | 一种时钟同步方法、系统及数字电视设备、epg服务器 | |
CN209805837U (zh) | 一种vr时间同步器 | |
WO2019037073A1 (zh) | 一种数据同步的方法、装置及服务器 | |
CN110912634A (zh) | 基于spi实现时钟同步的方法、存储介质及终端设备 | |
CN111193570A (zh) | 指令执行的方法、装置、系统、介质和电子设备 | |
GB2526810A (en) | Method and apparatus for transmitting sensor data in a wireless network | |
CN110794919B (zh) | 基于mdio实现时钟同步的方法、智能终端及存储介质 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20211022 |