我想通过使用 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.
}
}
Run Code Online (Sandbox Code Playgroud)
这是 RTOS 中基于任务的实时系统的简单结构。在这一点上,我想知道这些问题;
1)此代码块中 RTOS 定义中提到的“DEADLINE”是什么。是“Delay”时间20 ms还是“Do Job”部分确定的其他时间?
2) 如果超过期限会怎样?我知道它是由 RTOS 保证的,但在“假设情况”下:我们是否定义了灾难性错误过程?
3)RTOS如何保证工期?我的意思是,我可以运行大量 RT 任务,因此 CPU 资源可能不够,或者编程错误的任务比其他 RT 任务消耗了太多时间?“保证”部分在哪里?
我知道 RTOS 和传统操作系统之间的主要区别在于调度程序。RTOS采用确定性的方式为用户提供调度保证。然而,这些信息并不能完全满足我对整个系统的理解。
谢谢。