當前位置:首頁 » 操作系統 » 優化調度演算法

優化調度演算法

發布時間: 2022-02-27 02:48:35

㈠ 什麼是智能優化演算法

群體智能優化演算法是一類基於概率的隨機搜索進化演算法,各個演算法之間存在結構、研究內容、計算方法等具有較大的相似性。因此,群體智能優化演算法可以建立一個基本的理論框架模式:

Step1:設置參數,初始化種群;

Step2:生成一組解,計算其適應值;

Step3:由個體最有適應著,通過比較得到群體最優適應值;

Step4:判斷終止條件示否滿足?如果滿足,結束迭代;否則,轉向Step2;

各個群體智能演算法之間最大不同在於演算法更新規則上,有基於模擬群居生物運動步長更新的(如PSO,AFSA與SFLA),也有根據某種演算法機理設置更新規則(如ACO)。

(1)優化調度演算法擴展閱讀

優化演算法有很多,經典演算法包括:有線性規劃,動態規劃等;改進型局部搜索演算法包括爬山法,最速下降法等,模擬退火、遺傳演算法以及禁忌搜索稱作指導性搜索法。而神經網路,混沌搜索則屬於系統動態演化方法。

優化思想裡面經常提到鄰域函數,它的作用是指出如何由當前解得到一個(組)新解。其具體實現方式要根據具體問題分析來定。

㈡ 求遺傳演算法車輛調度優化問題的建模模型和MATLAB源代碼

1、要看你組合優化是屬於哪種問題,一般的組合優化都是混合整數線性或非線性的,那麼就不行了,因此要對遺傳演算法改進才能計算。2、如果有現成的工具箱求解你的組合優化問題肯定要方便些,但碰到具體問題,可能要對參數進行一些設置更改,所以最好能有編程基礎,那樣就可以自己修改工具箱裡面的參數或策略了對你的補充問題,組合優化問題一般都是用matlab和lingo實現吧。建議買一本數學建模的書看一看,都涉及到組合優化問題,也可以下載論文看看。lingo對編程要簡單些,主要是求混合規劃,缺點是似乎還不能用上多目標問題,一般的組合優化都屬於多目標問題。但是matlab功能強大的多。

㈢ 求一個遺傳演算法進行電力系統優化調度 代碼

發一份自編的MATLAB遺傳演算法代碼,用簡單遺傳演算法(Simple Genetic Algorithm or Standard Genetic Algorithm ,SGA)求取函數最大值,初版編寫於7年前上學期間,當時是MATLAB 5.x,在演算法運行效率方面做了修改,主要是採用矩陣操作減少了循環。

遺傳演算法為群體優化演算法,也就是從多個初始解開始進行優化,每個解稱為一個染色體,各染色體之間通過競爭、合作、單獨變異,不斷進化。

優化時先要將實際問題轉換到遺傳空間,就是把實際問題的解用染色體表示,稱為編碼,反過程為解碼,因為優化後要進行評價,所以要返回問題空間,故要進行解碼。SGA採用二進制編碼,染色體就是二進制位串,每一位可稱為一個基因;解碼時應注意將染色體解碼到問題可行域內。

遺傳演算法模擬「適者生存,優勝劣汰」的進化機制,染色體適應生存環境的能力用適應度函數衡量。對於優化問題,適應度函數由目標函數變換而來。一般遺傳演算法求解最大值問題,如果是最小值問題,則通過取倒數或者加負號處理。SGA要求適應度函數>0,對於<0的問題,要通過加一個足夠大的正數來解決。這樣,適應度函數值大的染色體生存能力強。

遺傳演算法有三個進化運算元:選擇(復制)、交叉和變異。

SGA中,選擇採用輪盤賭方法,也就是將染色體分布在一個圓盤上,每個染色體占據一定的扇形區域,扇形區域的面積大小和染色體的適應度大小成正比。如果輪盤中心裝一個可以轉動的指針的話,旋轉指針,指針停下來時會指向某一個區域,則該區域對應的染色體被選中。顯然適應度高的染色體由於所佔的扇形區域大,因此被選中的幾率高,可能被選中多次,而適應度低的可能一次也選不中,從而被淘汰。演算法實現時採用隨機數方法,先將每個染色體的適應度除以所有染色體適應度的和,再累加,使他們根據適應度的大小分布於0-1之間,適應度大的占的區域大,然後隨機生成一個0-1之間的隨機數,隨機數落到哪個區域,對應的染色體就被選中。重復操作,選出群體規模規定數目的染色體。這個操作就是「優勝劣汰,適者生存」,但沒有產生新個體。

交叉模擬有性繁殖,由兩個染色體共同作用產生後代,SGA採用單點交叉。由於SGA為二進制編碼,所以染色體為二進制位串,隨機生成一個小於位串長度的隨機整數,交換兩個染色體該點後的那部分位串。參與交叉的染色體是輪盤賭選出來的個體,並且還要根據選擇概率來確定是否進行交叉(生成0-1之間隨機數,看隨機數是否小於規定的交叉概率),否則直接進入變異操作。這個操作是產生新個體的主要方法,不過基因都來自父輩個體。

變異採用位點變異,對於二進制位串,0變為1,1變為0就是變異。採用概率確定變異位,對每一位生成一個0-1之間的隨機數,看是否小於規定的變異概率,小於的變異,否則保持原狀。這個操作能夠使個體不同於父輩而具有自己獨立的特徵基因,主要用於跳出局部極值。

遺傳演算法認為生物由低級到高級進化,後代比前一代強,但實際操作中可能有退化現象,所以採用最佳個體保留法,也就是曾經出現的最好個體,一定要保證生存下來,使後代至少不差於前一代。大致有兩種類型,一種是把出現的最優個體單獨保存,最後輸出,不影響原來的進化過程;一種是將最優個體保存入子群,也進行選擇、交叉、變異,這樣能充分利用模式,但也可能導致過早收斂。

由於是基本遺傳演算法,所以優化能力一般,解決簡單問題尚可,高維、復雜問題就需要進行改進了。

下面為代碼。函數最大值為3905.9262,此時兩個參數均為-2.0480,有時會出現局部極值,此時一個參數為-2.0480,一個為2.0480。演算法中變異概率pm=0.05,交叉概率pc=0.8。如果不採用最優模式保留,結果會更豐富些,也就是演算法最後不一定收斂於極值點,當然局部收斂現象也會有所減少,但最終尋得的解不一定是本次執行中曾找到過的最好解。

(註:一位網名為mosquitee的朋友提醒我:原代碼的變異點位置有問題。檢驗後發現是將最初的循環實現方法改為矩陣實現方法時為了最優去掉mm的第N行所致,導致變異點位置發生了變化,現做了修改,修改部分加了顏色標記,非常感謝mosquitee,2010-4-22)

% Optimizing a function using Simple Genetic Algorithm with elitist preserved
%Max f(x1,x2)=100*(x1*x1-x2).^2+(1-x1).^2; -2.0480<=x1,x2<=2.0480
% Author: Wang Yonglin ([email protected])
clc;clear all;
format long;%設定數據顯示格式
%初始化參數
T=100;%模擬代數
N=80;% 群體規模
pm=0.05;pc=0.8;%交叉變異概率
umax=2.048;umin=-2.048;%參數取值范圍
L=10;%單個參數字串長度,總編碼長度2L
bval=round(rand(N,2*L));%初始種群
bestv=-inf;%最優適應度初值
%迭代開始
for ii=1:T
%解碼,計算適應度
for i=1:N
y1=0;y2=0;
for j=1:1:L
y1=y1+bval(i,L-j+1)*2^(j-1);
end
x1=(umax-umin)*y1/(2^L-1)+umin;
for j=1:1:L
y2=y2+bval(i,2*L-j+1)*2^(j-1);
end
x2=(umax-umin)*y2/(2^L-1)+umin;
obj(i)=100*(x1*x1-x2).^2+(1-x1).^2; %目標函數
xx(i,:)=[x1,x2];
end
func=obj;%目標函數轉換為適應度函數
p=func./sum(func);
q=cumsum(p);%累加
[fmax,indmax]=max(func);%求當代最佳個體
if fmax>=bestv
bestv=fmax;%到目前為止最優適應度值
bvalxx=bval(indmax,:);%到目前為止最佳位串
optxx=xx(indmax,:);%到目前為止最優參數
end
Bfit1(ii)=bestv; % 存儲每代的最優適應度
%%%%遺傳操作開始
%輪盤賭選擇
for i=1:(N-1)
r=rand;
tmp=find(r<=q);
newbval(i,:)=bval(tmp(1),:);
end
newbval(N,:)=bvalxx;%最優保留
bval=newbval;
%單點交叉
for i=1:2:(N-1)
cc=rand;
if cc<pc
point=ceil(rand*(2*L-1));%取得一個1到2L-1的整數
ch=bval(i,:);
bval(i,point+1:2*L)=bval(i+1,point+1:2*L);
bval(i+1,point+1:2*L)=ch(1,point+1:2*L);
end
end
bval(N,:)=bvalxx;%最優保留
%位點變異
mm=rand(N,2*L)<pm;%N行
mm(N,:)=zeros(1,2*L);%最後一行不變異,強制賦0
bval(mm)=1-bval(mm);
end

%輸出
plot(Bfit1);% 繪制最優適應度進化曲線
bestv %輸出最優適應度值
optxx %輸出最優參數

㈣ 為什麼節能調度演算法一般都是np-hard問題

什麼是NP問題
概念1:
在計算機學科中,存在多項式時間的演算法的一類問題,稱之為P類問題;而像梵塔問題、推銷員旅行問題、(命題表達式)可滿足問題這類,至今沒有找到多項式時間演算法解的一類問題,稱之為NP類問題。
概念2:
多項式時間(Polynomial time)在計算復雜度理論中,指的是一個問題的計算時間m(n)不大於問題大小n的多項式倍數。任何抽象機器都擁有一復雜度類,此類包括可於此機器以多項式時間求解的問題。

以數學描述的話,則可說m(n) = O(n),此n為一常數值(依問題而定)

拿推銷員旅行問題為例,假設推銷員亨利有向6個城市推銷公司產品的任務,並規定了一個旅行預算。他手中有一張航班票價表,他要從A城開始走遍圖中的6個城市後返回A城,並且不超出預算,請你幫他找出應走的路線。如果給出的預算寬裕,則任務很簡單;如果預算比較緊張,你就得認真設計路線了。你得考慮每一種可能的次序,以使旅費最少。
而NP問題中最困難的問題稱之為NP完全問題(NP-complete),已經證明的包括:電話網路的最優幾何設計、格子棋的最佳走法。根據庫克定理,任意一個NP完全問題如果能夠在多項式時間內解決,則所有的NP問題都能在多項式時間內解決,而至今這一問題仍無答案。

什麼是非確定性問題呢?有些計算問題是確定性的,比如加減乘除之類,你只要按照公式推導,按部就班一步步來,就可以得到結果。但是,有些問題是無法按部就班直接地計算出。比如,找大質數的問題。有沒有一個公式,你一套公式,就可以一步步推算出來,下一個質數應該是多少呢?這樣的公式是沒有的。再比如,大的合數分解質因數的問題,有沒有一個公式,把合數代進去,就直接可以算出,它的因子各自是多少?也沒有這樣的公式。
這種問題的答案,是無法直接計算得到的,只能通過間接的「猜算」來得到結果。這也就是非確定性問題。而這些問題的通常有個演算法,它不能直接告訴你答案是什麼,但可以告訴你,某個可能的結果是正確的答案還是錯誤的。這個可以告訴你「猜算」的答案正確與否的演算法,假如可以在多項式時間(多項式時間: 運行時間最多是輸入量的多項式函數)內算出來,就叫做多項式非確定性問題。而如果這個問題的所有可能答案,都是可以在多項式時間內進行正確與否的驗算的話,就叫完全多項式非確定問題。
完全多項式非確定性問題可以用窮舉法得到答案,一個個檢驗下去,最終便能得到結果。但是這樣演算法的復雜程度,是指數關系,因此計算的時間隨問題的復雜程度成指數的增長,很快便變得不可計算了。人們發現,所有的完全多項式非確定性問題,都可以轉換為一類叫做滿足性問題的邏輯運算問題。既然這類問題的所有可能答案,都可以在多項式時間內計算,人們於是就猜想,是否這類問題,存在一個確定性演算法,可以在指數時間內,直接算出或是搜尋出正確的答案呢?這就是著名的NP=P?的猜想。
解決這個猜想,無非兩種可能,一種是找到一個這樣的演算法,只要針對某個特定NP完全問題找到一個演算法,所有這類問題都可以迎刃而解了,因為他們可以轉化為同一個問題。另外的一種可能,就是這樣的演算法是不存在的。那麼就要從數學理論上證明它為什麼不存在。
前段時間轟動世界的一個數學成果,是幾個印度人提出了一個新演算法,可以在多項式時間內,證明某個數是或者不是質數,而在這之前,人們認為質數的證明,是個非多項式問題。可見,有些看來好象是非多項式的問題,其實是多項式問題,只是人們一時還不知道它的多項式解而已。

什麼叫做NP問題,什麼叫做NPC問題?
首先說明一下問題的復雜性和演算法的復雜性的區別,下面只考慮時間復雜性。演算法的復雜性是指解決問題的一個具體的演算法的執行時間,這是演算法的性質;問題的復雜性是指這個問題本身的復雜程度,是問題的性質。比如對於排序問題,如果我們只能通過元素間的相互比較來確定元素間的相互位置,而沒有其他的附加可用信息,則排序問題的復雜性是O(nlgn),但是排序演算法有很多,冒泡法是O(n^2),快速排序平均情況下是O(nlgn)等等,排序問題的復雜性是指在所有的解決該問題的演算法中最好演算法的復雜性。問題的復雜性不可能通過枚舉各種可能演算法來得到,一般都是預先估計一個值,然後從理論上證明。
為了研究問題的復雜性,我們必須將問題抽象,為了簡化問題,我們只考慮一類簡單的問題,判定性問題,即提出一個問題,只需要回答yes或者no的問題。任何一般的最優化問題都可以轉化為一系列判定性問題,比如求圖中從A到B的最短路徑,可以轉化成:從A到B是否有長度為1的路徑?從A到B是否有長度為2的路徑?。。。從A到B是否有長度為k的路徑?如果問到了k的時候回答了yes,則停止發問,我們可以說從A到B的最短路徑就是k。
如果一個判定性問題的復雜度是該問題的一個實例的規模n的多項式函數,則我們說這種可以在多項式時間內解決的判定性問題屬於P類問題。P類問題就是所有復雜度為多項式時間的問題的集合。

㈤ 怎麼優化hadoop任務調度演算法

首先介紹了Hadoop平台下作業的分布式運行機制,然後對Hadoop平台自帶的4種任務調度器做分析和比較,最後在分析JobTracker類文件的基礎上指出了創建自定義任務調度器所需完成的工作。
首先Hadoop集群式基於單伺服器的,只有一個伺服器節點負責調度整個集群的作業運行,主要的具體工作是切分大數據量的作業,指定哪些Worker節點做Map工作、哪些Worker節點做Rece工作、與Worker節點通信並接受其心跳信號、作為用戶的訪問入口等等。其次,集群中的每個Worker節點相當於一個器官,運行著主節點所指派的具體作業。這些節點會被分為兩種類型,一種是接收分塊之後的作業並做映射工作。另一種是負責把前面所做的映射工作按照約定的規則做一個統計。
Task-Tracker通過運行一個簡單循環來定期地發送心跳信號(heartbeat)給JobTracker.這個心跳信號會把TaskTracker是否還在存活告知JobTracker,TaskTracker通過信號指明自己是否已經准備
好運行新的任務.一旦TaskTracker已經准備好接受任務,JobTracker就會從作業優先順序表中選定一個作業並分配下去.至於到底是執行Map任務還是Rece任務,是由TaskTracker的任務槽所決定的.默認的任務調度器在處理Rece任務之前,會優先填滿空閑的Map任務槽.因此,如果TaskTracker滿足存在至少一個空閑任務槽時,JobTracker會為它分配Map任務,否則為它選擇一個Rece任務.TaskTracker在運行任務的時候,第一步是從共享文件系統中把作業的JAR文件復制過來,從而實現任務文件的本地化.第二步是TaskTracker為任務新建一個本地文件夾並把作業文件解壓在此目錄中.第三步是由Task-Tracker新建一個TaskRunner實例來運行該任務.
Hadoop平台默認的調度方案就是JobQueueTaskScheler,這是一種按照任務到來的時間先後順序而執行的調度策略.這種方式比較簡單,JobTracker作為主控節點,僅僅是依照作業到來的先後順序而選擇將要執行的作業.當然,這有一定的缺陷,由於Hadoop平台是默認將作業運行在整個集群上的,那麼如果一個耗時非常大的作業進入執行期,將會導致其餘大量作業長時間得不到運行.這種長時間運行的優先順序別並不高的作業帶來了嚴重的作業阻塞,使得整個平台的運行效率處在較低的水平.Hadoop平台對這種FIFO(FirstINAndFirstOut)機制所給出的解決辦法是調用SetJobPriority()方法,通過設置作業的權重級別來做平衡調度.
FairScheler是一種「公平」調度器,它的目標是讓每個用戶能夠公平地共享Hadoop集群計算能力.當只有一個作業運行的時候,它會得到整個集群的資源.隨著提交到作業表中作業的增多,Hadoop平台會把集群中空閑出來的時間槽公平分配給每個需要執行的作業.這樣即便其中某些作業需要較長時間運行,平台仍然有能力讓那些短作業在合理時間內完成[3].FairScheler支持資源搶占,當一個資源池在一定時段內沒有得到公平共享時,它會終止該資源池所獲得的過多的資源,同時把這些釋放的資源讓給那些資源不足的資源池.
Hadoop平台中的CapacityScheler是由Yahoo貢獻的,在調度器上,設置了三種粒度的對象:queue,job,task.在該策略下,平台可以有多個作業隊列,每個作業隊列經提交後,都會獲得一定數量的TaskTracker資源.具體調度流程如下.
(1)選擇queue,根據資源庫的使用情況從小到大排序,直到找到一個合適的job.
(2)選擇job,在當前所選定的queue中,按照作業提交的時間先後以及作業的權重優先順序別進行排序,選擇合適的job.當然,在job選擇時還需要考慮所選作業是否超出目前現有的資源上限,以及資源池中的內存是否夠該job的task用等因素.
(3)選擇task,根據本地節點的資源使用情況來選擇合適的task.
雖然Hadoop平台自帶了幾種調度器,但是上述3種調度方案很難滿足公司復雜的應用需求.因此作為平台的個性化使用者,往往需要開發自己的調度器.Hadoop的調度器是在JobTracker中載入和調用的,因此開發一個自定義的調度器就必須搞清楚JobTracker類文件的內部機制.作為Hadoop平台的核心組件,JobTracker監控著整個集群的作業運行情況並對資源進行管理調度.每個Task-Tracker每隔3s通過heartbeat向JobTracker匯報自己管理的機器的一些基本信息,包括內存使用量、內存的剩餘量以及空閑的slot數目等等[5].一
旦JobTracker發現了空閑slot,便會調用調度器中的AssignTask方法為該TaskTracker分配task。

㈥ 車輛優化調度理論與方法

國外車輛優化調度研究已廣泛用於生產、生活的各個方面,如報紙投遞及線路的優化、牛奶配送及送達線路的優化、電話預訂貨物的車輛載貨和線路設計、垃圾車的線路優化及垃圾站選址優化、連鎖商店的送貨及線路優化等等。目前,研究水平已有很大發展,其理論成果除在汽車運輸領域外,在水運、航空、通訊、電力、工業管理、計算機應用等領域也有一定的應用,還用於航空乘務員輪班安排、輪船公司運送貨物經過港口與貨物安排的優化設計、交通車線路安排、生產系統中的計劃與控制等多種組合優化問題。 在國內,該問題的系統研究還不多見。近年來本書作者及課題組成員承擔了國家自然科學基金《城市貨運汽車的科學調度》、《貨運車輛調度優化理論及應用研究》和四川省重點軟科學課題《城市貨運卡車集中優化調度研究》等項目的研究工作,對車輛優化調度的基礎理論及各類問題進行了較為系統的研究,開發了基於地理信息系統的可視化物流配送車輛優化調度系統軟體包,2000年11月在深圳第二屆中國高新技術成果交易會上發布,受到好評和重視;發表了三十多篇相關論文;獲得過一項省部級科技進步二等獎。2001年又獲得了國家自然科學基金項目《不確定信息條件下動態車輛路徑》。

本書展示的主要是國家自然科學基金項目《貨運車輛調度優化理論及應用研究》(編號79700019)的研究成果,在多項課題的研究中,取得一批成果,這本書反映的僅僅是一個側面。在課題的研究和書稿的寫作過程中,參閱了大量的國內外文獻,書稿也反映了相關方面目前國際的前沿動態。該領域的研究內容非常廣泛,本書還有許多方面未涉及,期望在新的課題研究中取得突破。

作者:李軍

出 版 社:中國物資出版社

作者簡介:李軍,1967年生,管理學博士,西南交通大學經濟管理學院教授。主要教學和科學研究領域為物流工程、決策分析、博弈理論及應用。主持和完成國家自然科學基金資助項目及其他省部級以上項目10餘項,並獲得省科技進步二等獎一項,發表論文30餘篇。主編、參編教材三本,獲得鐵道部優秀教材一等獎、二等獎各一項。

目錄

第一章 緒論
1.1 物流配送車輛優化調度的概述
1.2 物流配送車輛優化調度的研究動態和水平
1.3 貨運車輛優化調度問題的分類

第二章 基本理論
2.1 組合優化與計算復雜性
2.2 啟發式演算法理論
2.3 遺傳演算法理論

第三章 基本問題
3.1 圖的基本概念
3.2 最小生成樹
3.3 最短路問題
3.4 最大流問題
3.5 最小費用流問題
3.6 中國郵遞員問題
3.7 旅行商問題

第四章 集貨或送貨非滿載車輛優化調度啟發式演算法
4.1 引言
4.2 模型分析
4.3 C—W節約啟發式演算法
4.4 分派啟發式演算法
4.5 多車場多車型問題

第五章 集貨和送貨一體化非滿載車輛優化調度啟發式演算法
5.1 引言
5.2 網路啟發式演算法
5.3 組合啟發式演算法

第六章 非滿載車輛優化調度遺傳演算法
6.1 自然數編碼遺傳演算法理論研究
6.2 旅行商問題的遺傳演算法
6.3 一般車輛優化調度問題的遺傳演算法
6.4 時間窗車輛優化調度問題的遺傳演算法

第七章 單車型滿載車輛的優化調度
7.1 引言
7.2 調度解的獲得
7.3 解的調整
7.4 解的連通化
7.5 線路的組織與調整

第八章 多車型滿載車輛的優化調度啟發式演算法
8.1 概述
8.2 演算法分析
8.3 實例分析

第九章 車輛優化調度演算法的計算機實現
9.1 系統基礎數據
9.2 系統演算法實例

第十章 基於地理信息系統的物流配送可視化車輛優化調度系統
10.1 系統基礎設計
10.2 系統集成結構設計
10.3 系統總體設計
參考文獻

㈦ 生產管理中 調度的 多級多機 是什麼意思 有什麼優化演算法解決

我做調度多年,但沒聽說過這個詞,英文叫什麼?

我的理解是:多分層,多機器
也就是排計劃的時候要考慮到產品的多層性,和在多個機器上生產的特性
所以,如果能有效得利用運籌學的原理,在最短的時間內做最多的產品,不浪費人力,工時,地方,成本就是最優化的調度

㈧ 多目標優化演算法有哪些

主要內容包括:多目標進化演算法、多目標粒子群演算法、其他多目標智能優化演算法、人工神經網路優化、交通與物流系統優化、多目標生產調度和電力系統優化及其他。

㈨ 作業調度的功能是什麼作業調度演算法應考慮的主要因素是什麼

1、作業調度的主要功能是:

根據作業控制塊中的信息,審查系統能否滿足用戶作業的資源需求,以及按照一定的演算法,從外存的後備隊列中選取某些作業調入內存,並為它們創建進程、分配必要的資源。然後再將新創建的進程插入就緒隊列,准備執行。

2、主要考慮因素:

要考慮數據結構的設計、程序執行時間、數據的狀態、是否使得I / O 設備得以充分利用等因素。

通常情況下,對於簡單的時間觸發式調度器來說,待命任務列表的數據結構的設計要盡可能縮短;最壞情況下,程序在調度器關鍵部分的執行時間,以防止其他任務一直在待命列表中,無法及時執行。

因此,在這種調度器中,應盡可能避免搶占式任務,甚至應該關閉調度器之外的所有中斷。當然,待命任務列表的數據結構也應根據這個系統需要的最大任務數量做進一步的優化。

(9)優化調度演算法擴展閱讀

調度演算法應該做到:

1 、在單位時間內運行盡可能多的作業。

2 、作業調度時應使處理機保持忙碌的狀態。

3 、使 I / O 設備得以充分利用。為適應一個進程在不同時間段的運行特點,I/O完成時,提高優先順序;時間片用完時,降低優先順序。

4 、對所有作業公平合理。

5、僅當較高優先順序的隊列為空,才調度較低優先順序的隊列中的進程執行。如果進程執行時有新進程進入較高優先順序的隊列,則搶先執行新進程,並把被搶先的進程投入原隊列的末尾。

㈩ 目前常用的磁碟調度演算法有哪幾種每種演算法優先考慮的問題是什麼

(1)先來先服務(FCFS,First-Come First-Served)
此演算法根據進程請求訪問磁碟的先後次序進行調度。
(2)最短尋道時間優先(SSTF ,ShortestSeekTimeFirst)
該演算法選擇這樣的進程,其要求訪問的磁軌與當前磁頭所在的磁軌距離最近,以使每次的尋道時間最短,但這種調度演算法卻不能保證平均尋道時間最短。
(3)掃描(SCAN)演算法
SCAN演算法不僅考慮到欲訪問的磁軌與當前磁軌的距離,更優先考慮的是磁頭的當前移動方向。
(4)循環掃描(CSCAN)演算法
CSCAN演算法規定磁頭單向移動,避免了掃描演算法導致的某些進程磁碟請求的嚴重延遲。
(5) N-Step-SCAN和FSCAN調度演算法
1) N-Step-SCAN演算法。為克服前述SSTF、SCAN、CSCAN等調度演算法都可能出現的磁臂停留在某處不動的情況即磁臂粘著現象,將磁碟請求隊列分成若干個長度為N的子隊列,按先來先服務演算法依次處理這些子隊列,而各隊列分別以掃描演算法進行處理。
2) FSCAN演算法
FSCAN演算法實質上是N步SCAN演算法的簡化。它只將磁碟請求訪問隊列分成兩個子隊列。一是當前所有請求磁碟I/O的進程形成的隊列,由磁碟調度按SCAN演算法進行處理。另一個隊列則是在 掃描期間,新出現的所有請求磁碟I/O進程的隊列,放入另一等待處理的請求隊列。這樣,所有的新請求都將被推遲到下一次掃描時處理。

熱點內容
網路ip配置失敗怎麼辦小米手機 發布:2024-09-22 08:24:23 瀏覽:552
qq郵箱上傳不了 發布:2024-09-22 07:54:56 瀏覽:864
python字元轉ascii 發布:2024-09-22 07:54:51 瀏覽:643
idanmu解壓碼 發布:2024-09-22 07:48:26 瀏覽:986
四節課編程 發布:2024-09-22 07:19:11 瀏覽:298
安卓java模擬器apk 發布:2024-09-22 07:02:04 瀏覽:422
奈曼的扶貧密碼是多少 發布:2024-09-22 07:01:13 瀏覽:823
編程工資高 發布:2024-09-22 06:39:56 瀏覽:491
小票商品編程 發布:2024-09-22 06:39:12 瀏覽:373
電池存儲倉庫 發布:2024-09-22 06:08:21 瀏覽:369