32位微控制器的功能越來越強,成本越來越低,這使得實時操作系統成為許多嵌入式系統中的主要調度程序。雖然市場上有一百多種不同的RTOS口味,但嵌入式開發人員有時會糾結于基本的術語。以線程和任務為例,它們在許多情況下被用作同義詞,但表示稍微不同的概念。
ThreadX用戶指南第5版將嵌入式任務定義為“執行特定任務的應用程序的半獨立部分”換句話說,任務往往是由應用程序執行的高級任務。“任務”這個詞經常以一種通用的方式使用,以至于很難確定開發人員是指一個程序段還是一個完全獨立的可加載程序。
另一方面,線程被定義為“在進程內執行的半獨立程序段”。對于使用微控制器的嵌入式開發人員來說,進程實質上就是在系統上運行的整個應用程序。線程是一個小程序,在整個應用程序中具有特定的功能和用途。線程往往比任務級別低,開銷也最小。
人們遇到的大多數RTOSes可能實際上是線程調度器,而不是任務調度器,但現在許多嵌入式開發人員只是互換使用這兩個術語。很高興知道有一個微妙的區別。