CN118132214A - 控制器及包括控制器的车辆 - Google Patents
控制器及包括控制器的车辆 Download PDFInfo
- Publication number
- CN118132214A CN118132214A CN202211528311.6A CN202211528311A CN118132214A CN 118132214 A CN118132214 A CN 118132214A CN 202211528311 A CN202211528311 A CN 202211528311A CN 118132214 A CN118132214 A CN 118132214A
- Authority
- CN
- China
- Prior art keywords
- operating system
- general
- real
- controller
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 claims abstract description 186
- 230000008569 process Effects 0.000 claims abstract description 166
- 238000012544 monitoring process Methods 0.000 claims description 28
- 230000006870 function Effects 0.000 claims description 18
- 238000004891 communication Methods 0.000 claims description 16
- 230000002159 abnormal effect Effects 0.000 claims description 8
- 230000000737 periodic effect Effects 0.000 claims description 6
- 230000001960 triggered effect Effects 0.000 claims description 6
- 230000027455 binding Effects 0.000 claims description 3
- 238000009739 binding Methods 0.000 claims description 3
- 230000004044 response Effects 0.000 claims description 3
- 230000007246 mechanism Effects 0.000 description 13
- 230000005856 abnormality Effects 0.000 description 7
- 238000011161 development Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 230000003993 interaction Effects 0.000 description 6
- 206010063385 Intellectualisation Diseases 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000012423 maintenance Methods 0.000 description 4
- 230000000903 blocking effect Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 230000000052 comparative effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000000593 degrading effect Effects 0.000 description 1
- 125000000524 functional group Chemical group 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000002618 waking effect Effects 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3055—Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
-
- 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/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Hardware Redundancy (AREA)
Abstract
本申请涉及控制器及包括控制器的车辆,所述控制器包括:通用操作系统,所述通用操作系统配置成能够执行任务;以及实时操作系统,所述实时操作系统配置成能够基于关键进程调度表来对所述通用操作系统的关键进程执行调度操作,其中所述关键进程调度表中的配置信息包括所述通用操作系统中需要得到确定性调度的进程信息。本申请的控制器能够提高在通用操作系统环境下应用进程调度执行的确定性。
Description
技术领域
本申请涉及车辆领域,具体而言,涉及控制器及包括控制器的车辆。
背景技术
车辆智能化是近年来车辆技术发展的明显趋势。随着智能化技术的发展,车辆域控制器被引入,以替代传统的分布式控制器,承担起智能驾驶、智能座舱等功能域的计算、控制、管理工作。为了应对快速的软件产品迭代需求、缩短开发周期、降低研发成本,域控制器芯片供应商、汽车电子零部件供应商及整车厂通常选择诸如Linux系统之类的通用操作系统作为域控制器搭载的操作系统之一,因为其具有开源免费、应用更新部署便捷等优点。
车辆智能化对诸如Linux系统之类的通用操作系统的任务调度和执行提出了确定性的要求。然而,由于Linux系统在缓存机制、资源争用等方面存在限制以及Linux系统的内核过于复杂,因而Linux系统无法进行全面的静态测试,无法分析任务最差执行时间,并且仅靠针对Linux本身的优化和实时性改造,无法实现严格的硬实时系统,无法实现确定性的需求。
发明内容
本申请的实施例提供了一种控制器及包括控制器的车辆,既能够提高通用操作系统的任务调度和执行的确定性,还能够有效避免控制器中软件迭代困难、维护成本增加等问题。
根据本申请的一方面,提供一种控制器,所述控制器包括:通用操作系统,所述通用操作系统配置成能够执行任务;以及实时操作系统,所述实时操作系统配置成能够基于关键进程调度表来对所述通用操作系统的关键进程执行调度操作,其中所述关键进程调度表中的配置信息包括所述通用操作系统中需要得到确定性调度的进程信息。
在本申请的一些实施例中,可选地,所述调度操作包括:根据所述关键进程调度表中的配置信息识别出所述通用操作系统的关键进程,并且基于所述进程信息为所述关键进程分配处理器绑定、实时调度策略和优先级。
在本申请的一些实施例中,可选地,所述通用操作系统和所述实时操作系统配置成至少基于中断接口技术实现通信连接,并且
所述调度操作进一步包括:基于所识别出的关键进程而对所述通用操作系统触发中断请求,使得所述通用操作系统能够响应于所述中断请求而调用中断处理程序以执行所述关键进程。
在本申请的一些实施例中,可选地,所述实时操作系统进一步配置成能够对所述通用操作系统的关键进程执行监控操作,所述监控操作包括:在所述通用操作系统执行所述关键进程的过程中,获取所述通用操作系统的执行结果,并且基于所述关键进程调度表确定所述执行结果是否出现异常。
在本申请的一些实施例中,可选地,所述监控操作进一步包括:在检测出所述执行结果出现异常的情况下,执行以下中的一项或多项:通知所述通用操作系统针对所述异常进行异常处理;以及基于所述异常确定相对应的任务,并且针对所述相对应的任务执行能够替代所述任务的功能的操作。
在本申请的一些实施例中,可选地,所述通用操作系统和所述实时操作系统分别基于以下中的任一种方式构建:所述通用操作系统和所述实时操作系统分别部署在同一芯片的不同核上;所述通用操作系统和所述实时操作系统分别部署在不同的芯片上;以及使用虚拟化技术以使得所述通用操作系统和所述实时操作系统能够同时运行。
在本申请的一些实施例中,可选地,所述通用操作系统中需要得到确定性调度的进程信息包括以下中的一项或多项:周期任务及相应的执行周期、事件触发任务的触发条件、任务的最差执行时间或截止期限、所述通用操作系统对任务的调度策略、任务优先级、任务执行所需要的资源、任务绑定到的处理器、多任务之间的调度顺序、任务产出数据合理范围、冗余计算数据、进程执行过程监测点。
在本申请的一些实施例中,可选地,所述关键进程调度表预先配置在所述实时操作系统可读的存储模块中,并且在所述实时操作系统基于所述关键进程调度表执行调度操作的过程中,所述关键进程调度表是可更改的。
在本申请的一些实施例中,可选地,所述通用操作系统是Linux系统。
根据本申请的又一方面,提供一种车辆,所述车辆包括如上文中所述的任意一种控制器。
根据本申请的另一方面,提供一种用于控制器的方法,所述控制器包括通用操作系统和实时操作系统,所述通用操作系统配置成能够执行任务,所述方法包括:由所述实时操作系统基于关键进程调度表来对所述通用操作系统的关键进程执行调度操作,其中所述关键进程调度表中的配置信息包括所述通用操作系统中需要得到确定性调度的进程信息。
根据本申请的又一另外的方面,提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,其特征在于,当所述指令由处理器执行时,使得所述处理器执行如上文所述的任意一种方法。
本申请依托实时操作系统和系统间交互机制的确定性来实现对通用操作系统的关键进程的调度,提高了通用操作系统中部署的关键进程的确定性,使得通用操作系统中关键周期任务触发执行稳定。
附图说明
从结合附图的以下详细说明中,将会使本申请的上述和其他目的及优点更加完整清楚,其中,相同或相似的要素采用相同的标号表示。
图1示出了根据本申请的一个实施例的控制器100;
图2A至图2C分别示出了根据本申请的一个实施例的通用操作系统110和实时操作系统120在控制器100中的构建方式的示意图;
图3示出了根据本申请的一个实施例的由实时操作系统120对通用操作系统110执行调度操作的过程的示意图。
具体实施方式
出于简洁和说明性目的,本文主要参考其示范实施例来描述本申请的原理。但是,本领域技术人员将容易地认识到相同的原理可等效地应用于所有类型的控制器及包括该控制器的车辆,并且可以在其中实施这些相同或相似的原理,任何此类变化不背离本申请的真实精神和范围。
下面将结合图1来描绘本申请的一个实施例的控制器100。
图1示出了根据本申请的一个实施例的控制器100。如图1所示,控制器100包括通用操作系统110和实时操作系统120。在一些实施例中,通用操作系统110与实时操作系统120之间可以实现互相协作通信。可选地,通用操作系统110与实时操作系统120可以通过以下中的一项或多项通信协作机制来实现数据交互:共享内存、中断技术或网络通讯等机制。
通用操作系统110可以执行需要灵活变化迭代的任务、对算力需求高的任务或者需要特殊驱动程序的任务。在一些实施例中,通用操作系统110可以是Linux系统。例如,在通用操作系统110是Linux系统的实施例中,通用操作系统110可以执行需要特殊Linux驱动程序的任务。然而,通用操作系统110具有不确定的缺点,无法确保其任务被确定地调度和执行。实时操作系统120具有实时性和确定性,可以执行严格的实时控制。为了满足车辆智能化对通用操作系统110的任务调度和执行所提出的确定性的要求,本申请可以利用实时操作系统120对通用操作系统110要执行的任务进行调度和监控,以确保通用操作系统110能够确定地调度和执行其用户任务。
接下来,将结合图2A至图2C来描绘本申请的实施例的通用操作系统110和实时操作系统120的构建方式。
图2A至图2C分别示出了根据本申请的一个实施例的通用操作系统110和实时操作系统120在控制器100中的构建方式的示意图。
如图2A所示,通用操作系统110与实时操作系统120可以通过部署在同一控制器芯片210上的不同的内核上来实现其功能。其中,通用操作系统110可以部署在通用内核221上,实时操作系统120可以部署在实时内核222上。在一些实施例中,可以利用基于ARM架构的异构多核片上系统(SoC)来实现通用操作系统110与实时操作系统120。例如,在ARM架构的A核上部署通用操作系统110,在ARM架构的R核或者M核上部署实时操作系统120。
图2A所示出的实施例可以通过共享内存来实现数据交互,其中所采用的内存装置可以是通用操作系统110与实时操作系统120所部署的SOC的内存,也可以是片外多口随机存取存储器(RAM)。图2A所示出的实施例还可以通过中断机制来实现数据交互,其中控制器芯片210还可以包括连接于通用内核221与实时内核222之间的中断接口,以用于实现通用操作系统110与实时操作系统120之间的通信。例如,实时操作系统120可以通过中断接口向通用操作系统110发起中断请求。另外,图2A所示出的实施例还可以通过网络通讯机制来实现数据交互,其中所采用的网络通讯机制可以是诸如CAN或TSN之类的确定性的网络通讯机制。
如图2B所示,通用操作系统110与实时操作系统120可以通过部署在不同的控制器芯片上来实现其功能。其中,通用操作系统110可以部署在通用芯片211上,实时操作系统120可以部署在实时芯片212上。在该实施例中,控制器100可以通过两个或多个芯片的组合来实现其功能。在其它一些实施例中,通用芯片211可以形成其相应的通用控制器,实时芯片212可以形成其相应的实时控制器,通用操作系统110与实时操作系统120的功能可以通过通用控制器和实时控制器组合形成的多操作系统控制器来实现。
在一些实施例中,还可以通过虚拟化技术来实现通用操作系统110与实时操作系统120的功能。例如,如图2C所示的实施例,控制器100可以包括控制器芯片210,其中实时操作系统120可以在控制器芯片210上运行。在实时操作系统120中,可以通过Hypervisor虚拟化的方法来虚拟出通用操作系统110。除了图2C所示的实施例之外,还可以通过其它的方式来使用虚拟化技术,以使得通用操作系统110和实时操作系统120能够同时运行。例如,可以将Hypervisor直接运行在控制器芯片上,向下直接管理控制器芯片的所有资源,向上通过Hypervisor创建多个虚拟机,并且在虚拟机上安装通用操作系统110和实时操作系统120。
另外,应当领会的是,图2B和图2C所示出的实施例也可以采用针对图2A的实施例所描述的共享内存、中断或网络通讯等方式来实现通用操作系统110与实时操作系统120之间的通信。
在一些实施例中,通用操作系统110可以配置成能够执行任务,实时操作系统120可以配置成基于关键进程调度表360(参见图3)来对通用操作系统110的关键进程执行调度操作。可选地,一个任务可以作为一个进程来实现,其中一个进程可以是程序的一次运行。可选地,关键进程调度表360中的配置信息可以包括通用操作系统110中需要得到确定性调度的进程信息。本文将需要得到确定性调度的进程称为关键进程,在一些实施例中,关键进程可以是自动驾驶系统中与乘客安全相关的进程。由于通用操作系统110的不确定性可能会严重影响到用户体验和乘客生命财产安全,因此,本申请的实施例将与乘客安全相关的进程确定为关键进程,以便通过实时操作系统120为此类进程提供确定性调度。在其它一些实施例中,关键进程也可以是软件子系统状态管理和监控等方面的进程。
本申请将关键进程调度表作为调度通用操作系统110执行进程的基础。其中,关键进程调度表中的配置信息可以包括通用操作系统110中需要得到确定性调度的进程信息。在一些实施例中,通用操作系统110中需要得到确定性调度的进程信息可以包括进程调度信息,其中进程调度信息可以包括以下中的一项或多项:周期任务及其执行周期、事件触发任务的触发条件、任务的最差执行时间或截止期限、通用操作系统对任务的调度策略、任务优先级、任务执行所需要的资源、任务绑定到的处理器(即,CPU亲和性),多任务之间的调度顺序。
在一些实施例中,技术人员可以根据实际的控制需求来编写和制作关键进程调度表360。可选地,关键进程调度表360可以预先配置并写入实时操作系统120可读的非易失性存储设备内。可选地,实时操作系统120还可以通过其它方式来获取关键进程调度表360,例如通过网络获取或者通过通信协作机制从通用操作系统110侧获取。在一些实施例中,为了应对变化的外部需求,可以同时存在多份关键进程调度表,以供实时操作系统120选择。另外可选地,为了实时响应于外部需求的变化,在实时操作系统120基于关键进程调度表360执行调度操作的过程中,关键进程调度表360是可更改的。通过运行时修改关键进程调度表360,可以灵活改变通用操作系统110中确定性任务的执行时序和调度策略。另外,还可以在运行时或启动等多个阶段切换关键进程调度表360,使得实时操作系统120对通用操作系统110表现出不同的触发和检测动作,从而实现通用操作系统110中关键进程调度方式的灵活变化。在一些实施例中,关键进程调度表360可以是以下中的任一种形式:可扩展标记语言(XML)、JSON(JavaScript Object Notation)、自定义二进制文件。
为了进一步确保通用操作系统110在特定时刻对关键进程的确定性执行,在一些实施例中,实时操作系统120可以进一步配置成基于关键进程调度表360来对通用操作系统110的关键进程执行监控操作,以便实时检测通用操作系统110对关键进程的运行状态。可选地,所述监控操作包括:在通用操作系统110执行关键进程的过程中,获取通用操作系统110的执行结果,并且基于关键进程调度表360确定所述执行结果是否出现异常。针对实时操作系统120执行监控操作的实施例,关键进程调度表360包含的信息可以包括结果检测信息,其中结果检测信息可以包括以下中的一项或多项:任务产出数据合理范围、冗余计算数据、进程执行过程监测点。
在一些实施例中,可以在实时操作系统120上开发软件模块,以用于实现对通用操作系统110内的关键进程进行调度和/或监控操作。对应于能够对通用操作系统110内的关键进程同时进行调度和监控的实施例,可以在实时操作系统120上开发进程调度和监控模块370(参见图3)。
接下来,将结合图3来描述根据本申请的一个实施例的由实时操作系统120对通用操作系统110执行调度操作的过程。
图3示出了根据本申请的一个实施例的由实时操作系统120对通用操作系统110执行调度操作的过程的示意图。应当领会的是,经由对应于通用操作系统110的框线所圈出的部分表示通用操作系统110侧能够执行的操作,经由对应于实时操作系统120的框线所圈出的部分表示实时操作系统120侧能够执行的步骤。
如图3所示,在实时操作系统120侧,实时操作系统120能够获取到关键进程调度表360。相应地,在一些实施例中,实时操作系统120对通用操作系统110所执行的调度操作可以包括:获取关键进程调度表360,并且读取该关键进程调度表360。可选地,实时操作系统120可以基于外部需求从多个关键进程调度表中选择合适的关键进程调度表360,并读取该关键进程调度表360。如图3所示,在读取关键进程调度表360的过程中,实时操作系统120还可以对所读取到的关键进程调度表进行解析。在一些实施例中,根据关键进程调度表360中的配置信息,实时操作系统120可以识别出通用操作系统110的关键进程,并且通过在实时操作系统120上所开发的进程调度和监控模块370来基于进程信息为该关键进程分配处理器绑定、实时调度策略和优先级。可选地,同一优先级内只分配同一功能组进程或单一进程。
在图3所示的实施例中,通用操作系统110和实时操作系统120可以基于中断接口技术实现通信连接。相对应地,实时操作系统120针对关键进程所执行的调度操作可以进一步包括:基于所识别出的通用操作系统110的关键进程而对通用操作系统110触发中断请求,使得通用操作系统110能够响应于该中断请求而调用其中的中断处理程序310来执行相应的关键进程。可选地,通用操作系统110可以通过调度、杀死、阻塞其进程(例如,Linux进程)来执行相应的关键进程。在本实施例中,实时操作系统120基于中断接口技术来向通用操作系统110传送信号以执行调度操作,在其它实施例中,实时操作系统120可以基于其它通信协作机制来触发通用操作系统110执行关键进程。
在一些实施例中,通过通用操作系统110与实时操作系统120之间的通信协作机制,可以由实时操作系统120基于关键进程的当前进程分配或优先级分配来管理通用操作系统110中用于唤醒进程的资源。其中,通用操作系统110中用于唤醒进程的资源包括但不限于一个或多个互斥锁、文件、信号量,条件变量等。基于上述操作,使得通用操作系统110的进程仅因当前资源而阻塞。
在一些实施例中,实时操作系统120可以通过中断技术来使用通用操作系统110内的中断处理程序310,从而对信号量320进行操作,以实现通用操作系统110的进程阻塞状态的解除。
在图3中所示出的通用操作系统110一侧,示意出了解除进程阻塞状态的一种实现方法。如图3所示,通用操作系统110的进程设计为循环执行,在循环逻辑开始时减少信号量320。在减少信号量320后,通用操作系统110开始执行本周期内需要执行的代码。在每周期开始时,因为信号量320减少后会小于零,进程阻塞。在每周期执行代码的过程中,通用操作系统110经由其中的调度器330唤醒实时进程340,以执行当前的进程。在本周期执行完代码后,不主动增加信号量,依照循环逻辑进入程序入口,因为无法成功减少信号量再次变为阻塞状态。
如上文所描述的,在实时操作系统120一侧,实时操作系统120依照关键进程调度表360配置产生对通用操作系统110的中断。相对应地,在通用操作系统110一侧,中断处理程序360经调用后增加循环逻辑中的信号量320,从而关键进程实现的条件得到满足,实现关键进程所需的资源得到唤醒,通用操作系统110的进程阻塞状态得以解除。
如图3所示,实时进程340在执行当前的进程之后,会计算出相应的执行结果350。为了进一步保证通用操作系统110的确定性,图3所示出的实施例还通过实时操作系统120对通用操作系统110的执行状态进行监控。如图3所示,在通用操作系统110计算出执行结果350之后,实时操作系统120一侧的进程调度和监控模块370可以对执行结果350进行检测。可选地,进程调度和监控模块370可以基于关键进程调度表360中所包含的结果检测信息来判断执行结果350是否出现异常。其中,出现异常的情况可以包括任务产出数据超出合理范围,进程执行的时刻不符合关键进程调度表360中的特定时刻等。在一些实施例中,实时操作系统120一侧还设有高精时钟300,其中高精时钟300可以为进程调度和监控模块370提供精确的时间信号,以用于确保进程调度和监控模块370的确定性周期执行。
在一些实施例中,若实时操作系统120在对通用操作系统110的关键进程监控中发现异常,则采取异常处理操作。可选地,在检测出执行结果350出现异常的情况下,可以通知通用操作系统110针对所述异常执行异常处理程序380,或者可以基于所述异常确定相对应的任务,并且针对所述相对应的任务执行能够替代所述任务的功能的操作(例如,图3中所示出的功能保持程序390)。其中,通用操作系统110所执行的异常处理程序380的内容可以包括:基于所述异常确定相对应的任务,并且重启相应的关键进程。
针对异常的处理,在实时操作系统120的一侧,除了执行功能保持程序390之外,还可以执行功能降级程序。也就是说,在通用操作系统110所执行的某个关键进程出现异常的情况下,实时操作系统120可以针对该出现异常的关键进程执行替代该关键进程的功能的操作,其中所述替代功能的操作包括能够保持相对应的功能的操作(对应于功能保持程序390)或者能够实现较次一级的功能的操作(对应于功能降级程序)。例如,如果出现异常的关键进程所对应的任务是维持一定量的车辆运行速度,则相应的功能保持程序390所执行的任务是保持该车辆原先的运行速度,功能降级程序所执行的任务是保持该车辆较原先的运行速度低的运行速度。
根据本申请的另一方面,提供一种车辆,所述车辆包括如上文所述的任意一种控制器100。本申请中所称的车辆意在表示具有驱动系统的任何适当的车辆,例如,混合动力汽车、电动车、插电式混动电动车等等。
由于通用操作系统110的不确定性会严重影响到用户体验和乘客生命财产安全,因此车辆智能化对通用操作系统110的任务调度和执行提出了确定性的要求。在对照实施例中,针对基于ARM架构的SoC部署操作系统且通用操作系统是Linux系统的情况,在项目开发中由于无法实现任务确定性调度和监控,因而对实时性和确定性有要求的任务不能部署在搭载Linux系统的A核上,此时,往往需要移植已有的Linux驱动和程序库到实时操作系统。对照实施例的上述操作增加了项目开发工作量,增加了运行实时操作系统的M或R核的负载,对A核计算资源造成浪费。另外,相较于Linux系统,实时操作系统中部署的应用任务更新迭代困难,往往需要整个系统和应用程序一起编译和发布,再进行整个系统镜像的推送更新。此时,若因为确定性限制将大量的任务移植部署在实时操作系统上,则会造成软件迭代困难,增加维护成本。也就是说,对照实施例因为Linux任务调度和执行不确定对ARM架构的SoC造成了增加M或R核的负载、浪费A核计算资源、软件迭代困难、维护成本增加等问题。
为了解决对照实施例的上述问题,本申请的实施例将通用操作系统110(例如,Linux系统)的调度机制、外部实时操作系统120和系统间通讯同步机制相结合,对通用操作系统110进程进行确定性调度和监控,有效提高通用操作系统110环境下应用进程的调度和执行确定性,同时还可以对不满足确定性调度执行需求的异常状况进行可靠的监测和处理。本申请的实施例既可以保证通用操作系统110进程的确定性,又可以避免控制器芯片中一部分负载过大而另一部分浪费计算资源的现象,同时还可以使得软件能够灵活地迭代更新,有效降低了维护成本。在一些实施例中,若需要更新通用操作系统110的程序,则只需更新通用操作系统110内该程序的执行文件,无需变更实时操作系统120和关键进程调度表360。在一些实施例中,若需更新关键进程调度策略,则只需更新关键进程调度表360,无需更新通用操作系统110中的执行文件和实时操作系统120。在一些实施例中,关键进程调度表360运行时可更改,以应对多变的车辆环境。在一些实施例中,本申请还能够实现构造状态机的功能,其中,状态机的输入包括但不限于:通用操作系统110进程调度状态、通用操作系统110进程结果监测状态、域控制器外部需求输入,输出包括但不限于:可被其他监控程序采信的当前子系统运行状态、关键进程调度表360的选择、是否执行异常处理。
根据本申请的又一方面,提供一种用于控制器100的方法。其中,控制器可以包括通用操作系统110和实时操作系统120,且通用操作系统可以配置成能够执行任务。在一些实施例中,所述方法包括:由实时操作系统120基于关键进程调度表360来对通用操作系统110的关键进程执行调度操作,其中关键进程调度表360中的配置信息包括通用操作系统110中需要得到确定性调度的进程信息。为了进一步确保通用操作系统110的确定性,所述方法还可以包括对通用操作系统110的关键进程执行监控操作。其中,所述方法中的调度操作和监控操作如本申请的上文所述的任一方面所述,在此就不再赘述。
根据本申请的又一另外的方面,提供一种计算机可读存储介质,其中存储有指令,当所述指令由处理器执行时,使得所述处理器执行如上文所述的任意一种用于控制器的调度方法。本申请中所称的计算机可读介质包括各种类型的计算机存储介质,可以是通用或专用计算机能够存取的任何可用介质。举例而言,计算机可读介质可以包括RAM、ROM、EPROM、E2PROM、寄存器、硬盘、可移动盘、CD-ROM或其他光盘存储器、磁盘存储器或其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码单元并能够由通用或专用计算机、或者通用或专用处理器进行存取的任何其他临时性或者非临时性介质。如本文所使用的盘通常磁性地复制数据,而碟则用激光来光学地复制数据。上述的组合也应当包括在计算机可读介质的保护范围之内。示例性存储介质耦合到处理器以使得该处理器能从/向该存储介质读写信息。在替换方案中,存储介质可以被整合到处理器。处理器和存储介质可驻留在ASIC中。ASIC可驻留在用户终端中。在替换方案中,处理器和存储介质可作为分立组件驻留在用户终端中。
本申请依托实时操作系统120和硬件中断等系统间交互机制的确定性,提高通用操作系统110中部署的关键进程的确定性,使得通用操作系统110中关键周期任务触发执行稳定。另外,本申请还可以在截止时间到达时,对通用操作系统110进程的产出进行检测,并可保证对异常情况进行可靠处理。在一些实施例中,通过运行时修改关键调度表360,可以灵活改变确定性任务的执行时序和调度策略。
以上仅为本申请的具体实施方式,但本申请的保护范围并不局限于此。本领域的技术人员可以根据本申请所披露的技术范围想到其他可行的变化或替换,此等变化或替换皆涵盖于本申请的保护范围之中。在不冲突的情况下,本申请的实施方式及实施方式中的特征还可以相互组合。本申请的保护范围以权利要求的记载为准。
Claims (12)
1. 一种控制器,其特征在于,所述控制器包括:
通用操作系统,所述通用操作系统配置成能够执行任务;以及
实时操作系统,所述实时操作系统配置成能够基于关键进程调度表来对所述通用操作系统的关键进程执行调度操作,其中所述关键进程调度表中的配置信息包括所述通用操作系统中需要得到确定性调度的进程信息。
2. 根据权利要求1所述的控制器,其特征在于,所述调度操作包括:根据所述关键进程调度表中的配置信息识别出所述通用操作系统的关键进程,并且基于所述进程信息为所述关键进程分配处理器绑定、实时调度策略和优先级。
3.根据权利要求2所述的控制器,其特征在于,所述通用操作系统和所述实时操作系统配置成至少基于中断接口技术实现通信连接,并且
所述调度操作进一步包括:基于所识别出的关键进程而对所述通用操作系统触发中断请求,使得所述通用操作系统能够响应于所述中断请求而调用中断处理程序以执行所述关键进程。
4.根据权利要求1所述的控制器,其特征在于,所述实时操作系统进一步配置成能够对所述通用操作系统的关键进程执行监控操作,所述监控操作包括:在所述通用操作系统执行所述关键进程的过程中,获取所述通用操作系统的执行结果,并且基于所述关键进程调度表确定所述执行结果是否出现异常。
5. 根据权利要求4所述的控制器,其特征在于,所述监控操作进一步包括:在检测出所述执行结果出现异常的情况下,执行以下中的一项或多项:
通知所述通用操作系统针对所述异常进行异常处理;以及
基于所述异常确定相对应的任务,并且针对所述相对应的任务执行能够替代所述任务的功能的操作。
6.根据权利要求1所述的控制器,其特征在于,所述通用操作系统和所述实时操作系统分别基于以下中的任一种方式构建:
所述通用操作系统和所述实时操作系统分别部署在同一芯片的不同核上;
所述通用操作系统和所述实时操作系统分别部署在不同的芯片上;以及
使用虚拟化技术以使得所述通用操作系统和所述实时操作系统能够同时运行。
7.根据权利要求1所述的控制器,其特征在于,所述通用操作系统中需要得到确定性调度的进程信息包括以下中的一项或多项:
周期任务及相应的执行周期、事件触发任务的触发条件、任务的最差执行时间或截止期限、所述通用操作系统对任务的调度策略、任务优先级、任务执行所需要的资源、任务绑定到的处理器、多任务之间的调度顺序、任务产出数据合理范围、冗余计算数据、进程执行过程监测点。
8.根据权利要求1所述的控制器,其特征在于,所述关键进程调度表预先配置在所述实时操作系统可读的存储模块中,并且在所述实时操作系统基于所述关键进程调度表执行调度操作的过程中,所述关键进程调度表是可更改的。
9.根据权利要求1所述的控制器,其特征在于,所述通用操作系统是Linux系统。
10.一种车辆,其特征在于,所述车辆包括如权利要求1至9中任一项所述的控制器。
11.一种用于控制器的方法,其特征在于,所述控制器包括通用操作系统和实时操作系统,所述通用操作系统配置成能够执行任务,所述方法包括:
由所述实时操作系统基于关键进程调度表来对所述通用操作系统的关键进程执行调度操作,其中所述关键进程调度表中的配置信息包括所述通用操作系统中需要得到确定性调度的进程信息。
12.一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,其特征在于,当所述指令由处理器执行时,使得所述处理器执行如权利要求11所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211528311.6A CN118132214A (zh) | 2022-12-01 | 2022-12-01 | 控制器及包括控制器的车辆 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211528311.6A CN118132214A (zh) | 2022-12-01 | 2022-12-01 | 控制器及包括控制器的车辆 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118132214A true CN118132214A (zh) | 2024-06-04 |
Family
ID=91239455
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211528311.6A Pending CN118132214A (zh) | 2022-12-01 | 2022-12-01 | 控制器及包括控制器的车辆 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118132214A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN119025248A (zh) * | 2024-10-25 | 2024-11-26 | 小米汽车科技有限公司 | 任务调度方法、装置、设备、存储介质及芯片 |
-
2022
- 2022-12-01 CN CN202211528311.6A patent/CN118132214A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN119025248A (zh) * | 2024-10-25 | 2024-11-26 | 小米汽车科技有限公司 | 任务调度方法、装置、设备、存储介质及芯片 |
CN119025248B (zh) * | 2024-10-25 | 2025-03-25 | 小米汽车科技有限公司 | 任务调度方法、装置、设备、存储介质及芯片 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5688591B2 (ja) | システム・タスクを実行する複数の処理コアを含む情報処理システムの決定論的実行および同期のための方法 | |
CA2061298C (en) | Method for detecting critical failures during the building of complex computer programs from source code parts | |
Kritikakou et al. | Distributed run-time WCET controller for concurrent critical tasks in mixed-critical systems | |
Murthy et al. | Resource management in real-time systems and networks | |
US20120101791A1 (en) | Controlling simulation systems | |
WO2020121840A1 (ja) | 演算制御装置 | |
US7971205B2 (en) | Handling of user mode thread using no context switch attribute to designate near interrupt disabled priority status | |
Henzinger et al. | Time-safety checking for embedded programs | |
US20190205213A1 (en) | Vehicle control system having a hierarchy distributed architecture | |
CN118132214A (zh) | 控制器及包括控制器的车辆 | |
CN112286847A (zh) | 一种提升系统外部中断响应速度的方法、装置和控制器 | |
Resmerita et al. | Applying real-time programming to legacy embedded control software | |
CN105474174B (zh) | 控制时间密集的指令 | |
Kim et al. | Reducing memory interference latency of safety-critical applications via memory request throttling and Linux Cgroup | |
Gamatié et al. | Synchronous modeling of avionics applications using the signal language | |
Aussaguès et al. | PharOS, a multicore OS ready for safety-related automotive systems: results and future prospects | |
Arnold et al. | Design of tightly-coupled multiprocessing programming | |
US20190121327A1 (en) | Numerical controller | |
Nandi et al. | Work-in-progress: a DSL for the safe deployment of runtime monitors in cyber-physical systems | |
Fuhrman et al. | On designing software architectures for next-generation multi-core ECUs | |
Chabrol et al. | A spatial and temporal partitioning approach for dependable automotive systems | |
EP4296856A1 (en) | Computer system and method for executing an automotive customer function | |
Manjiyani et al. | Open cognitive control system architecture | |
CN111563000A (zh) | 一种文件生成方法、智能终端及存储介质 | |
Gliwa | Operating Systems |
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 |