併發編程-進程-03進程調度

要想多個進程交替運行,操做系統必須對這些進程進行調度,這個調度也不是隨即進行的,而是須要遵循必定的法則,由此就有了進程的調度算法。算法

一丶先來先服務調度算法

先來先服務(FCFS)
ps:名字就把意思安排的明明白白的,就是隊列意思

二丶短做業優先調度算法

短做業(進程)優先調度算法(SJ/PF)是指對短做業或短進程優先調度的算法,該算法既可用於做業調度,也可用於進程調度。但其對長做業不利;不能保證緊迫性做業(進程)被及時處理;做業的長短只是被估算出來的。

阿攀大白話:

先作短時間的做業,而後長期的做業,形成問題對短時間做業的有好處,長期做業可能一直執行不到或時間過久!操作系統

三丶時間片輪轉法

時間片輪轉(Round Robin,RR)法的基本思路是讓每一個進程在就緒隊列中的等待時間與享受服務的時間成比例。
在輪轉法中,加入到就緒隊列的進程有3種狀況:
    1.第一種是分給它的時間片用完,但進程還未完成,回到就緒隊列的末尾等待下次調度去繼續執行。
    2.第二種狀況是分給該進程的時間片並未用完,只是由於請求I/O或因爲進程的互斥與同步關係而被阻塞。當阻塞解除以後再回到就緒隊列。
    3.第三種狀況就是新建立進程進入就緒隊列

四丶多級反饋隊列

多級反饋隊列調度算法則沒必要事先知道各類進程所需的執行時間,並且還能夠知足各類類型進程的須要,於是它是目前被公認的一種較好的進程調度算法。code

  1. 應設置多個就緒隊列,併爲各個隊列賦予不一樣的優先級。
  2. 當一個新進程進入內存後,將它放入第一隊列的末尾,按先進先出等待調度。若是它在一個時間片還沒有完成,調度程序便將該進程轉入下個隊列的末尾,再一樣地按先進先出等待調度執行;
  3. 僅當上一隊列空閒時,調度程序才調度對應隊列中的進程運行

進程調度

相關文章
相關標籤/搜索