Embedded 如果硬实时任务超过其截止日期,会发生什么情况?

Embedded 如果硬实时任务超过其截止日期,会发生什么情况?,embedded,task,scheduler,rtos,Embedded,Task,Scheduler,Rtos,我想通过使用RTOS更具体地理解硬实时系统的基本概念。根据RTOS的定义,它保证实时任务永远不会超过其截止日期 void RT_task1(void *params) { do_inits(); while (true) { ... // Do the job whatever it is in realtime. Delay(20); // Wait for 20 ms. } } 这是RTOS中基于任务的实时系统的简单结构

我想通过使用RTOS更具体地理解硬实时系统的基本概念。根据RTOS的定义,它保证实时任务永远不会超过其截止日期

void RT_task1(void *params)
{
    do_inits();
    while (true)
    {
         ... // Do the job whatever it is in realtime.
         Delay(20); // Wait for 20 ms.
    }
 }
这是RTOS中基于任务的实时系统的简单结构。在这一点上,我想知道这些问题

1) 本代码块中RTO的定义中提到的“截止日期”是什么。是“延迟”时间20毫秒还是由“执行任务”部分确定的其他时间

2) 如果超过最后期限,会发生什么?我知道RTOS保证了这一点,但在“假设”情况下:我们是否定义了灾难性错误过程

3) RTO如何保证最后期限?我的意思是,我可以运行很多RT任务,所以CPU资源可能不够,或者一个编程错误的任务比其他RT任务消耗太多时间?“受保护”部分在哪里

我知道RTOS和传统OS的关键区别在于调度器。RTOS使用确定性的方式为用户提供调度保证。然而,这些信息并不能完全满足我对整个系统的理解


谢谢。

硬实时系统的定义是,错过最后期限被视为失败。因此,“失败”是指如果硬实时系统错过了最后期限就会发生的情况。故障的后果因应用程序的不同而不同,因此,一般来说,您只能说发生了故障

使用RTOS并不能自动保证实时任务不会错过最后期限。就像挥动锤子并不能保证你永远不会错过钉子和击中拇指一样。RTOS只是一种工具。如果使用得当,它可以帮助开发人员满足系统的实时性要求。但是,正确地设计和实现系统仍然取决于开发人员

1) 截止日期由系统需求定义。它们不是由RTOS的使用方式定义的

2) 如果超过最后期限会发生什么情况完全取决于应用程序。考虑截止日期要求的原因,这将给你一个线索,如果错过了最后期限会发生什么。< /P>
3) RTOS不保证满足最后期限。系统的设计和实施应保证满足最后期限

硬实时系统的定义是,错过最后期限被视为失败。因此,“失败”是指如果硬实时系统错过了最后期限就会发生的情况。故障的后果因应用程序的不同而不同,因此,一般来说,您只能说发生了故障

使用RTOS并不能自动保证实时任务不会错过最后期限。就像挥动锤子并不能保证你永远不会错过钉子和击中拇指一样。RTOS只是一种工具。如果使用得当,它可以帮助开发人员满足系统的实时性要求。但是,正确地设计和实现系统仍然取决于开发人员

1) 截止日期由系统需求定义。它们不是由RTOS的使用方式定义的

2) 如果超过最后期限会发生什么情况完全取决于应用程序。考虑截止日期要求的原因,这将给你一个线索,如果错过了最后期限会发生什么。< /P>
3) RTOS不保证满足最后期限。系统的设计和实施应保证满足最后期限

错过最后期限可能是失败的。例如,假设您有两个任务,A和B。A在30毫秒内运行,B在15毫秒内运行。如果你有20毫秒的时间块,A每次都会错过最后期限,B每次都会通过

故障是否为故障的问题取决于需求。如果一个必须在一个时间片中运行,则错过最后期限是失败的。另一方面,如果A可以在其下一个时间片期间中断和恢复,并运行到完成,那么A的运行时不一定构成故障


这完全取决于需求。RTOS不能保证任务完成。示例:将A视为使用Eratosthenes算法的筛子计算大素数的任务,B只需切换外部时钟引脚。这两项任务的复杂性和持续时间相差很多数量级。RTO无法神奇地让每个A或B按时完成,但它可以确保任务B不会因为A需要很长时间才能完成而错过运行机会而饿死。

错过最后期限可能是失败。例如,假设您有两个任务,A和B。A在30毫秒内运行,B在15毫秒内运行。如果你有20毫秒的时间块,A每次都会错过最后期限,B每次都会通过

故障是否为故障的问题取决于需求。如果一个必须在一个时间片中运行,则错过最后期限是失败的。另一方面,如果A可以在其下一个时间片期间中断和恢复,并运行到完成,那么A的运行时不一定构成故障

这完全取决于需求。RTOS不能保证任务完成。示例:将A视为使用Eratosthenes算法的筛子计算大素数的任务,B只需切换外部时钟引脚。这两项任务的复杂性和持续时间相差很多数量级。RTO无法神奇地让每个A或B按时完成,但它可以确保任务B不会因为A需要很长时间才能完成而错过运行的机会,从而导致任务B无法完成

根据RTOS的定义,它保证了实时任务将 永远不要超过他们的最后期限

RTOS并不能保证您在截止日期前完成任何工作