作業系統 程序管理

2022-08-17 02:27:16 字數 2540 閱讀 4101

程序:申請資源和排程資源的基本單位,乙個程序就是乙個程式的乙個執行過程。是乙個動態的概念,在不同的作業系統中,會有不同的程序出現。

程式:靜態概念,是指令和資料的集合,可長期儲存。

程序與程式對應關係:

- 乙個程式可以對應乙個程序或者多個程序

- 乙個程序可以對應乙個程式,或者一段程式

程序由程式,資料集合,程序控制塊pcb(process control block)

pcb,程序在建立的時候,同時建立。程序結束的時候,pcb刪除。

掛起:作業系統中將程序換出記憶體,我們將這稱為程序的掛起。

五狀態轉換:

系統模式(系統態):具有最高特權,執行系統特定的指令。

使用者模式(使用者態):較低的特權,使用者一般執行在使用者模式

程序切換:作用於程序之間的一種操作。當分派程式收回當前程序的cpu並準備把它分派給某個就緒程序時,該程序將被引用。

模式切換:是程序內部所引用的一種操作。當使用者程式轉入系統呼叫,或者相反時,該操作將被呼叫。

程序排程:在乙個佇列中,按照某種方法(演算法),選擇乙個合適的個體的過程。

排程目標:公平性,處理機利用率,提高系統吞吐量,儘量減少程序的響應時間。

優先權優先權:佇列可以根據程序的優先權不同,組織不同的就緒佇列。程序排程時,首先選擇高優先權佇列中的程序,當優先權高的佇列沒有程序的時候,在選擇較低優先權的佇列中的程序。

如圖:

剝奪方式

剝奪方式:時間片到了,程序被剝奪;有新的優先權高的程序插入。

非剝奪方式

非剝奪方式:執行程序只有在執行完畢,或者申請i/o阻塞自己時,才中斷其執行,釋放處理機,調入新程序。

長程排程

長程排程 :又稱為作業排程,它為被排程作業或使用者程式建立程序,分配必要的系統資源,並將建立的程序插入就緒佇列,等待短程排程。或者將新建的程序插入到就緒/掛起佇列,等待中程佇列。

中程排程

中程排程:內外存之間的對換功能的一部分。當記憶體空間緊張的時候,將記憶體中的程序換到外存掛起;當記憶體空閒的時候,將外存中掛起的程序換到記憶體。

短程排程

短程排程:也稱為程序排程,即就緒佇列中的哪個程序將獲取處理機。

先來先服務演算法:(適合長程,中程,短程排程)

該方法按照程序到達的先後順序排序,每次排程對首的程序。

短程序優先演算法:(適用長程和短程排程)

當需要排程程序的時候,通過計算判定就緒佇列中哪個程序的預期執行時間最短;哪個最短,就排程哪個。

時間片輪轉排程法:(適用於短程序排程)

就是在相同時間片內,在各個程序之間的輪轉排程的方式。

基於優先順序的排程演算法

為每個程序定義乙個優先順序,優先順序越高的程序,將優先獲取處理機的排程。(這個演算法可以和上面的時間片輪轉方法結合使用,相互完善)

靜態優先順序:一旦確定,則程序執行期間優先順序一直不改變。

動態優先順序:系統首先賦予程序乙個初始優先順序,該優先順序將隨著程序的執行而改變。(剩餘時間最短者優先,響應比高者優先)

剩餘時間最短者優先:程序的剩餘時間越短,優先順序越高

響應比高者優先:程序(預期執行時間)越長,優先順序越低;而隨著程序的等待時間越長,優先順序越高

反饋排程演算法

反饋排程演算法是一種根據程序執行歷史調整排程方式排程方法,它結合了時間片輪轉排程思想。

排程順序:首先將程序放到第乙個就緒佇列中。如果在這個佇列中無法完成程序,將程序移動到下乙個就緒佇列中,等待執行。

問題為什麼要在不同的佇列中設定不同的時間片?

因為,沒有在上一級隊裡中完成的程序,說明它的需要執行的時間比較多。我們將它放到下一級佇列中,並提供較大的時間片,這樣可以減少處理機記憶體的換進換出,提高系統效率。

問題當乙個程序執行完畢後,需要從**呼叫新的程序?

從第乙個就緒佇列中,呼叫新的程序。呼叫新的程序的時候,我們選擇優先順序高的程序先呼叫。

作業系統 程序管理

程序 申請資源和排程資源的基本單位,乙個程序就是乙個程式的乙個執行過程。是乙個動態的概念,在不同的作業系統中,會有不同的程序出現。程式 靜態概念,是指令和資料的集合,可長期儲存。程序與程式對應關係 乙個程式可以對應乙個程序或者多個程序 乙個程序可以對應乙個程式,或者一段程式 程序由程式,資料集合,程...

作業系統 程序管理

1.程序描述 2.程序狀態 2.2 程序狀態變化模型 2.3 程序掛起模型 2.4 程序控制 3.執行緒 4.ipc 5.程序互斥與同步 乙個程式在乙個資料集合上的一次動態執行過程。程式 演算法 資料結構 與程式的區別 併發concurrency 一段時間內有多個程序執行 並行parallelism...

作業系統 程序管理

當多個作業並處於記憶體中時,同乙個作業中沒有前趨關係的程式段或者不同作業的程式段可以並行執行。程式併發執行的特徵 程式併發導致的不可再現性 由於程式的併發執行,失去了封閉性,其計算結果與併發程式推進的速度有關,從而失去了程式的可再現性,也就是說,程式經過多次執行後,雖然執行時的環境和初始條件相同,但...