RTP是啥?
VxWorks的RTP,全稱是Real-Time Process,可以翻譯為實時進程。
在6.0之前,VxWorks使用的是single的內存空間,操作系統(tǒng)與應用程序是不分離的。這種模型在開發(fā)應用程序時有更好的靈活性和性能,但對開發(fā)者的要求也更高一些,因為錯誤的應用可以輕易導致其它應用或系統(tǒng)崩潰,程序猿需要確保內核設施和應用程序在同一內存空間中和平共處。例如任務T3的棧溢出了,就有可能破壞其它任務的地址空間,如果被破壞的是系統(tǒng)任務T1,那很可能結果就是死機。而此時的T3,有可能已經退出了,T1就成了T3的背鍋俠了。
從6.0開始,VxWorks引入了RTP。這個RTP在許多地方都與其它操作系統(tǒng)的進程差不多,例如對POSIX的兼容性。所以了解UNIX/Linux進程模型的程序猿,很快就可以熟悉RTP的創(chuàng)建、執(zhí)行或者終止。
不過RTP是專門為RTOS設計的,為了滿足實時性的需求,它與其它系統(tǒng)的進程還是有很多不同的。
RTP用于在用戶模式里執(zhí)行應用程序。每個進程使用獨立的地址空間,將自己的程序、數(shù)據(jù)、棧、堆,以及其它相關資源保護起來。系統(tǒng)中可以同時存在多個進程,每個進程內可以有多個任務(類似于其它系統(tǒng)的線程)。
有了RTP,就可以在用戶模式下執(zhí)行應用程序和操作系統(tǒng)的其它功能,這些功能在內核和應用程序之間具有清晰的劃分。這種體系結構通常被稱為進程模型。
同時,6.x與5.5保持了高度的兼容。基本上不需要任何修改,就可以將早期VxWorks的內核應用程序遷移到6.x內核空間(在大多數(shù)情況下,只是重新編譯)。
關于RTP的具體信息,咱們后文慢慢道來。
這正是:
VX系統(tǒng)與時進,內核應用若比鄰。
歷史項目好兼容,不損實時高性能。
我是泰山,專注VX14年!
聯(lián)系客服