强奸久久久久久久|草草浮力在线影院|手机成人无码av|亚洲精品狼友视频|国产国模精品一区|久久成人中文字幕|超碰在线视屏免费|玖玖欧洲一区二区|欧美精品无码一区|日韩无遮一区二区

首頁(yè) > 廠商 > 問(wèn)答 > 任務(wù)調(diào)度,輪詢?nèi)蝿?wù)調(diào)度和搶占式任務(wù)調(diào)度的區(qū)別

任務(wù)調(diào)度,輪詢?nèi)蝿?wù)調(diào)度和搶占式任務(wù)調(diào)度的區(qū)別

來(lái)源:整理 時(shí)間:2024-11-09 06:23:01 編輯:智能門戶 手機(jī)版

1,輪詢?nèi)蝿?wù)調(diào)度和搶占式任務(wù)調(diào)度的區(qū)別

搶占式與非搶占式的對(duì)比: 非搶占式(Nonpreemptive) 讓進(jìn)程運(yùn)行直到結(jié)束或阻塞的調(diào)度方式 容易實(shí)現(xiàn) 適合專用系統(tǒng),不適合通用系統(tǒng) 搶占式(Preemptive) 允許將邏輯上可繼續(xù)運(yùn)行的在運(yùn)行過(guò)程暫停的調(diào)度方式 可防止單一進(jìn)程長(zhǎng)時(shí)間獨(dú)占CPU 系統(tǒng)開(kāi)銷大(降低途徑:硬件實(shí)現(xiàn)進(jìn)程切換,或擴(kuò)充主存以貯存大部分程序)

輪詢?nèi)蝿?wù)調(diào)度和搶占式任務(wù)調(diào)度的區(qū)別

2,uCOSII的任務(wù)調(diào)度

uC/OS-II 采用的是可剝奪型實(shí)時(shí)多任務(wù)內(nèi)核??蓜儕Z型的實(shí)時(shí)內(nèi)核在任何時(shí)候都運(yùn)行就緒了的最高優(yōu)先級(jí)的任務(wù)。uC/os-II的任務(wù)調(diào)度是完全基于任務(wù)優(yōu)先級(jí)的搶占式調(diào)度,也就是最高優(yōu)先級(jí)的任務(wù)一旦處于就緒狀態(tài),則立即搶占正在運(yùn)行的低優(yōu)先級(jí)任務(wù)的處理器資源。為了簡(jiǎn)化系統(tǒng)設(shè)計(jì),uC/OS-II規(guī)定所有任務(wù)的優(yōu)先級(jí)不同,因?yàn)槿蝿?wù)的優(yōu)先級(jí)也同時(shí)唯一標(biāo)志了該任務(wù)本身。1) 高優(yōu)先級(jí)的任務(wù)因?yàn)樾枰撤N臨界資源,主動(dòng)請(qǐng)求掛起,讓出處理器,此時(shí)將調(diào)度就緒狀態(tài)的低優(yōu)先級(jí)任務(wù)獲得執(zhí)行,這種調(diào)度也稱為任務(wù)級(jí)的上下文切換。2) 高優(yōu)先級(jí)的任務(wù)因?yàn)闀r(shí)鐘節(jié)拍到來(lái),在時(shí)鐘中斷的處理程序中,內(nèi)核發(fā)現(xiàn)高優(yōu)先級(jí)任務(wù)獲得了執(zhí)行條件(如休眠的時(shí)鐘到時(shí)),則在中斷態(tài)直接切換到高優(yōu)先級(jí)任務(wù)執(zhí)行。這種調(diào)度也稱為中斷級(jí)的上下文切換。這兩種調(diào)度方式在uC/OS-II的執(zhí)行過(guò)程中非常普遍,一般來(lái)說(shuō)前者發(fā)生在系統(tǒng)服務(wù)中,后者發(fā)生在時(shí)鐘中斷的服務(wù)程序中。調(diào)度工作的內(nèi)容可以分為兩部分:最高優(yōu)先級(jí)任務(wù)的尋找和任務(wù)切換。其最高優(yōu)先級(jí)任務(wù)的尋找是通過(guò)建立就緒任務(wù)表來(lái)實(shí)現(xiàn)的。u C / O S 中的每一個(gè)任務(wù)都有獨(dú)立的堆??臻g,并有一個(gè)稱為任務(wù)控制塊TCB(Task Control Block)的數(shù)據(jù)結(jié)構(gòu),其中第一個(gè)成員變量就是保存的任務(wù)堆棧指針。任務(wù)調(diào)度模塊首先用變量OSTCBHighRdy 記錄當(dāng)前最高級(jí)就緒任務(wù)的TCB 地址,然后調(diào)用OS_TASK_SW()函數(shù)來(lái)進(jìn)行任務(wù)切換。

uCOSII的任務(wù)調(diào)度

3,關(guān)于ucos任務(wù)調(diào)度的問(wèn)題嵌入式高手進(jìn)

從內(nèi)核角度講: 簡(jiǎn)化的(忽略一些細(xì)節(jié)),UCOS啟動(dòng)時(shí)會(huì)創(chuàng)建一個(gè)idle的任務(wù),這個(gè)任務(wù)是最低優(yōu)先級(jí)的,且不會(huì)被刪除。調(diào)用OSTaskCreate可以創(chuàng)建新的任務(wù),系統(tǒng)維護(hù)了一個(gè)任務(wù)列表(TCB)。 任務(wù)有休眠(可以理解成已經(jīng)被從任務(wù)列表中刪除的任務(wù)),等待,Ready,運(yùn)行 4種狀態(tài)(書(shū)上不是這么說(shuō)的,但可以這么理解,等待狀態(tài)可能有多種原因造成) 系統(tǒng)在中斷處理函數(shù)中執(zhí)行任務(wù)調(diào)度過(guò)程,執(zhí)行優(yōu)先級(jí)最高的,處于ready狀態(tài)的任務(wù)。調(diào)度成功后此任務(wù)從ready變成運(yùn)行狀態(tài)。如果沒(méi)有任何任務(wù)可以調(diào)度,那么idle這個(gè)任務(wù)就會(huì)運(yùn)行。 從編程角度講: 1. 硬件中斷產(chǎn)生會(huì)導(dǎo)致調(diào)度,例如I/O中斷,這個(gè)不需要細(xì)說(shuō)。 2. 在當(dāng)前任務(wù)中調(diào)用OSTaskCreae創(chuàng)建新任務(wù),會(huì)導(dǎo)致一個(gè)系統(tǒng)的內(nèi)核調(diào)用,會(huì)產(chǎn)生一個(gè)模擬中斷,因?yàn)橄到y(tǒng)在中斷處理時(shí)執(zhí)行任務(wù)調(diào)度,所以如果新任務(wù)的優(yōu)先級(jí)比當(dāng)前的大,新任務(wù)會(huì)立刻被運(yùn)行。 3. 調(diào)用OSStart會(huì)導(dǎo)致一個(gè)系統(tǒng)的內(nèi)核調(diào)用,會(huì)產(chǎn)生一個(gè)模擬中斷,因?yàn)橄到y(tǒng)在中斷處理時(shí)執(zhí)行任務(wù)調(diào)度,所以優(yōu)先級(jí)最高的,處于ready狀態(tài)的任務(wù)會(huì)被執(zhí)行。 4. 調(diào)用OSTimeDly可以將當(dāng)前任務(wù)改成等待狀態(tài),設(shè)置等待的時(shí)間,然后會(huì)導(dǎo)致一個(gè)系統(tǒng)的內(nèi)核調(diào)用,會(huì)產(chǎn)生一個(gè)模擬中斷。所以另一個(gè)優(yōu)先級(jí)最高的,處于ready狀態(tài)的任務(wù)會(huì)被執(zhí)行;在系統(tǒng)的時(shí)鐘中斷中會(huì)在等待時(shí)間到了之后把任務(wù)改成ready狀態(tài)。 5. OSSemPend、OSMboxPend,OSQPend等函數(shù)調(diào)用也會(huì)導(dǎo)致當(dāng)前任務(wù)改成等待狀態(tài),然后會(huì)導(dǎo)致一個(gè)系統(tǒng)的內(nèi)核調(diào)用,會(huì)產(chǎn)生一個(gè)模擬中斷。所以另一個(gè)優(yōu)先級(jí)最高的,處于ready狀態(tài)的任務(wù)會(huì)被執(zhí)行;這個(gè)等待狀態(tài)必須在收到wakeup的信號(hào)才能解除。 6. 修改任務(wù)優(yōu)先級(jí)也可以引起調(diào)度。 實(shí)際的硬件中斷對(duì)應(yīng)的系統(tǒng)調(diào)度函數(shù)是OSIntExt,其他軟件模擬調(diào)度的函數(shù)是OSSched。 UCOS的調(diào)度原理總體來(lái)說(shuō)非常簡(jiǎn)單,因?yàn)闆](méi)有時(shí)間片概念和優(yōu)先級(jí)反轉(zhuǎn)的問(wèn)題。 UCOS有很多優(yōu)化或者定制版本,大多在調(diào)度上會(huì)有自己的修改,請(qǐng)注意。

關(guān)于ucos任務(wù)調(diào)度的問(wèn)題嵌入式高手進(jìn)

4,求助Linux下任務(wù)調(diào)度

你把你的裸機(jī)程序當(dāng)作是單個(gè)程序來(lái)看,如果涉及到硬件操作那就相對(duì)復(fù)雜好多了(估計(jì)你要問(wèn)的是這個(gè)吧?),LINUX不太允許你直接在應(yīng)用層操作底層的東西。LINUX就把你這個(gè)單個(gè)程序進(jìn)行執(zhí)行。像說(shuō)所說(shuō)的這種分時(shí)間片的任務(wù)調(diào)度,如果單單是不涉及硬件,完全可以把它寫在單個(gè)應(yīng)用程序上,然后進(jìn)行編譯運(yùn)行。如果涉及到一些硬件的操作,不妨通過(guò)加載一層底層的驅(qū)動(dòng),把相關(guān)的寄存器remap到應(yīng)用層上,這樣用戶程序就可以操作了。這是其中一個(gè)思路吧。這是裸機(jī)和LINUX的最大區(qū)別之一。
回復(fù) 你這樣一種情況就把你單片機(jī)的整個(gè)任務(wù)調(diào)度寫成一個(gè)多線程,一旦寫成這個(gè)樣子(單個(gè)程序,其實(shí)就是單個(gè)程序),LINUX就會(huì)對(duì)它進(jìn)行調(diào)度。而LINUX中的調(diào)度和你改寫成單程序后的調(diào)度是不同的兩個(gè)東西,LINUX的調(diào)度是在程序與程序之間,而你改寫后的是一個(gè)多線程的東西,是線程和線程的切換,由LINUX進(jìn)行管理,不需要你去考慮。而你所說(shuō)的有足夠時(shí)間去等待一些數(shù)據(jù),這可以通過(guò)NEW幾個(gè)線程,各個(gè)線程分配各自的功能模塊(相當(dāng)于是你裸機(jī)下的任務(wù)),它們之間是通過(guò)相關(guān)的信號(hào)量來(lái)進(jìn)行通訊的。這樣完全可以改寫。而且改寫的時(shí)候不需要考慮切換的東西,只需要考慮上層的東西。例如:線程1:等待N個(gè)數(shù)據(jù),線程2:從硬件接收N個(gè)數(shù)據(jù)。這時(shí),線程1如果沒(méi)有接收到數(shù)據(jù)的話,則由LINUX自動(dòng)管理去休眠線程2從硬件收到N個(gè)數(shù)據(jù),由LINUX發(fā)送給正在等待的線程這就是你裸機(jī)下所做的任務(wù)了吧?
1)第一個(gè)問(wèn)題歸結(jié)于時(shí)鐘(可軟可硬)和進(jìn)程之間的通訊2)不會(huì)超過(guò)多少時(shí)間看你寫的怎么樣吧(你不要for()100000000000000000000這么多次就可以了),還有中斷不會(huì)多就1000%都可以3)這個(gè)不用擔(dān)心,操作系統(tǒng)執(zhí)行完你所說(shuō)的任務(wù),就不管,肯定有時(shí)間去做其它的事情。
回復(fù) 硬件操作都通過(guò)設(shè)備驅(qū)動(dòng),驅(qū)動(dòng)程序涉及I2C,UART,定時(shí)器,什么的,象I2C,UART這些都是私有協(xié)議,驅(qū)動(dòng)搞好以后,加載到內(nèi)核,應(yīng)用程序操作硬件不也是和文件操作一樣,open,什么的,用這些驅(qū)動(dòng)(/dev下),那些任務(wù)調(diào)度通過(guò)多線程或者什么實(shí)現(xiàn),是不是移植到Linux系統(tǒng)中,不用考慮裸機(jī)下任務(wù)調(diào)度的問(wèn)題,還是比裸機(jī)任務(wù)調(diào)度要方便。--回復(fù) 我現(xiàn)在的任務(wù)調(diào)度情況是這樣的:有20個(gè)任務(wù)需要在1s內(nèi)按順序執(zhí)行,并且每?jī)蓚€(gè)任務(wù)之間有空閑時(shí)間來(lái)接收UART的數(shù)據(jù)并處理任務(wù),這樣一種任務(wù)調(diào)度。在Linux中任務(wù)調(diào)度怎樣處理,是不是用多線程來(lái)處理,還是定時(shí)器什么的。
回復(fù) 謝謝你呀。
回復(fù) 1)這20個(gè)任務(wù)在1s內(nèi)必須且只能執(zhí)行一次,并且是按順序執(zhí)行的。如在1s內(nèi)先執(zhí)行了任務(wù)1、才能執(zhí)行任務(wù)2。。。。 2)當(dāng)讓每個(gè)任務(wù)不會(huì)超過(guò)20ms的執(zhí)行時(shí)間; 3)在每?jī)蓚€(gè)任務(wù)之間都需要有時(shí)間來(lái)處理串口的數(shù)據(jù)。

5,linux的任務(wù)調(diào)度機(jī)制是什么

調(diào)度程序運(yùn)行時(shí),要在所有可運(yùn)行狀態(tài)的進(jìn)程中選擇最值得運(yùn)行的進(jìn)程投入運(yùn)行。選擇進(jìn)程的依據(jù)是什么呢?在每個(gè)進(jìn)程的task_struct結(jié)構(gòu)中有以下四 項(xiàng):policy、priority、counter、rt_priority。這四項(xiàng)是選擇進(jìn)程的依據(jù)。其中,policy是進(jìn)程的調(diào)度策略,用來(lái)區(qū)分 實(shí)時(shí)進(jìn)程和普通進(jìn)程,實(shí)時(shí)進(jìn)程優(yōu)先于普通進(jìn)程運(yùn)行;priority是進(jìn)程(包括實(shí)時(shí)和普通)的靜態(tài)優(yōu)先級(jí);counter是進(jìn)程剩余的時(shí)間片,它的起始 值就是priority的值;由于counter在后面計(jì)算一個(gè)處于可運(yùn)行狀態(tài)的進(jìn)程值得運(yùn)行的程度goodness時(shí)起重要作用,因此,counter 也可以看作是進(jìn)程的動(dòng)態(tài)優(yōu)先級(jí)。rt_priority是實(shí)時(shí)進(jìn)程特有的,用于實(shí)時(shí)進(jìn)程間的選擇。 Linux用函數(shù)goodness()來(lái)衡量一個(gè)處于可運(yùn)行狀態(tài)的進(jìn)程值得運(yùn)行的程度。該函數(shù)綜合了以上提到的四項(xiàng),還結(jié)合了一些其他的因素,給每個(gè)處于 可運(yùn)行狀態(tài)的進(jìn)程賦予一個(gè)權(quán)值(weight),調(diào)度程序以這個(gè)權(quán)值作為選擇進(jìn)程的唯一依據(jù)。關(guān)于goodness()的情況在后面將會(huì)詳細(xì)分析。
進(jìn)程調(diào)度策略就是調(diào)度系統(tǒng)種哪一個(gè)進(jìn)程來(lái)cpu運(yùn)行。這種調(diào)度分2層考慮。 第一層,進(jìn)程狀態(tài)這個(gè)是最優(yōu)先考慮的,也就是說(shuō)優(yōu)先級(jí)最高的。在linux中只有就緒態(tài)的進(jìn)程才有可能會(huì)被調(diào)度選中然后占有cpu,其它狀態(tài)的進(jìn)程不可能占有的到cpu。下面是linux中進(jìn)程的狀態(tài) task_running:就緒狀態(tài),得到cpu就可以運(yùn)行。task_interruptible:淺度睡眠,資源到位或者受到信號(hào)就會(huì)變成就緒態(tài)。task_uninterruptible:深度睡眠,資源到位就會(huì)進(jìn)入就緒態(tài),不響應(yīng)信號(hào)。task_zombie:僵死態(tài),進(jìn)程exit后。task_stopped:暫停態(tài),收到sig_cont信號(hào)進(jìn)入就緒態(tài)。 第二層,其實(shí)真正在操作系統(tǒng)中的實(shí)現(xiàn),就是所有就緒態(tài)進(jìn)程鏈接成一個(gè)隊(duì)列,進(jìn)程調(diào)度時(shí)候只會(huì)考慮這個(gè)隊(duì)列中的進(jìn)程,對(duì)其它的進(jìn)程不考慮,這就實(shí)現(xiàn)了第一層中的要求。接下來(lái)就是就緒隊(duì)列內(nèi)部各個(gè)進(jìn)程的競(jìng)爭(zhēng)了。 linux采用3種不同的調(diào)度政策,sched_fifo(下面簡(jiǎn)寫成fifo,先來(lái)先服務(wù)),sched_rr(簡(jiǎn)寫成rr,時(shí)間片輪流),sched_other(下面簡(jiǎn)寫成other)。這里大家就能看出一個(gè)問(wèn)題,采用同等調(diào)度政策的進(jìn)程之間自然有可比性,linux3種調(diào)度政策并存,那么不同調(diào)度政策間的進(jìn)程如何比較呢?可以說(shuō)他們之間根本就沒(méi)有可比性。其實(shí)在調(diào)度時(shí)候,調(diào)度只看一個(gè)指標(biāo),那就是各個(gè)進(jìn)程所具有的權(quán)值,權(quán)值最大的且在可執(zhí)行隊(duì)列中排在最前面的就會(huì)被調(diào)度執(zhí)行。而權(quán)值的計(jì)算才會(huì)設(shè)計(jì)到各方面因素,其中調(diào)度政策可以說(shuō)在計(jì)算權(quán)值中,份量是最重的。 為什么linux要這么干呢?這是由于事務(wù)的多樣性決定的,進(jìn)程有實(shí)時(shí)性進(jìn)程和非實(shí)時(shí)性的進(jìn)程2種,fifo和rr是用來(lái)支持實(shí)時(shí)性進(jìn)程的調(diào)度,我們看一下這3種政策下權(quán)值的計(jì)算公式就明白了: fifo和rr計(jì)算公式,權(quán)值=1000+進(jìn)程真正的運(yùn)行時(shí)間 other計(jì)算公式,當(dāng)時(shí)間片為0時(shí),權(quán)值=0.當(dāng)時(shí)間片不為0時(shí)候,權(quán)值=剩余時(shí)間片+20-nice,同時(shí)如果是內(nèi)核線程有+1的小加分,這是因?yàn)閮?nèi)核線程無(wú)需用戶空間的切換,所以給它加了一分,獎(jiǎng)勵(lì)他在進(jìn)程切換時(shí)候開(kāi)銷小的功勞。時(shí)間片好理解,那么nice這個(gè)值,用過(guò)linux系統(tǒng)的人都知道,這是一個(gè)從unix下繼承過(guò)來(lái)的概念,表示謙讓度,是一個(gè)從20~-19的數(shù),可以通過(guò)nice和renice指令來(lái)設(shè)置。從代碼中也能看到值越小就越不會(huì)謙讓他人。 從這里我們看出fifo和rr至少有1000的基數(shù),所以在有fifo和rr調(diào)度政策進(jìn)程存在時(shí),other進(jìn)程是沒(méi)有機(jī)會(huì)被調(diào)度的到的。從權(quán)值計(jì)算公式同時(shí)也能看出,fifo先來(lái)先服務(wù)的調(diào)度政策滿足了,但rr這個(gè)時(shí)間片輪流的調(diào)度如果按照這種權(quán)值計(jì)算是不能滿足時(shí)間片輪流這一概念的。這里只是權(quán)值的計(jì)算,在調(diào)度時(shí)候?qū)r政策的進(jìn)程特殊處理。 以上都是權(quán)值計(jì)算,下面看看真正的調(diào)度過(guò)程,首先是對(duì)rr政策進(jìn)程的特殊處理,如果當(dāng)前進(jìn)程采用的rr政策,那么看他的時(shí)間片是否用完,用完了就踢到就緒隊(duì)列尾部,同時(shí)恢復(fù)他的時(shí)間片。然后是便利整個(gè)就緒隊(duì)列,找到第一個(gè)權(quán)值最大的進(jìn)程來(lái)運(yùn)行。 整體調(diào)度效果就是:如果有fifo和rr政策的進(jìn)程,就優(yōu)先調(diào)度他們2個(gè),他們之間看已執(zhí)行時(shí)間長(zhǎng)短決定勝負(fù),而2種政策內(nèi)部則遵守各自調(diào)度政策。而other只有在前面2種不存在于就緒隊(duì)列時(shí)候才有可能執(zhí)行,他們實(shí)際也是輪流執(zhí)行,但他們之間是靠剩余時(shí)間和nice值來(lái)決定勝負(fù)。同時(shí)就緒隊(duì)列中排在最前面的最優(yōu)先考慮在同樣權(quán)值情況下。

6,怎么優(yōu)化hadoop任務(wù)調(diào)度算法

為了提高reduce階段的并行度,terasort作業(yè)對(duì)以上算法進(jìn)行改進(jìn):在map階段,每個(gè)map task都會(huì)將數(shù)據(jù)劃分成r個(gè)數(shù)據(jù)塊(r為reduce task個(gè)數(shù))其中第i(i>0)個(gè)數(shù)據(jù)塊的所有數(shù)據(jù)都會(huì)比第i+1個(gè)中的數(shù)據(jù)大;在reduce階段,第i個(gè)reduce task處理(進(jìn)行排序)所有map task的第i塊,這樣第i個(gè)reduce task產(chǎn)生的結(jié)果均會(huì)比第i+1個(gè)大,最后將1~r個(gè)reduce task的排序結(jié)果順序輸出,即為最終的排序結(jié)果。
首先介紹了Hadoop平臺(tái)下作業(yè)的分布式運(yùn)行機(jī)制,然后對(duì)Hadoop平臺(tái)自帶的4種任務(wù)調(diào)度器做分析和比較,最后在分析JobTracker類文件的基礎(chǔ)上指出了創(chuàng)建自定義任務(wù)調(diào)度器所需完成的工作。首先Hadoop集群式基于單服務(wù)器的,只有一個(gè)服務(wù)器節(jié)點(diǎn)負(fù)責(zé)調(diào)度整個(gè)集群的作業(yè)運(yùn)行,主要的具體工作是切分大數(shù)據(jù)量的作業(yè),指定哪些Worker節(jié)點(diǎn)做Map工作、哪些Worker節(jié)點(diǎn)做Reduce工作、與Worker節(jié)點(diǎn)通信并接受其心跳信號(hào)、作為用戶的訪問(wèn)入口等等。其次,集群中的每個(gè)Worker節(jié)點(diǎn)相當(dāng)于一個(gè)器官,運(yùn)行著主節(jié)點(diǎn)所指派的具體作業(yè)。這些節(jié)點(diǎn)會(huì)被分為兩種類型,一種是接收分塊之后的作業(yè)并做映射工作。另一種是負(fù)責(zé)把前面所做的映射工作按照約定的規(guī)則做一個(gè)統(tǒng)計(jì)。Task-Tracker通過(guò)運(yùn)行一個(gè)簡(jiǎn)單循環(huán)來(lái)定期地發(fā)送心跳信號(hào)(heartbeat)給JobTracker.這個(gè)心跳信號(hào)會(huì)把TaskTracker是否還在存活告知JobTracker,TaskTracker通過(guò)信號(hào)指明自己是否已經(jīng)準(zhǔn)備好運(yùn)行新的任務(wù).一旦TaskTracker已經(jīng)準(zhǔn)備好接受任務(wù),JobTracker就會(huì)從作業(yè)優(yōu)先級(jí)表中選定一個(gè)作業(yè)并分配下去.至于到底是執(zhí)行Map任務(wù)還是Reduce任務(wù),是由TaskTracker的任務(wù)槽所決定的.默認(rèn)的任務(wù)調(diào)度器在處理Reduce任務(wù)之前,會(huì)優(yōu)先填滿空閑的Map任務(wù)槽.因此,如果TaskTracker滿足存在至少一個(gè)空閑任務(wù)槽時(shí),JobTracker會(huì)為它分配Map任務(wù),否則為它選擇一個(gè)Reduce任務(wù).TaskTracker在運(yùn)行任務(wù)的時(shí)候,第一步是從共享文件系統(tǒng)中把作業(yè)的JAR文件復(fù)制過(guò)來(lái),從而實(shí)現(xiàn)任務(wù)文件的本地化.第二步是TaskTracker為任務(wù)新建一個(gè)本地文件夾并把作業(yè)文件解壓在此目錄中.第三步是由Task-Tracker新建一個(gè)TaskRunner實(shí)例來(lái)運(yùn)行該任務(wù).Hadoop平臺(tái)默認(rèn)的調(diào)度方案就是JobQueueTaskScheduler,這是一種按照任務(wù)到來(lái)的時(shí)間先后順序而執(zhí)行的調(diào)度策略.這種方式比較簡(jiǎn)單,JobTracker作為主控節(jié)點(diǎn),僅僅是依照作業(yè)到來(lái)的先后順序而選擇將要執(zhí)行的作業(yè).當(dāng)然,這有一定的缺陷,由于Hadoop平臺(tái)是默認(rèn)將作業(yè)運(yùn)行在整個(gè)集群上的,那么如果一個(gè)耗時(shí)非常大的作業(yè)進(jìn)入執(zhí)行期,將會(huì)導(dǎo)致其余大量作業(yè)長(zhǎng)時(shí)間得不到運(yùn)行.這種長(zhǎng)時(shí)間運(yùn)行的優(yōu)先級(jí)別并不高的作業(yè)帶來(lái)了嚴(yán)重的作業(yè)阻塞,使得整個(gè)平臺(tái)的運(yùn)行效率處在較低的水平.Hadoop平臺(tái)對(duì)這種FIFO(First INAnd First Out)機(jī)制所給出的解決辦法是調(diào)用SetJobPriority()方法,通過(guò)設(shè)置作業(yè)的權(quán)重級(jí)別來(lái)做平衡調(diào)度.Fair Scheduler是一種“公平”調(diào)度器,它的目標(biāo)是讓每個(gè)用戶能夠公平地共享Hadoop集群計(jì)算能力.當(dāng)只有一個(gè)作業(yè)運(yùn)行的時(shí)候,它會(huì)得到整個(gè)集群的資源.隨著提交到作業(yè)表中作業(yè)的增多,Hadoop平臺(tái)會(huì)把集群中空閑出來(lái)的時(shí)間槽公平分配給每個(gè)需要執(zhí)行的作業(yè).這樣即便其中某些作業(yè)需要較長(zhǎng)時(shí)間運(yùn)行,平臺(tái)仍然有能力讓那些短作業(yè)在合理時(shí)間內(nèi)完成[3].Fair Scheduler支持資源搶占,當(dāng)一個(gè)資源池在一定時(shí)段內(nèi)沒(méi)有得到公平共享時(shí),它會(huì)終止該資源池所獲得的過(guò)多的資源,同時(shí)把這些釋放的資源讓給那些資源不足的資源池.Hadoop平臺(tái)中的Capacity Scheduler是由Yahoo貢獻(xiàn)的,在調(diào)度器上,設(shè)置了三種粒度的對(duì)象:queue,job,task.在該策略下,平臺(tái)可以有多個(gè)作業(yè)隊(duì)列,每個(gè)作業(yè)隊(duì)列經(jīng)提交后,都會(huì)獲得一定數(shù)量的TaskTracker資源.具體調(diào)度流程如下.(1)選擇queue,根據(jù)資源庫(kù)的使用情況從小到大排序,直到找到一個(gè)合適的job.(2)選擇job,在當(dāng)前所選定的queue中,按照作業(yè)提交的時(shí)間先后以及作業(yè)的權(quán)重優(yōu)先級(jí)別進(jìn)行排序,選擇合適的job.當(dāng)然,在job選擇時(shí)還需要考慮所選作業(yè)是否超出目前現(xiàn)有的資源上限,以及資源池中的內(nèi)存是否夠該job的task用等因素.(3)選擇task,根據(jù)本地節(jié)點(diǎn)的資源使用情況來(lái)選擇合適的task.雖然Hadoop平臺(tái)自帶了幾種調(diào)度器,但是上述3種調(diào)度方案很難滿足公司復(fù)雜的應(yīng)用需求.因此作為平臺(tái)的個(gè)性化使用者,往往需要開(kāi)發(fā)自己的調(diào)度器.Hadoop的調(diào)度器是在JobTracker中加載和調(diào)用的,因此開(kāi)發(fā)一個(gè)自定義的調(diào)度器就必須搞清楚JobTracker類文件的內(nèi)部機(jī)制.作為Hadoop平臺(tái)的核心組件,JobTracker監(jiān)控著整個(gè)集群的作業(yè)運(yùn)行情況并對(duì)資源進(jìn)行管理調(diào)度.每個(gè)Task-Tracker每隔3s通過(guò)heartbeat向JobTracker匯報(bào)自己管理的機(jī)器的一些基本信息,包括內(nèi)存使用量、內(nèi)存的剩余量以及空閑的slot數(shù)目等等[5].一旦JobTracker發(fā)現(xiàn)了空閑slot,便會(huì)調(diào)用調(diào)度器中的AssignTask方法為該TaskTracker分配task。
文章TAG:任務(wù)任務(wù)調(diào)度調(diào)度輪詢任務(wù)調(diào)度

最近更新

  • 機(jī)械手自動(dòng)化設(shè)備耐用嗎,注塑機(jī)怎么安裝及其自動(dòng)化?機(jī)械手自動(dòng)化設(shè)備耐用嗎,注塑機(jī)怎么安裝及其自動(dòng)化?

    機(jī)械設(shè)計(jì)制造及其自動(dòng)化好嗎?注塑機(jī)如何安裝機(jī)械手安裝機(jī)械手有什么好處?匿名用戶問(wèn)題的最佳答案由提問(wèn)者推薦。隨著科學(xué)技術(shù)的發(fā)展,自動(dòng)化機(jī)械手逐漸取代手工勞動(dòng),這已經(jīng)成為許多廠家關(guān)注.....

    問(wèn)答 日期:2024-11-09

  • 王彥紅,影視新星 王彥紅拍的第一部戲的名字是王彥紅,影視新星 王彥紅拍的第一部戲的名字是

    影視新星王彥紅拍的第一部戲的名字是關(guān)東英雄同盛金2,中國(guó)國(guó)家形象片人物篇有哪些人馬云譚盾馬艷麗郭晶晶張永鄧亞萍張梓琳吳宇森丁磊水均益厲以寧甄子丹宋祖英郎平王彥紅……3,電影地道.....

    問(wèn)答 日期:2024-11-09

  • 企業(yè)網(wǎng)絡(luò)安全,公司網(wǎng)絡(luò)安全要怎么做都需要什么企業(yè)網(wǎng)絡(luò)安全,公司網(wǎng)絡(luò)安全要怎么做都需要什么

    公司網(wǎng)絡(luò)安全要怎么做都需要什么安裝網(wǎng)路崗監(jiān)控電腦行為2,做網(wǎng)絡(luò)安全應(yīng)該注意哪些方面1、企業(yè)安全制度(最重要)2、數(shù)據(jù)安全(防災(zāi)備份機(jī)制)3、傳輸安全(路由熱備份、NAT、ACL等)4、服務(wù)器安全(.....

    問(wèn)答 日期:2024-11-09

  • 100厘米等于多少分米,100厘米分米100厘米等于多少分米,100厘米分米

    100厘米分米100厘米=10分米100厘米=(10)分米100厘米=10分米2,100厘米等于多少分米等于多少米100厘米=10分米=1米soeasy100cm=10dm=1m等于10分米。等于1米。10分米3,100厘米等于多少分米1分.....

    問(wèn)答 日期:2024-11-09

  • 云盛,云盛科技有限公司怎么樣云盛,云盛科技有限公司怎么樣

    云盛科技有限公司怎么樣還不錯(cuò)的,各有各的優(yōu)勢(shì),建議你網(wǎng)上搜---【夢(mèng)寧老師】交流,希望能幫到你!2,云盛online怎么樣云盛online哪個(gè)備用最穩(wěn)定可以直接視屏看到現(xiàn)場(chǎng)這里情況清風(fēng)吹空月舒波。.....

    問(wèn)答 日期:2024-11-09

  • 蘋果a15,蘋果A5與CortexA9有什么不同蘋果a15,蘋果A5與CortexA9有什么不同

    蘋果A5與CortexA9有什么不同2,蘋果5sa1530是什么版本3,蘋果5sa1513是移動(dòng)4g嗎4,蘋果14和13有啥區(qū)別1,蘋果A5與CortexA9有什么不同沒(méi)有什么相同不同的,a5是蘋果手機(jī)cpu的型號(hào),a9是cpu的架構(gòu)。.....

    問(wèn)答 日期:2024-11-09

  • 計(jì)算機(jī)cpu,電腦CPU是什么及功能計(jì)算機(jī)cpu,電腦CPU是什么及功能

    電腦CPU是什么及功能中央處理單元,也叫中央處理器,功能就是處理數(shù)據(jù)2,cpu由什么組成cpu的組成:1、寄存器,用來(lái)暫存指令數(shù)據(jù)等處理對(duì)象;2、控制器,把內(nèi)存上的指令、數(shù)據(jù)等讀入寄存器;3、運(yùn)算.....

    問(wèn)答 日期:2024-11-09

  • 錄制視頻軟件,有什么錄制視頻的好點(diǎn)的軟件推薦一下哦錄制視頻軟件,有什么錄制視頻的好點(diǎn)的軟件推薦一下哦

    有什么錄制視頻的好點(diǎn)的軟件推薦一下哦好用視頻錄制軟件,推薦用超級(jí)捕快軟件可以邊錄視頻邊錄聲音,錄制比其他軟件清晰,可以真正做到無(wú)限制錄制。支持將視頻保存為WMV,FLV,AVI,SWF等常見(jiàn).....

    問(wèn)答 日期:2024-11-09

相關(guān)文章