對于多處理器調(diào)度,此處概述了多個(gè)處理器可能帶來的問題和設(shè)計(jì)上的一些問題;對于實(shí)時(shí)調(diào)度,概述了兩種調(diào)度方法:限時(shí)調(diào)度和速率單調(diào)調(diào)度。
海寧ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書合作)期待與您的合作!多處理器系統(tǒng)可以分為以下幾類:
松耦合、分布式處理器、集群:有一系列相對自治的系統(tǒng)組成,每個(gè)處理器有自己的內(nèi)存和I/O通道。
專門功能的處理器:I/O處理器時(shí)一個(gè)例子,此時(shí)有一個(gè)通用的主處理器,專門處理器受主處理器的控制,并給主處理器提供服務(wù)。
緊耦合多處理器:由一系列共享同一個(gè)內(nèi)存并在操作系統(tǒng)完全控制的處理器組成,這里詳細(xì)分析。
調(diào)度上需要考慮三種問題:
將進(jìn)程分配到處理器。
在單個(gè)處理器上使用多道程序設(shè)計(jì)。
一個(gè)進(jìn)程 的實(shí)際分派。
如果多處理器結(jié)構(gòu)統(tǒng)一,即在內(nèi)存、I/O設(shè)備的訪問時(shí)沒有特殊的優(yōu)勢,最簡單的方法時(shí)將處理器看作一個(gè)資源池,然后按照要求分配到對應(yīng)處理器。那么要靜態(tài)還是動(dòng)態(tài)分配呢?
如果一個(gè)進(jìn)程的生命周期都被分配到一個(gè)處理器上(靜態(tài)分配),則需要為每個(gè)處理器維護(hù)一個(gè)短程隊(duì)列,優(yōu)點(diǎn)是開銷?。ㄋ羞M(jìn)程只分配一次,使用專門處理器的一個(gè)策略時(shí)組調(diào)度),缺點(diǎn)時(shí)一個(gè)處理器可能一直處于空閑狀態(tài),而另一個(gè)處理器積壓許多工作,避免此方法是使用一個(gè)公共隊(duì)是列,所有進(jìn)程進(jìn)入并分配到任意一個(gè)可用的處理器上。在緊密耦合的共享儲(chǔ)存器結(jié)構(gòu)中,所有處理器可以得到任意進(jìn)程的上下文環(huán)境信息(調(diào)度進(jìn)程的開銷與被調(diào)度到的處理器無關(guān))。另一種分配方法是動(dòng)態(tài)負(fù)載均衡(動(dòng)態(tài)分配),線程可以在不同處理器所對應(yīng)的隊(duì)列里轉(zhuǎn)移,Linux使用此策略。
在分配到處理器的過程中,主要有兩種方法:主從式、對等式。
主從試:操作系統(tǒng)的主要核心功能在某個(gè)特定的處理器上運(yùn)行,其他處理器可能僅僅用于執(zhí)行用戶進(jìn)程。主處理器負(fù)載調(diào)度作業(yè),如果從處理器需要I/O調(diào)用等服務(wù),則必須給主處理器發(fā)送請求,然后等待服務(wù)執(zhí)行。由于主處理擁有對所有存儲(chǔ)器和I/O資源的控制,可以簡化沖突解決方案,所以幾乎不需要對單處理器多道程序操作系統(tǒng)進(jìn)程增強(qiáng)。同時(shí)主處理器的失敗會(huì)導(dǎo)致整個(gè)系統(tǒng)的失敗,主處理器可能為性能瓶頸。
對等式:操作系統(tǒng)可以在任何處理器上執(zhí)行。每個(gè)處理器從進(jìn)場池里進(jìn)行自調(diào)度。操作系統(tǒng)的穩(wěn)定性和性能相對主從試較高,但同時(shí)增加了操作系統(tǒng)的復(fù)雜性:操作系統(tǒng)必須確保不能一個(gè)進(jìn)程被多個(gè)處理器選擇,進(jìn)程也不能在隊(duì)列里丟失,所以要采用一些可以解決同步競爭資源請求的技術(shù)。
當(dāng)然還有在兩個(gè)極端之前的方法:可以提供處理器子集而非一個(gè)處理器,以專門用于內(nèi)核的處理;基于優(yōu)先級和執(zhí)行歷史來管理內(nèi)核進(jìn)程和其他進(jìn)程之前的需求差異。
如果每個(gè)進(jìn)程使用靜態(tài)分配,就會(huì)有一個(gè)新問題:此處理器支持多道程序嗎?如果綁定后因?yàn)榈却齀/O或考慮到并發(fā)/同步而被頻繁阻塞,則會(huì)有處理器的浪費(fèi)。
這是關(guān)于選擇那個(gè)進(jìn)程運(yùn)行的策略,在多道單處理器上面,使用優(yōu)先級或基于歷史的高級調(diào)度算法比簡單的FCFS策略性能更好。而在多處理器上,這些復(fù)雜性可能不必要,甚至有相反效果,而簡單的方法可能更有效。對于線程調(diào)度則有比優(yōu)先級或執(zhí)行歷史更重要的新問題。
實(shí)際大多數(shù)傳統(tǒng)處理器系統(tǒng),使用多條基于優(yōu)先級的隊(duì)列,且都在相同的處理池中執(zhí)行。并非指定專門處理器或一個(gè)處理器使用一個(gè)隊(duì)列。
在一個(gè)雙處理器和單處理器系統(tǒng)里,多處理的每個(gè)處理器處理速度是單處理的一半。使用FCFS調(diào)度、輪轉(zhuǎn)法和最短剩余時(shí)間法后進(jìn)行比較,得到進(jìn)程服務(wù)時(shí)間的對比,即一個(gè)進(jìn)程的生命周期里使用處理器的時(shí)間。輪轉(zhuǎn)法的時(shí)間片長度比上下文環(huán)境切換的開銷大,且比平均服務(wù)時(shí)間短。該執(zhí)行結(jié)果取決于每個(gè)進(jìn)程之間的服務(wù)時(shí)間變化,從每個(gè)服務(wù)時(shí)間的差異從0增加,可得到一個(gè)結(jié)論:對于雙處理器,不同調(diào)度算法的差距沒有單處理表現(xiàn)的大,當(dāng)處理器增多時(shí)該結(jié)論更加確定。因此多處理器使用簡單的FCFS或靜態(tài)優(yōu)先級方案的FCFS即可。(在多處理器的FCSF調(diào)度中,一個(gè)長進(jìn)程很少被中斷,其他進(jìn)程可以使用其他的處理器,因此相對單處理器短進(jìn)程等待時(shí)間較少)
(見文獻(xiàn)Sauer, C. and Chandy, K. Computer Systems Performance Mondling. Englewood Cliffs, NJ:Prentice Hall, 1981)
有4種比較突出的方法:
進(jìn)程不是分配到固定的處理器,而是有系統(tǒng)維護(hù)一個(gè)就緒進(jìn)程的全局隊(duì)列,當(dāng)處理器空閑時(shí)就從隊(duì)列里選擇一個(gè)進(jìn)程。
優(yōu)點(diǎn)是:
負(fù)載均勻分布在各處理器上,有工作可做時(shí),沒有處理器空閑。
不需要集中調(diào)度器。操作系統(tǒng)調(diào)度例程在空閑的處理器上運(yùn)行以選擇就緒線程。
可以選擇單處理調(diào)度的方案組織和訪問全局隊(duì)列,包括基于優(yōu)先級和執(zhí)行歷史或預(yù)處理請求的方案。 負(fù)載分配方案:
FCFS:為空閑處理器選擇全局共享隊(duì)列末尾的就緒線程,直到完成或阻塞。
最少線程數(shù)優(yōu)先:空閑就緒隊(duì)列被組織成優(yōu)先級隊(duì)列,如果一個(gè)作業(yè)的位調(diào)度線程數(shù)目最少則優(yōu)先級高,優(yōu)先級相同則優(yōu)先執(zhí)行先到達(dá)的作業(yè),被調(diào)度的線程一直運(yùn)行直到阻塞或結(jié)束。
可搶占最少線程數(shù)優(yōu)先:如果一個(gè)新到的作業(yè)包含線程數(shù)少于當(dāng)前正在執(zhí)行的作業(yè),則搶占執(zhí)行。 通過實(shí)驗(yàn)得出,F(xiàn)CFS的效果優(yōu)于其他兩個(gè)調(diào)度策略。
缺點(diǎn)是:
中心隊(duì)列占據(jù)了必須互斥訪問的存儲(chǔ)器區(qū)域,當(dāng)特別多的處理器同時(shí)查找工作時(shí)可能出現(xiàn)瓶頸。
被搶占的線程可能不在同一個(gè)處理器上恢復(fù)運(yùn)行,如果每個(gè)處理器都配備一個(gè)本地高速緩存,則緩存效率較低。
如果所有線程看做公共的線程池,則一個(gè)程序的線程不能同時(shí)被多個(gè)處理器訪問。如果一個(gè)程序的線程之間需要高度的合作,則涉及的進(jìn)程切換可能會(huì)影響性能。
一組相關(guān)進(jìn)程基于一對一的原則,同時(shí)調(diào)度到一組處理器上運(yùn)行。提高程序性能的顯著方式是使進(jìn)程切換開銷最小,即讓有聯(lián)系的線程可以同時(shí)運(yùn)行??梢园凑彰總€(gè)應(yīng)用程序的線程個(gè)數(shù)加權(quán)分配不同的組調(diào)度時(shí)間,以減少處理器浪費(fèi)的時(shí)間。
優(yōu)點(diǎn):
如果緊密相關(guān)的進(jìn)程并行執(zhí)行,則同步阻塞的可能會(huì)減少,并且進(jìn)程切換也會(huì)變少,性能會(huì)提高。
調(diào)度開銷可能減少,因?yàn)橐粋€(gè)決策可以影響到許多的處理器和進(jìn)程。
與負(fù)載分配的方法相反,指定線程運(yùn)行到某個(gè)處理器。處理器數(shù)目與線程數(shù)相等,線程結(jié)束時(shí)處理器返回到處理器池里。
看上去會(huì)浪費(fèi)處理器時(shí)間,即應(yīng)用程序一個(gè)線程被阻塞且等待I/O或與其他線程的同步,則該處理會(huì)一直空閑,屬于非多道程序設(shè)計(jì)。但有以下兩點(diǎn)的情況可以解釋使用此策略的原因:
在高度并行的系統(tǒng)中,有幾十或幾百個(gè)處理器,每個(gè)處理器只占用系統(tǒng)總代價(jià)的一笑部分,處理器利用率不是衡量有效性或性能的一個(gè)重要因素。
在一個(gè)程度的聲明周期里要避免進(jìn)程切換而加快程序的運(yùn)行速度,類似操作系統(tǒng)的單處理器的存儲(chǔ)器分配問題,即一定時(shí)刻分配給一個(gè)程序多少處理器(一定時(shí)刻給進(jìn)程分配多少頁框)。
在其他方案里提出一個(gè)類似虛擬內(nèi)存的工作集術(shù)語--活動(dòng)工作集:為了保證應(yīng)用程序以可接受的速度運(yùn)行,在處理器上必須同時(shí)調(diào)度的最少數(shù)目的線程。和存儲(chǔ)器管理方案一樣,調(diào)度活動(dòng)工作集中所有元素是的失敗可能導(dǎo)致處理器抖動(dòng):調(diào)度其他線程時(shí),取消了未來將要調(diào)度執(zhí)行的線程。類似內(nèi)存碎片,處理器碎片指當(dāng)一些處理器剩余的數(shù)目和合適程度上不滿足正在等待的應(yīng)用程序的需要。而組調(diào)度和專用處理器分配則有意避免這些問題。
線程數(shù)可變,通過調(diào)整負(fù)載提高利用率。
將處理器分配給作業(yè),每個(gè)作業(yè)將他的部分可以運(yùn)行任務(wù)映射到線程,使用當(dāng)前分配的處理器運(yùn)行。而關(guān)于運(yùn)行那個(gè)子集以及需要掛起那個(gè)線程的決策留個(gè)單個(gè)應(yīng)用程序決定。
調(diào)度策略:
有請求到來時(shí):
如果有空閑的處理器,則使用并執(zhí)行。
否則,如果是新到達(dá)的請求(不是未滿足分配需求而等待的請求),則選擇當(dāng)前已分配的多個(gè)處理器的作業(yè),分出處理器去執(zhí)行新作業(yè)。
如果分配不能得到滿足,則保持未完整狀態(tài),直到滿足的處理器可用,或請求廢除。
處理器被釋放時(shí): 掃描未滿足分配而等待的請求隊(duì)列,按照FCFS分配處理器資源。
實(shí)時(shí)任務(wù)或進(jìn)程是指該進(jìn)程的執(zhí)行與計(jì)算機(jī)系統(tǒng)外部的某些進(jìn)程、功能或事件集合有關(guān),并且為了保證有效和正確的與外部環(huán)境交互,必須滿足一個(gè)或多個(gè)最后期限。
實(shí)時(shí)操作系統(tǒng)是指能夠管理實(shí)時(shí)進(jìn)程的操作系統(tǒng)。在實(shí)時(shí)的操作系統(tǒng)中,傳統(tǒng)的調(diào)度算法原則不適用,關(guān)鍵因素是滿足最后期限,很大程度上依靠搶占和對相對最后期限有反應(yīng)的算法適合于這種上下文。
目標(biāo)是盡可能快速啟動(dòng)實(shí)時(shí)任務(wù),因此強(qiáng)調(diào)快速中斷處理和任務(wù)分派。盡管存在動(dòng)態(tài)資源請求和沖突、處理過載和軟硬件故障,實(shí)時(shí)應(yīng)用程序不關(guān)注絕對速度,關(guān)注在最有價(jià)值的時(shí)間完成或啟動(dòng)任務(wù)。
關(guān)于實(shí)時(shí)任務(wù)調(diào)度的有效、合適的方法,都基于每個(gè)任務(wù)的額外信息,常見信息有:
就緒時(shí)間:任務(wù)開始準(zhǔn)備執(zhí)行時(shí)間,對于周期性或重復(fù)的任務(wù),該時(shí)間序列提前可以知道。對于非周期性任務(wù),或者事先知道,或者操作系統(tǒng)僅僅知道什么時(shí)候任務(wù)就緒。
啟動(dòng)最后時(shí)間:必須開始的時(shí)間。
完成最后時(shí)間:必須完成的時(shí)間,典型實(shí)時(shí)應(yīng)用程序有啟動(dòng)最后時(shí)間或完成最后時(shí)間的一個(gè)。
處理時(shí)間:開始執(zhí)行到完成的時(shí)間,某些情況操作系統(tǒng)度量指數(shù)平均值而不是提供此時(shí)間。
資源需求:執(zhí)行時(shí)需要的資源集合(除處理器)。
優(yōu)先級:硬實(shí)時(shí)任務(wù)可能有絕對優(yōu)先級,錯(cuò)過則導(dǎo)致系統(tǒng)失敗。如果系統(tǒng)無論如何都要運(yùn)行,則硬、軟實(shí)時(shí)任務(wù)可以被指定相關(guān)的優(yōu)先級以指導(dǎo)調(diào)度器。
子任務(wù)結(jié)構(gòu):一個(gè)任務(wù)可被分解為必須運(yùn)行或可選的子任務(wù)。
相關(guān)的策略有:
最早最后期限:選擇就緒任務(wù)里有最近的最后期限任務(wù)。
有自愿空閑時(shí)間的最早最后期限:只優(yōu)先調(diào)用最近的最后期限任務(wù),即使要等待還沒有就緒的任務(wù)。
速率單調(diào)調(diào)度RMS是基于任務(wù)的周期給它們指定優(yōu)先級,周期越短(速率越高)優(yōu)先越高,周期與速率互為倒數(shù)。處理器利用率為執(zhí)行時(shí)間/周期時(shí)間。
由于每個(gè)任務(wù)的處理器利用率和不大于1,所以可以通過計(jì)算總處理器利用率以判斷是否所以任務(wù)可以實(shí)時(shí)執(zhí)行完畢。而RMS對于以下不等式成立:n個(gè)任務(wù)的總利用率和不大于n*(2^(1/n) -1)。
選擇RMS的原因是:
該公式是保守值,實(shí)際上通常能到達(dá)90%。
大多數(shù)硬實(shí)時(shí)系統(tǒng)也有軟時(shí)間部件,如非關(guān)鍵性的顯示與內(nèi)置的自測試,可以在低優(yōu)先上執(zhí)行,占用硬實(shí)時(shí)任務(wù)的RMS調(diào)度中沒有使用的處理器時(shí)間。
RMS易于實(shí)現(xiàn)穩(wěn)定性。當(dāng)由于超載和瞬時(shí)錯(cuò)誤而不能滿足最后期限時(shí),原則上對一些基本任務(wù)只要是可調(diào)度的,其最后期限就應(yīng)該被保證。如果使用靜態(tài)優(yōu)先級分配方法,只需要確保基本任務(wù)具有相對較高的優(yōu)先級;如果使用RMA,可以讓基本任務(wù)有較短的周期,或通過修改RMS優(yōu)先級以說明基本任務(wù)實(shí)現(xiàn);對于最早最后期限調(diào)度,周期性任務(wù)的優(yōu)先級從一個(gè)周期到另一個(gè)周期是不斷變化的,使得基本任務(wù)的最后期限難以滿足。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
新聞標(biāo)題:操作系統(tǒng)精髓與設(shè)計(jì)原理--多處理器和實(shí)時(shí)調(diào)度-創(chuàng)新互聯(lián)
網(wǎng)站鏈接:http://jinyejixie.com/article8/ccphip.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、網(wǎng)站營銷、電子商務(wù)、網(wǎng)站排名、服務(wù)器托管、手機(jī)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容