Linux基礎4 程序概念

2021-08-18 02:06:55 字數 1806 閱讀 1557

1.fcfs(first come first served):先來先服務,在它執行過程中,不會被中斷。

2.輪轉(round_robin):以乙個週期性間隔產生時鐘中斷,當前正在執行的程序被置於就緒佇列,基於fcfs選擇下乙個就緒程序執行。每個程序被分配乙個時間段,按照在佇列中的順序交替執行;不利於處理緊急作業。

3.spn/sjf:最短程序優先,對預計時間短的程序優先分配處理機,通常後來的程序不會搶先正在執行的程序;長程序可能長時間得不到執行。

4.srt:最短剩餘時間優先,總是選擇預期剩餘時間最短的程序

5.hrrn:最高響應比優先,r=(w+s)/s,其中r表示響應比,w表示已經等待的時間,s表示期待服務的時間;對於fcfs和sjf的平衡,fcfs方式只考慮每個作業的等待時間而未考慮執行時間的長短,而sjf只考慮了執行時間而未考慮等待時間的長短,因此兩種演算法在某種極端的情況下會帶來某些不便。hrrn通過綜合這兩種情況算出響應比r,根據響應比完成排程。優點:長作業也有機會投入執行,缺點:每次排程前要計算響應比。

6.多級反饋佇列:程序在進入待排程的佇列等待時,首先進入優先順序最高的q1中等待;首先排程優先順序高的佇列中的程序。若高優先順序佇列中已經沒有排程的程序,則排程次優先順序佇列的程序;同一佇列中的各個程序按照時間片輪轉排程;在低優先順序佇列中的程序在執行時,又有新到達的作業,那麼在執行完這個時間片後,cpu馬上分配給新到達的作業(剝奪)。

多級反饋佇列演算法例項:

假設3個反饋佇列q1,q2,q3,時間片分別是2、4、8

三個程序j1,j2,j3,到達時刻為0,1,3;需要執行時間為3,2,1個時間片

0、時刻0,j1進入q1,執行乙個時間片j1(1),到達時刻1;

1、時刻1,j2到達進入q2,等待,j1(1)在q1中執行乙個時間片,得到j1(2),q1時間片用完,到達時刻2;

2、時刻2,j1(2)進入q2等待,j2開始在q2中執行乙個時間片得到j2(1),到達時刻3;

3、時刻3,j3到達,因為此時q1為空,所以進入q1等待,但此時j2(1)在q2中還在執行,j2(1)在q2中執行乙個時間片,得到j2(2),完成j2,到達時刻4;

4、時刻4,此時q1中是未執行的j3,q2中是j1(2),所以j3再q1中執行乙個時間片得到j3(1),完成j3,到達時刻5;

5、時刻5、j1(2)在q2中執行乙個時間片,得到j1(3),完成。

為了管理程序,作業系統必須對每個程序所做的事情進行清楚的描述,為此,作業系統使用資料結構來代表處理不同的實體,這個資料結構就是通常所說的程序描述符或程序控制塊(pcb)。

在linux作業系統下這就是task_struct結構 ,所屬的標頭檔案#include。每個程序都會被分配乙個task_struct結構,它包含了這個程序的所有資訊,在任何時候作業系統都能夠跟蹤這個結構的資訊。

2、狀態:描述程序的狀態,因為程序有阻塞、掛起、執行等好幾個狀態,所以都有個表示符來記錄程序的執行狀態。

3、優先順序:如果有好幾個程序正在執行,就涉及到程序的執行的先後順序,這和程序的優先順序這個識別符號有關。

6、上下文資料:程序執行時處理器的暫存器中的資料。

7、i/o狀態資訊:包括顯示的i/o請求,分配給程序的i/o裝置和被程序使用的檔案列表。

8、記賬資訊:包括處理機的時間總和,記賬號等等。

task_struct  //程序描述符

struct  task_struct

wait(null);

return 0;

}

#include#include#include#includeint main()

else if(pid==0)

else

return 0;

}

程序基礎概念

一 程序的排程演算法 在所有排程演算法中,最簡單的是非搶占式的fcfs演算法。演算法原理 程序按照它們請求cpu的順序使用cpu.就像你買東西去排隊,誰第乙個排,誰就先被執行,在它執行的過程中,不會中斷它。當其他人也想進入記憶體被執行,就要排隊等著,如果在執行過程中出現一些事,他現在不想排隊了,下乙...

Linux 程序概念

任何計算機系統都包含乙個基本的程式集合,成為作業系統 os 它包括 作業系統是管管理的軟體 使用者操作 使用者操作介面 shell,lib,指令等 作業系統 驅動程式 硬體 作業系統管理硬體 系統呼叫 在開發者角度,作業系統會對外表現為乙個整體,但是會暴露自己的一部分介面供上層開發者使用,這部分由作...

Linux 程序概念

程序排程演算法 在早期作業系統的排程方式大多數是非剝奪的,這是由於早期的應用一般是科學計算或事務處理,不太把人機互動的響應時間指標放在首要位置。在這種情況下,正在執行的程序可一直占用cpu直到程序阻塞或終止。這種方式的排程演算法可以很簡單,且比較適用對於響應時間不關心或者關心甚少的批處理科學計算或事...