Upload
giona
View
39
Download
0
Embed Size (px)
DESCRIPTION
第二章. 行程管理. 朱肇明 資管系 講師 大華技術學院. 行程 (process). 行程就是一個執行中的程式。 行程包括了 程式區段 資料區段 堆疊區段 CPU 中各暫存器的值 ( 行程執行時所需控制資訊 ). 行程 (process) 與程式 (program). 行程 (process) 與程式 (program) 的不同: 程式是放在外部的儲存裝置如硬碟上,而行程則放在記憶體中。 程式在儲存裝置中是靜態的,而行程在記憶體中是動態的,它會隨著一些事件的發生而產生相對的改變。 行程,簡單來說,就是一個執行中的程式。. 行程的狀態. - PowerPoint PPT Presentation
Citation preview
第二章
行程管理 朱肇明資管系 講師大華技術學院
行程 (process)
行程就是一個執行中的程式。 行程包括了
1. 程式區段 2. 資料區段3. 堆疊區段4. CPU 中各暫存器的值 (行程執行時所需控制資
訊 )
行程 (process) 與程式 (program)
行程 (process) 與程式 (program) 的不同:– 程式是放在外部的儲存裝置如硬碟上,而行程則放在記憶體中。
– 程式在儲存裝置中是靜態的,而行程在記憶體中是動態的,它會隨著一些事件的發生而產生相對的改變。
行程,簡單來說,就是一個執行中的程式。
行程的狀態
一個行程在執行過程中,會改變很多狀態。 一個行程的狀態通常有下列幾種:
– 建立– 執行– 懸置– 就緒– 終止
行程狀態轉換圖
中斷
事件發生 等待事件
分派
離開允許進入建立 終止
就緒 執行
懸置
行程控制區塊
行程控制區塊( PCB) ,儲存行程在執行時相關的資訊。 PCB 中通常包括了
– 行程狀態– CPU 暫存器– 排程資訊– I/O 狀態
當行程進行切換時,需要將目前行程的相關資訊記錄在該行程的 PCB 中,並將另一個行程的 PCB 載入至系統中,這個動作稱為內文切換。
行程控制區塊
行程狀態 鍵結
識別碼
記憶體管理資訊
程式計數器與其他暫存器
已開啟檔案串列
::
行程的佇列
一個行程在執行期間會在各種不同的佇列中進出。
一個系統中通常有– 工作佇列– 就緒佇列– 等待佇列– 裝置佇列
就緒佇列與裝置佇列
head
tail
head
tail
head
tail
暫存器…
暫存器…就緒佇列
磁碟裝置佇列
行程等待佇列
行程控制區塊 b
暫存器…
暫存器…
行程控制區塊 l
…..…
行程控制區塊 n
行程控制區塊 P
行程控制區塊 a
行程的切換
行程 A 作業系統 行程 B中斷或系統呼叫
將狀態儲存至 PCB A
執行中
執行中
閒置
由 PCB B 載入狀態
將狀態儲存至 PCB B
由 PCB A 載入狀態
中斷或系統呼叫
閒置
閒置
執行中
內文切換
當 CPU 的使用權由一個行程轉到另一個行程時需進行內文切換。
內文切換動作所花的時間對系統而言是額外的負擔 。
執行緒降低內文切換所花的時間。
行程排程
為了增加 CPU 的使用效率而提出多個行程的觀念。
一個單 CPU 的系統來說,隨時只能有一個行程在執行。
當行程不只一個的時候,如何選擇最適當行程來執行就是行程排程。
如何排程是影響作業系統效能最重要的因素。
排程效能的衡量
使用率 產量 回覆時間 等待時間 反應時間 可預測性 公平性
先到先做排程法
First Come, First Served FCFS Scheduling 不可搶先排程法
– 先進入的行程先執行。
先到先做排程法 - 範例
行程 CPU 暴衝時間(毫秒) P1 20 P2 5 P3 5
P1 P2 P3
0 20 25 30平均等待時間: (0 + 20 + 25 ) / 3 = 15 毫秒
P2 P3 P1
0 5 10 30
平均等待時間: (10 + 0 + 5 ) / 3 = 5 毫秒
最短工作優先排程 Shortest Job First
– SJF Scheduling
不可搶先排程法 需要的時間最短者先執行。 如果不只一個行程有相同最短時間則以 FCFS 決定
最短工作優先排程– 範例圖示
行程 CPU 暴衝時間(毫秒) P1 15 P2 4 P3 3
P3 P2 P1
0 3 7 22
平均等待時間:( 7 + 3 + 0 ) / 3 = 3.3 毫秒
若使用 FCFS 排程法,行程到達的順序為 P1 、 P2 、 P3
則平均等待時間:( 0 + 15 + 19 ) / 3 = 11.3 毫秒
FCFS 的平均等待時間大約為 SJF 的 3.4 倍。
時間
最短剩餘優先排程
SJF 也可以是可搶先的。 可搶先的 SJF 排程又稱為最短剩餘時間優先
的排程法 (SRT)
最短剩餘優先排程– 範例
行程 CPU 暴衝時間(毫秒) 到達時間 P1 6 0 P2 3 1 P3 7 2 P4 4 3
平均等待時間:( 7 + 0 + 11 + 1 ) / 4 = 4.75 毫秒
P1 P3P1 P2 P4
時間 0 1 4 8 13 20
優先權排程
Priority Scheduling 可為不可搶先排程法或不可搶先排程法
– 最高優先權的行程先執行– Highest Priority First
優先權排程 – 範例
行程 CPU 暴衝時間(毫秒) 優先權 P1 6 2 P2 5 0 P3 7 3 P4 4 1 P5 3 2
平均等待時間:( 9 + 0 + 18 + 5 + 15 ) / 5 = 9.4 毫秒
P5 P3
使用不可搶先的優先權排程優先權數值愈小代表優先權愈高
P2 P4 P1
時間 0 5 9 15 18 25
循環分時排程
Round-Robin Scheduling
將時間等切成一小片一小片的時間切片,每一個時間切片則為每個行程每次得到 CPU 使用權後可執行的時間。
特別為分時系統所設計,為可搶先的。
循環分時排程 – 範例
行程 CPU 暴衝時間(毫秒) P1 6 P2 5 P3 7 ( 時間切片為 5 毫秒 )
0 5 9 25平均等待時間:( 8 + 5 + 9 ) / 3 = 7.33 毫秒
13
P1 P1
18
P1 P2 P3
多層佇列排程 Multilevel Feedback Queue Scheduling
方法:– 將行程分類,相同類型的行程分在同一佇列,而每
一佇列都有自己的排程方法。– 最常見的分類將行程分成
前景(互動)行程 - RR 排程法 背景(批次)行程 - FCFS 排程法
– 佇列與佇列之間還有優先權的關係,且佇列之間還需要另一個整體排程方法
可搶先的固定優先權排程法– 可能會產生飢餓的現象。
多層佇列排程法 – 圖示
系統行程
伺服精靈行程
使用者行程
批次行程
高優先權
低優先權
多層反饋佇列排程
多層反饋佇列排程法允許行程在各個佇列間移動。
CPU 暴衝時間愈長的行程就移到優先權比較低佇列中。
能避免飢餓的現象發生。
多層反饋佇列排程 – 圖示
A: 時間切片 = 5 ms
B: 時間切片 = 20 ms
C: FCFS