32位微控制器的功能越来越强,成本越来越低,这使得实时操作系统成为许多嵌入式系统中的主要调度程序。虽然市场上有一百多种不同的RTOS口味,但嵌入式开发人员有时会纠结于基本的术语。以线程和任务为例,它们在许多情况下被用作同义词,但表示稍微不同的概念。
ThreadX用户指南第5版将嵌入式任务定义为“执行特定任务的应用程序的半独立部分”换句话说,任务往往是由应用程序执行的高级任务。“任务”这个词经常以一种通用的方式使用,以至于很难确定开发人员是指一个程序段还是一个完全独立的可加载程序。
另一方面,线程被定义为“在进程内执行的半独立程序段”。对于使用微控制器的嵌入式开发人员来说,进程实质上就是在系统上运行的整个应用程序。线程是一个小程序,在整个应用程序中具有特定的功能和用途。线程往往比任务级别低,开销也最小。
人们遇到的大多数RTOSes可能实际上是线程调度器,而不是任务调度器,但现在许多嵌入式开发人员只是互换使用这两个术语。很高兴知道有一个微妙的区别。