vxworks和linux區(qū)別 如果將vxwork等實(shí)時(shí)系統(tǒng)用在手機(jī)或者家用電腦上,能達(dá)到永不卡頓的效果嗎?
如果將vxwork等實(shí)時(shí)系統(tǒng)用在手機(jī)或者家用電腦上,能達(dá)到永不卡頓的效果嗎?實(shí)時(shí)操作系統(tǒng)的實(shí)時(shí)性主要體現(xiàn)在確定性上,無論條件多么惡劣,它都能在一定的時(shí)間內(nèi)完成指定的任務(wù)。實(shí)時(shí)操作系統(tǒng)一般采用優(yōu)先級調(diào)度
如果將vxwork等實(shí)時(shí)系統(tǒng)用在手機(jī)或者家用電腦上,能達(dá)到永不卡頓的效果嗎?
實(shí)時(shí)操作系統(tǒng)的實(shí)時(shí)性主要體現(xiàn)在確定性上,無論條件多么惡劣,它都能在一定的時(shí)間內(nèi)完成指定的任務(wù)。實(shí)時(shí)操作系統(tǒng)一般采用優(yōu)先級調(diào)度算法,低優(yōu)先級的任務(wù)會被高優(yōu)先級的任務(wù)搶占,作為桌面系統(tǒng)的實(shí)時(shí)性會較差。為什么Linux不是一個(gè)實(shí)時(shí)系統(tǒng)?因?yàn)長inux采用公平調(diào)度算法,使得所有進(jìn)程都有時(shí)間盡可能多地執(zhí)行,這樣用戶體驗(yàn)非常好,用戶不會感到卡住。如果它是一個(gè)實(shí)時(shí)系統(tǒng),因?yàn)樗菗屨嫉?,如果一個(gè)高優(yōu)先級的任務(wù)準(zhǔn)備好了,它會搶占一個(gè)低優(yōu)先級的任務(wù)。例如,如果您正在觀看視頻,但高優(yōu)先級任務(wù)已準(zhǔn)備就緒,則它將搶占視頻任務(wù)。相反,它會造成視頻堵塞,影響用戶體驗(yàn)。系統(tǒng)的實(shí)時(shí)性能是一個(gè)系統(tǒng)工程,不運(yùn)行實(shí)時(shí)操作系統(tǒng),系統(tǒng)具有很高的實(shí)時(shí)性能。實(shí)時(shí)操作系統(tǒng)只提供多種機(jī)制來保證系統(tǒng)的實(shí)時(shí)性能,但需要用戶根據(jù)實(shí)際應(yīng)用情況來安排任務(wù)優(yōu)先級。
VxWorks操作系統(tǒng)也有圖形庫。VxWorks6.8使用WindML圖形庫,但它只支持2D功能,不支持3D功能。
VxWorks中的任務(wù)狀態(tài)“pend”和“suspend”有什么區(qū)別?
操作系統(tǒng)中掛起和阻塞的區(qū)別如下:
1:掛起是一種主動行為,所以恢復(fù)也應(yīng)該主動完成,而阻塞是一種被動行為,即任務(wù)在等待事件或資源時(shí)的表現(xiàn)。如果你不知道它什么時(shí)候會被阻塞,你就不知道它什么時(shí)候會恢復(fù)阻塞。此外,在操作系統(tǒng)中,掛起的隊(duì)列可以看作是一個(gè)隊(duì)列,而阻塞的隊(duì)列對于不同的事件或資源(如信號量)有自己的隊(duì)列。
2:阻塞的隊(duì)列是任務(wù)釋放CPU,其他任務(wù)可以運(yùn)行。它通常在等待某個(gè)資源或信號量時(shí)出現(xiàn)。掛起不會釋放CPU。如果任務(wù)具有高優(yōu)先級,它將永遠(yuǎn)無法運(yùn)行其他任務(wù)。通常,suspend用于程序調(diào)試中的條件中斷。當(dāng)某個(gè)條件發(fā)生時(shí),它將被暫停,然后進(jìn)行一步調(diào)試。Suspend
直接掛起一個(gè)任務(wù),然后這個(gè)任務(wù)就和你無關(guān)了。任何任務(wù)之間的通信或同步都與此掛起的任務(wù)有關(guān),除非恢復(fù)任務(wù)
4:任務(wù)調(diào)度是由操作系統(tǒng)實(shí)現(xiàn)的。在進(jìn)行任務(wù)調(diào)度時(shí),它直接忽略處于掛起狀態(tài)的任務(wù),但會考慮掛起狀態(tài)下的任務(wù)。當(dāng)?shù)却齪end下的任務(wù)的資源準(zhǔn)備就緒時(shí),可以將其轉(zhuǎn)換為ready。就緒只需要等待CPU時(shí)間。當(dāng)然,任務(wù)調(diào)度也會占用一定的開銷,但是開銷不大,可以忽略不計(jì)??梢岳斫猓灰獣和?,操作系統(tǒng)將不再管理此任務(wù);
5:暫停處于活動狀態(tài),通常需要使用暫停功能進(jìn)行操作。如果沒有恢復(fù)操作,任務(wù)將永遠(yuǎn)不會準(zhǔn)備好。阻塞是因?yàn)橘Y源被其他任務(wù)搶占并且處于休眠狀態(tài)。它們都從就緒狀態(tài)“清除”,即清除相應(yīng)的標(biāo)志位,但實(shí)現(xiàn)不同。
vxworks獲取任務(wù)運(yùn)行在哪個(gè)核上?
使用目標(biāo)服務(wù)器連接的前提:
1。在VxWorks編譯之前加載WDB組件
2。BSP設(shè)置WDB鏈接串口或網(wǎng)絡(luò)端口
3。主機(jī)WDB工具tornado workbench內(nèi)置了任務(wù)優(yōu)先級片間輪詢支持,即任務(wù)按優(yōu)先級等級具有高優(yōu)先級,任務(wù)優(yōu)先級相同,等待片間輪換,CPU頻率高
taskspoon創(chuàng)建的任務(wù)是進(jìn)程,不是線程。在VxWorks中,任務(wù)相當(dāng)于一個(gè)進(jìn)程。死區(qū)模式正常。例如,許多核心任務(wù)(如exctask)都是死循環(huán)。進(jìn)程之間的內(nèi)存空間彼此隔離(盡管在VxWorks中也可以訪問),進(jìn)程中不同線程之間的內(nèi)存空間是共享的。VxWorks中沒有線程概念。