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