单片机的结构属于是前后台系统,什么是前后台系统呢?我们可以简单理解成前台是一个以中断为核心的结构,后台是一个不断循环的结构(如我们的while结构),在正常情况下,如果没有发生中断什么的话,我们可以在后台实现一些功能如(LED闪烁等等),如果中断一来,我们就停止后台程序的执行转而去执行中断程序。
其实可以看得出来前后台系统这种处理方式并不高效,为了达到更高效,更有保证的时效性,我们介绍一下RTOS(实时操作系统),简单地说,它就是将单进程变成多进程。
RTOS的多任务处理功能,个人理解是在单片机处理事件时,比如要处理A任务和B任务两个任务,是只能处理完A消耗Ta时间后再去处理B任务的,也就是我们所说的单进程;
而如果是RTOS,则可以在进行A事件的处理的间隙去处理B事件,二者可以按操作者的意愿去交叉进行。它的实时性体现在当发生了一个优先级更高的任务时,会将当前任务的上下文保存到堆栈,将优先级更高的那个任务的上下文从堆栈里恢复并执行。总之,RTOS懂得去给任务分配多少时间片去处理任务。
在实际生活中,单片机的单进程处理可能会带来某些事件的运行时限滞后或者响应时间滞后的现象,意味着我们可能无法准确地知道某个任务运行的具体精确时间,如果我们要求设备要有严格的处理时限,比如医疗设备等,那么我们就需要使用RTOS。