实时操作系统
编辑实时操作系统(RTOS)是一个操作系统(OS)旨在用作实时应用程序,因为它涉及在通常无缓冲延迟的过程数据。处理时间要求(包括任何OS延迟)以十分之一秒或更短的时间增量来衡量。实时系统是具有明确定义的固定时间约束的时限系统。处理必须在定义的约束内完成,否则系统将失败。他们要么是事件驱动或分时。事件驱动系统根据任务的优先级在任务之间切换,而分时系统则根据时钟中断在任务之间切换。大多数RTOS使用抢占式 调度算法。
实时操作系统的特性
编辑实时操作系统的一个关键特征是其一致性程度,该一致性涉及接受和完成应用程序任务所花费的时间;变化是“ 抖动 ”。“硬”实时操作系统(硬RTOS)比“软”实时操作系统(软RTOS)具有更少的抖动。后一个答案在硬RTOS中是错误的答案,而后一个答案在软RTOS中是可以接受的。主要设计目标不是高吞吐量,而是对软性能或硬性能类别的保证。一个实时操作系统,通常或一般能满足最后期限是软实时操作系统,但它是否能够满足最后期限确定性这是一个硬实时操作系统。
RTOS具有用于调度的高级算法。调度程序的灵活性可以实现更大范围的计算机系统流程优先级的编排,但是实时OS往往专用于一组狭窄的应用程序。实时操作系统的关键因素是最小的中断延迟和最小的线程切换延迟;实时操作系统的响应速度或可预测性要比给定时间段内可以执行的工作量高。
设计理念
编辑实时操作系统是一种操作系统,其中处理输入刺激所花费的时间少于直到下一个相同类型的输入刺激所花费的时间。
最常见的设计是:
- 事件驱动– 仅在需要处理较高优先级的事件时才切换任务;称为抢先优先级或优先级调度。
- 分时–在常规时钟中断和事件上切换任务;
分时设计比严格地需要切换任务的次数更多,但是却提供了更流畅的多任务处理能力,给人一种进程或用户仅使用机器的幻想。
早期的CPU设计需要许多周期来切换任务,在此期间CPU无法做其他有用的事情。例如,使用20 MHz 68000处理器(典型于1980年代后期),任务切换时间大约为20微秒。相反,一个100 MHz的ARM CPU(自2008年起)在不到3微秒的时间内进行切换。因为切换花费了很长时间,所以早期的OS试图通过避免不必要的任务切换来xxx程度地减少浪费的CPU时间。
中断处理程序和调度程序
编辑由于中断处理程序会阻止运行最高优先级的任务,并且由于实时操作系统旨在将线程等待时间保持在最低水平,因此中断处理程序通常应保持尽可能短的时间。如果可能的话,中断处理程序推迟所有与硬件的交互。通常,所需要做的只是确认或禁用该中断(以便在中断处理程序返回时不会再次发生),并通知任务需要完成的工作。这可以通过释放信号量,设置标志或发送消息来取消阻止驱动程序任务来完成。调度程序通常提供从中断处理程序上下文中取消阻止任务的功能。
操作系统维护其管理的对象的目录,例如线程、互斥锁、内存等。必须严格控制此目录的更新。因此,当中断处理程序在应用程序也执行操作时调用OS函数时,可能会出现问题。由于应用程序的更新,从中断处理程序调用的OS函数可能会发现对象数据库处于不一致状态。解决此问题的方法主要有两种:统一体系结构和分段体系结构。实施统一体系结构的RTOS通过在更新内部目录时简单地禁用中断来解决此问题。这样做的缺点是中断等待时间增加,可能会丢失中断。分段架构不会直接进行OS调用,而是将与OS相关的工作委托给单独的处理程序。该处理程序的运行优先级高于任何线程,但低于中断处理程序。这种架构的优势在于,它增加了很少的周期来中断延迟。结果,与统一体系结构相比,实现分段体系结构的OS更可预测,并且可以处理更高的中断率。
同样,与x86兼容的硬件上的系统管理模式可能需要太多时间才能将控制权返回给操作系统。为x86硬件编写实时软件通常是错误的。
内存分配
编辑内存分配在实时操作系统中比在其他操作系统中更为重要。
首先,为了稳定起见,不会发生内存泄漏(已分配但在使用后未释放的内存)。设备应无限期工作,而无需重新启动。出于这个原因,动态内存分配不受欢迎。只要可能,所有需要的存储器分配是静态编译时指定。
避免动态内存分配的另一个原因是内存碎片。随着频繁分配和释放小块内存,可能会发生以下情况:可用内存被分成几个部分,尽管有足够的可用内存,但RTOS无法分配足够大的连续内存块。其次,分配速度很重要。一种标准的内存分配方案扫描不确定长度的链表,以找到合适的空闲内存块,在RTOS中是不可接受的,因为内存分配必须在一定的时间内发生。
由于机械磁盘的响应时间更长且更加不可预测,因此,出于与上述RAM分配相同的原因,不使用交换磁盘文件。
由于固定开销小的算法,简单的固定大小块算法在简单的嵌入式系统中效果很好。
内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/113126/