10. Process的一生 (STD)
New
Ready
Load到memory裡, 準備搶CPU控制權
4
Ready Queue
PCB
Process ID Process State PC CPU Registers ….
Job Queue
11. Process的一生 (STD)
New
Ready
Running
Load到memory裡, 準備搶CPU控制權
搶到CPU了
4
Ready Queue
PCB
Process ID Process State PC CPU Registers ….
Job Queue
12. Process的一生 (STD)
New
Ready
Running
Wait
(Block)
Wait for I/O complete or resources available
Load到memory裡, 準備搶CPU控制權
搶到CPU了
4
Ready Queue
PCB
Process ID Process State PC CPU Registers ….
Job Queue
13. Process的一生 (STD)
New
Ready
Running
Wait
(Block)
Wait for I/O complete or resources available
Load到memory裡, 準備搶CPU控制權
CPU被搶走了
搶到CPU了
4
Ready Queue
PCB
Process ID
Process State
PC
CPU Registers
….
Job Queue
14. Process的一生 (STD)
New
Ready
Running
Terminate
Wait
(Block)
Wait for I/O complete or resources available
Load到memory裡, 準備搶CPU控制權
CPU被搶走了
搶到CPU了
4
Ready Queue
PCB
Process ID
Process State
PC
CPU Registers
….
Job Queue
15. Process的一生 (STD)
New
Ready
Running
Terminate
Wait
(Block)
Wait for I/O complete or resources available
Load到memory裡, 準備搶CPU控制權
CPU被搶走了
搶到CPU了
4
Ready Queue
PCB
Process ID
Process State
PC
CPU Registers
….
Job Queue
16. Process的一生 (STD)
New
Ready
Running
Terminate
Wait (Block)
Wait for I/O complete or resources available
Load到memory裡, 準備搶CPU控制權
CPU被搶走了
我等著你回來~~ (好無聊啊!!)
搶到CPU了
4
Ready Queue
PCB
Process ID
Process State
PC
CPU Registers
….
Job Queue
29. 1.CPU的使用率(Utilization)要最大
2.工作產能(Throughput)要高
3.Process等待的時間要短
4.完成時間(Turnaround time)要短
5.資源利用率也要大
6.要公平
7.…
•FIFO: First come first out
•SJF: Shortest Job First
•SRJF: Shortest Remaining Time Job First
•Priority Scheduling
•RR: Round Robin
•…..
7
Scheduling Algorithm
30. FIFO: 誰先來誰先做
SJF: 你要3個小時?我只要3分鐘,先給我用一下吧~
(SJF: shortest time job first)
Process
CPU Time
P0
14
P1
5
P2
2
1.CPU的使用率要最大
2.工作產能要高
3.Process等待的時間要短
4.完成時間要短
5.資源利用率也要大
6.要公平
FIFO:
SJF:
8
31. FIFO: 誰先來誰先做
SJF: 你要3個小時?我只要3分鐘,先給我用一下吧~
(SJF: shortest time job first)
Process
CPU Time
P0
14
P1
5
P2
2
P0
1.CPU的使用率要最大
2.工作產能要高
3.Process等待的時間要短
4.完成時間要短
5.資源利用率也要大
6.要公平
FIFO:
SJF:
8
32. FIFO: 誰先來誰先做
SJF: 你要3個小時?我只要3分鐘,先給我用一下吧~
(SJF: shortest time job first)
Process
CPU Time
P0
14
P1
5
P2
2
P1
P0
1.CPU的使用率要最大
2.工作產能要高
3.Process等待的時間要短
4.完成時間要短
5.資源利用率也要大
6.要公平
FIFO:
SJF:
8
33. FIFO: 誰先來誰先做
SJF: 你要3個小時?我只要3分鐘,先給我用一下吧~
(SJF: shortest time job first)
Process
CPU Time
P0
14
P1
5
P2
2
P2
P1
P0
1.CPU的使用率要最大
2.工作產能要高
3.Process等待的時間要短
4.完成時間要短
5.資源利用率也要大
6.要公平
FIFO:
SJF:
8
34. FIFO: 誰先來誰先做
SJF: 你要3個小時?我只要3分鐘,先給我用一下吧~
(SJF: shortest time job first)
Process
CPU Time
P0
14
P1
5
P2
2
平均等待時間 = (0+ 14+19)/3 = 11
P2
P1
P0
2
5
14
1.CPU的使用率要最大
2.工作產能要高
3.Process等待的時間要短
4.完成時間要短
5.資源利用率也要大
6.要公平
FIFO:
SJF:
8
35. FIFO: 誰先來誰先做
SJF: 你要3個小時?我只要3分鐘,先給我用一下吧~
(SJF: shortest time job first)
Process
CPU Time
P0
14
P1
5
P2
2
平均等待時間 = (0+ 14+19)/3 = 11
P2
P1
P0
2
5
14
1.CPU的使用率要最大
2.工作產能要高
3.Process等待的時間要短
4.完成時間要短
5.資源利用率也要大
6.要公平
FIFO:
SJF:
8
50. SRJF: Shortest Remaining Time Job First
•可插隊的。
Process
Arrival Time
CPU Time
P0
0
6
P1
1
4
P2
2
7
P3
3
3
P0
T0
T1
T2
T3
10
T1
T2
T3
T5
T20
51. SRJF: Shortest Remaining Time Job First
•可插隊的。
Process
Arrival Time
CPU Time
P0
0
6
P1
1
4
P2
2
7
P3
3
3
P0
P1
T0
T1
T2
T3
10
T1
T2
T3
T5
T20
52. SRJF: Shortest Remaining Time Job First
•可插隊的。
Process
Arrival Time
CPU Time
P0
0
6
P1
1
4
P2
2
7
P3
3
3
P0
P1
P0
P1
T0
T1
T2
T3
10
T1
T2
T3
T5
T20
53. SRJF: Shortest Remaining Time Job First
•可插隊的。
Process
Arrival Time
CPU Time
P0
0
6
P1
1
4
P2
2
7
P3
3
3
P2
P0
P1
P0
P1
T0
T1
T2
T3
10
T1
T2
T3
T5
T20
54. SRJF: Shortest Remaining Time Job First
•可插隊的。
Process
Arrival Time
CPU Time
P0
0
6
P1
1
4
P2
2
7
P3
3
3
P2
P0
P1
P0
P1
P0
P1
T0
T1
T2
T3
10
T1
T2
T3
T5
T20
55. SRJF: Shortest Remaining Time Job First
•可插隊的。
Process
Arrival Time
CPU Time
P0
0
6
P1
1
4
P2
2
7
P3
3
3
P2
P0
P1
P0
P1
P0
P1
P3
T0
T1
T2
T3
10
T1
T2
T3
T5
T20
56. SRJF: Shortest Remaining Time Job First
•可插隊的。
Process
Arrival Time
CPU Time
P0
0
6
P1
1
4
P2
2
7
P3
3
3
P2
P0
P1
P0
P1
P0
P1
P3
P0
P1
T0
T1
T2
T3
10
T1
T2
T3
T5
T20
57. SRJF: Shortest Remaining Time Job First
•可插隊的。
Process
Arrival Time
CPU Time
P0
0
6
P1
1
4
P2
2
7
P3
3
3
P2
P0
P1
P0
P1
P0
P1
P3
P0
P1
P2
P0
P3
T0
T1
T2
T3
10
T1
T2
T3
T5
T20
58. SRJF: Shortest Remaining Time Job First
•可插隊的。
Process
Arrival Time
CPU Time
P0
0
6
P1
1
4
P2
2
7
P3
3
3
P2
P0
P1
P0
P1
P0
P1
P3
P0
P1
P2
P0
P3
P0
P1
P3
P0
P2
T0
T1
T2
T3
10
T1
T2
T3
T5
T20
59. New
Ready
Running
Terminate
Wait (Block)
Load到memory裡, 準備搶CPU控制權
CPU被搶走了
搶到CPU了
Registers
11
PCB
Process ID ReProcess State PC CPU gisters ….
60. New
Ready
Running
Terminate
Wait (Block)
Load到memory裡, 準備搶CPU控制權
CPU被搶走了
搶到CPU了
Registers
11
PCB
Process ID
ReProcess State
PC
CPU gisters
….
61. New
Ready
Running
Terminate
Wait (Block)
Load到memory裡, 準備搶CPU控制權
CPU被搶走了
搶到CPU了
Registers
11
PCB
Process ID ReProcess State PC CPU gisters ….
62. New
Ready
Running
Terminate
Wait (Block)
Load到memory裡, 準備搶CPU控制權
CPU被搶走了
搶到CPU了
Registers
Context Switching:若CPU將執行中的Process切換 給其他Process使用時,必須保存目前執行中 Process的狀態,並載入欲執行Process的狀態資訊。
11
PCB
Process ID ReProcess State PC CPU gisters ….
128. Multi-Processing / Multi-Threading (3)
•同步問題
25
P1
P2
…
…
A
B
…
…
如果我們希望A敘述 一定要在B敘述之前 執行,怎麼做?
Wait(s){
while(s<=0) do no-op;
s = s – 1;
}
Signal(s){ s++; }
129. Multi-Processing / Multi-Threading (3)
•同步問題
25
P1
P2
…
…
A
B
…
…
如果我們希望A敘述 一定要在B敘述之前 執行,怎麼做?
Wait(s){ while(s<=0) do no-op; s = s – 1; }
Signal(s){ s++; }
P1
P2
…
…
A
B
…
…
Signal(s)
wait(s)
130. Multi-Processing / Multi-Threading (3)
•同步問題
25
P1
P2
…
…
A
B
…
…
如果我們希望A敘述 一定要在B敘述之前 執行,怎麼做?
Wait(s){ while(s<=0) do no-op; s = s – 1; }
Signal(s){ s++; }
P1
P2
…
…
A
B
…
…
Signal(s)
wait(s)
131. Synchronization
•著名的同步問題
–Dining philosophers problem
–Producer-consumer problem
–Readers-writers problem
–Sleeping barber problem
•解法:
–Semaphore
–Monitor
–Critical Region
26