1. 什麼是進程調度進程調度是如何實現的
高級調度:也稱為作業調度。它的主要功能是以一個一定,選擇批次作業輸入一些工作,分配必要的資源,如內存,外設,用戶的工作流程和系統進程服務(如輸入,輸出過程),終於他們的程序和數據中介的記憶,等待進程調度執行調度和康復工作完成後取得的工作。
低層次的調度:又稱進程調度。它的主要功能是根據一定的CPU分配給就緒隊列中的一個過程。要執行一個低級別的調度程序,進程調度,CPU可以實現進程之間切換。安排高工作頻率的過程中,往往是幾十毫秒在分時系統必須運行一次。操作系統調度進程調度是最基本的一種。一般類型的操作系統必須處理調度,其戰略將直接影響整個系統可以指望。
中級調度:也稱為交換調度。在同一時間存儲在存儲器中的進程數將不會太大,有時你需要一些過程,從存儲器到外部存儲器,以減少建立了用於此目的的中間調度程序的數目。特別是在虛擬存儲技術系統或分時系統中,往往會增加的電平的中間級的調度。中級調度功能是嚴格的內存使用情況,一些發言者暫時無法逃離內存中等待切換到外部存儲器。替換後內存有足夠的自由空間,那麼適當的進程和內存,等待進程調度。引入的中間調度的主要目的是為了提高內存利用率和系統吞吐量。它實際上是內存管理變革
2. 什麼是進程調度常用的進程調度演算法有哪些
無論是在批處理系統還是分時系統中,用戶進程數一般都多於處理機數、這將導致它們互相爭奪處理機。另外,系統進程也同樣需要使用處理機。這就要求進程調度程序按一定的策略,動態地把處理機分配給處於就緒隊列中的某一個進程,以使之執行。就是調度。
有先來先服務調度演算法、優先數調度演算法、時間片輪轉演算法、分級調度演算法 、最短作業時間優先(搶占式和非搶占式)、最高響應比調度演算法,樂透調度等。
3. 進程調度演算法是什麼
調度演算法是指:根據系統的資源分配策略所規定的資源分配演算法。
一、先來先服務和短作業(進程)優先調度演算法
1. 先來先服務調度演算法。先來先服務(FCFS)調度演算法是一種最簡單的調度演算法,該演算法既可用於作業調度, 也可用於進程調度。FCFS演算法比較有利於長作業(進程),而不利於短作業(進程)。由此可知,本演算法適合於CPU繁忙型作業, 而不利於I/O繁忙型的作業(進程)。
2. 短作業(進程)優先調度演算法。短作業(進程)優先調度演算法(SJ/PF)是指對短作業或短進程優先調度的演算法,該演算法既可用於作業調度, 也可用於進程調度。但其對長作業不利;不能保證緊迫性作業(進程)被及時處理;作業的長短只是被估算出來的。
二、高優先權優先調度演算法
1. 優先權調度演算法的類型。為了照顧緊迫性作業,使之進入系統後便獲得優先處理,引入了最高優先權優先(FPF)調度演算法。 此演算法常被用在批處理系統中,作為作業調度演算法,也作為多種操作系統中的進程調度,還可以用於實時系統中。當其用於作業調度, 將後備隊列中若干個優先權最高的作業裝入內存。當其用於進程調度時,把處理機分配給就緒隊列中優先權最高的進程,此時, 又可以進一步把該演算法分成以下兩種:
1)非搶占式優先權演算法
2)搶占式優先權調度演算法(高性能計算機操作系統)
2. 優先權類型 。對於最高優先權優先調度演算法,其核心在於:它是使用靜態優先權還是動態優先權, 以及如何確定進程的優先權。
3. 高響應比優先調度演算法
為了彌補短作業優先演算法的不足,我們引入動態優先權,使作業的優先等級隨著等待時間的增加而以速率a提高。 該優先權變化規律可描述為:優先權=(等待時間+要求服務時間)/要求服務時間;即 =(響應時間)/要求服務時間
三、基於時間片的輪轉調度演算法
1. 時間片輪轉法。時間片輪轉法一般用於進程調度,每次調度,把CPU分配隊首進程,並令其執行一個時間片。 當執行的時間片用完時,由一個記時器發出一個時鍾中斷請求,該進程被停止,並被送往就緒隊列末尾;依次循環。 2. 多級反饋隊列調度演算法 多級反饋隊列調度演算法多級反饋隊列調度演算法,不必事先知道各種進程所需要執行的時間,它是目前被公認的一種較好的進程調度演算法。 其實施過程如下:
1) 設置多個就緒隊列,並為各個隊列賦予不同的優先順序。在優先權越高的隊列中, 為每個進程所規定的執行時間片就越小。
2) 當一個新進程進入內存後,首先放入第一隊列的末尾,按FCFS原則排隊等候調度。 如果他能在一個時間片中完成,便可撤離;如果未完成,就轉入第二隊列的末尾,在同樣等待調度…… 如此下去,當一個長作業(進程)從第一隊列依次將到第n隊列(最後隊列)後,便按第n隊列時間片輪轉運行。
3) 僅當第一隊列空閑時,調度程序才調度第二隊列中的進程運行;僅當第1到第(i-1)隊列空時, 才會調度第i隊列中的進程運行,並執行相應的時間片輪轉。
4) 如果處理機正在處理第i隊列中某進程,又有新進程進入優先權較高的隊列, 則此新隊列搶占正在運行的處理機,並把正在運行的進程放在第i隊列的隊尾。
4. 進程調度的方式有哪兩種試列舉至少4種進程調度演算法。
進程調度的方式有非剝奪方式和剝奪方式。
非剝奪方式:
分派程序一旦把處理機分配給某進程後便讓它一直運行下去,直到進程完成或發生某事件而阻塞時,才把處理機分配給另一個進程。
剝奪方式:
當一個進程正在運行時,系統可以基於某種原則,剝奪已分配給它的處理機,將之分配給其它進程。剝奪原則有:優先權原則、短進程優先原則、時間片原則。
進程調度演算法:
1、先進先出演算法(FIFO):
演算法總是把處理機分配給最先進入就緒隊列的進程,一個進程一旦分得處理機,便一直執行下去,直到該進程完成或阻塞時,才釋放處理機。
舉例:有三個進程P1、P2和P3先後進入就緒隊列,它們的執行期分別是21、6和3個單位時間,對於P1、P2、P3的周轉時間為21、27、30,平均周轉時間為26。可見,FIFO演算法服務質量不佳,容易引起作業用戶不滿,常作為一種輔助調度演算法。
2、最短CPU運行期優先調度演算法(SCBF--Shortest CPU Burst First):
該演算法從就緒隊列中選出下一個「CPU執行期最短」的進程,為之分配處理機。
舉例:在就緒隊列中有四個進程P1、P2、P3和P4,它們的下一個執行進程調度期分別是16、12、4和3個單位時間,P1、P2、P3和P4的周轉時間分別為35、19、7、3,平均周轉時間為16。該演算法雖可獲得較好的調度性能,但難以准確地知道下一個CPU執行期,而只能根據每一個進程的執行歷史來預測。
3、時間片輪轉法:
前幾種演算法主要用於批處理系統中,不能作為分時系統中的主調度演算法,在分時系統中,都採用時間片輪轉法。簡單輪轉法:系統將所有就緒進程按FIFO規則排隊,按一定的時間間隔把處理機分配給隊列中的進程。這樣,就緒隊列中所有進程均可獲得一個時間片的處理機而運行。
4、多級反饋隊列:
多級隊列方法:將系統中所有進程分成若干類,每類為一級。多級反饋隊列方式是在系統中設置多個就緒隊列,並賦予各隊列以不同的優先權。
5. 什麼是CPU三級調度,何時調度,如何調度
所謂調度就是選出待分派的作業或進程。
處理機調度的主要目的就是為了分配處理機。
在不同的操作系統中所採用的調度方式並不完全相同。有的系統中僅採用一級調度,而有的系統採用兩級或三級,並且所用的調度演算法也完全可能不同。
一般說來,作業從進人系統到最後完成,可能要經歷三級調度:高級調度、中級調度和低級調度。
(1)高級調度:又稱作業調度。其主要功能是根據一定的演算法,從輸人的一批作業中選出若干個作業,分配必要的資源,如內存、外設等,為它建立相應的用戶作業進程和為其服務的系統進程(如輸人、輸出進程),最後把它們的程序和數據調人內存,等待進程調度程序對其執行調度,並在作業完成後作善後處理工作。
(2)中級調度:為了使內存中同時存放的進程數目不至於太多,有時就需要把某些進程從內存中移到外存上,以減少多道程序的數目,為此設立了中級調度。特別在採用虛擬存儲技術的系統或分時系統中,往往增加中級調度這一級。所以中級調度的功能是在內存使用情況緊張時,將一些暫時不能運行的講程從內存對換到外存上等待。當以後內存有足夠的空閑空間時,再將合適的進程重新換人內存,等待進程調度。引人中級調度的主要目的是為了提高內存的利用率和系統吞吐量。它實際上就是存儲器管理中的對換功能。
(3)低級調度:又稱進程調度。其主要功能是根據一定的演算法將CPU分派給就緒隊列中的一個進程。執行低級調度功能的程序稱做進程調度程序,由它實現CPU在進程間的切換。進程調度的運行頻率很高,在分時系統中往往幾十毫秒就要運行一次。進程調度是操作系統中最基本的一種調度。在一般類型的操作系統中都必須有進程調度,而且它的策略的優劣直接影響整個系統的計能。