1. 程式人生 > >總結一下作業系統裡面的幾個演算法

總結一下作業系統裡面的幾個演算法

1.作業排程演算法2.程序排程演算法3.銀行家演算法4.頁面置換演算法5.磁碟排程演算法1.作業排程演算法(1)先來先服務(FCFS)  (2)短作業優先(SJF)  (3)優先順序排程演算法(PSA)  (4)高響應比優先排程演算法(HRRN)     在批處理系統中,fcfs演算法所考慮的只是作業等待時間,而忽視了作業執行時間,而sjf正好相反,只考慮作業執行時間,不考慮作業等待時間,高響應比優先演算法即考慮了作業的等待時間,又不至於長作業等待太久,從而改善了處理機排程效能。   實現:為每個作業引入一個動態優先順序,即優先順序是可以改變的,他隨等待時間延長而增加,這使長作業的優先順序在等待中慢慢增加,足夠時間後,必然有機會獲得處理機,該優先順序的變化規律可描述為由上面可以看出a).如果作業的等待時間相同,則要求服務時間越短,其優先權越高,因而類似於短作ye優先演算法(sjf),有利於短作業。 b).當要求服務時間相同時,作業的優先權又決定其等待時間,因而類似於fcfs演算法。 c).對於長作業的優先順序,可以隨等待時間的增加而提高優先順序,,,該演算法實現了較好的折中,每次要進行排程之前,都需要先做響應比計算,會增加系統開銷。2.程序排程演算法  程序排程的任務:1)儲存處理機的現場資訊 2)按某種演算法選取程序 3)把處理器分配給程序 程序排程方式:    1)非搶佔方式(早期),在採用這種排程方式時,一旦把處理機分配給某程序後,就一直讓他執行下去,絕不會因為時鐘中斷或任何其他原因去搶佔當前正在執行的程序的處理機,直到該程序完成,或發生某事件而被阻塞時,才把處理機分配給其他程序.    2)搶佔方式,這種排程方式允許排程程式根據某種原則,去暫停某個正在執行的程序,將已分配程序的處理機分配給其他程序,對於批處理系統,可以防止一個長程序長時間地佔用處理機,,以確保處理機能為所有程序提供更為公平的服務,。在分時系統中,只有採用搶佔方式才能才有可能實現人機互動,在實時系統中,搶佔方式能夠滿足任務的需求。但搶佔方式比較複雜,所需付出的系統開銷也比較大。