阅读RTOS,"硬"RTOS的特征是它可以确定地保持最后期限,但是我们如何测试或证明系统实际上满足要求?
MicroC/OS II RTOS 的特点是硬性 RTOS,但我如何验证这一说法?如果我的 FPGA 有一些 C 代码和 ISR,可以运行 C 程序并在具有信号量的线程之间进行上下文切换,类似于 RTOS 的功能,我怎么知道操作系统/实时操作系统是"硬"还是"软"实时操作系统?
它是否取决于应用程序并且必须具有计时器,因此最好使用带有硬件中断的内置硬件计时器(例如 Altera DE2 具有 50 Mhz 振荡器),然后我们只测试线程和进程是否可以根据截止日期进行调度,然后检查是否满足截止日期?
或者,对于必须包含哪些内容才能区分操作系统、实时操作系统以及硬 RTOS 和软 RTOS,是否有一些通用做法?
是否有一些"典型测试"对"硬RTOS"标签有典型要求?
这个问题很难回答,因为你的前提是错误的。
分类为硬实时的系统与软实时系统仅通过错过最后期限的严重性来区分。在硬RT中,错过最后期限被归类为系统故障,这可能会也可能不会对硬件和人员造成伤害,而软实时通常意味着错过最后期限只会降低系统性能,但不会使其停止。
硬RT系统的一个典型例子是看门狗,它在过热时关闭系统 - 如果它未能满足其最后期限,系统就会中断。此外,发电厂或飞机中的一般安全相关系统也属于这一类。软 RT 示例是视频流,其中错过最后期限会导致视觉质量下降或卡顿,但不一定会导致系统故障。
长话短说,硬RT和软RT是完整软件系统的特征,通过其规格和故障模型来衡量。因此,通常情况下,在操作系统上运行的应用程序符合硬/软RT标准,操作系统仅提供具有可预测时序行为的接口,允许应用程序做出时序假设。