1.請說明行程與程式的差異
(1)行程是主動的個體,程式是被動的個體
(2)行程是暫時的,程式是長存的。
(3)行程與程式的組成內容不同。
2.請說明在哪些情況下會產生新行程
(1)使用者登入
(2)使用者執行某個程式
(3)請求系統提供服務
(4)由現有行程產生
3.請說明何謂內文切換
當CPU的使用權由一個行程切換成另一個行程時,作業系統必須將行程的相關資訊儲存在該行程的行程控制區段中,並且將另一個行程的行程控制區段載入系統中,以便將執行環境復原為後者當初被中斷時的狀態-這個儲存與載入的動作,就稱為內文切換(context switch)
4.內文切換對系統而言是額外的負擔,請問有哪些因素會影響內文切換所花的時間。
需要拷貝的暫存器數目、記憶體速度、硬體是否提供特殊指令。
5.請解釋CPU暴衝、I/O暴衝與CPU為主、I/O為主行程之間的關係。
cpu暴衝是指持續的使用CPU;I/O暴衝是專注在I/O的運算。
在大量的CPU運算中,包含較長的CPU暴衝時間,是為以CPU為主;包含較多很短的CPU暴衝時間,是為I/O為主。
6.有一組行程如下:
到達時間皆為0,順序為P1、P2、P3、P4。請分別使用FCFS與不可搶先的SJF排程法,求出平均等待時間。
行程 | CPU暴衝時間(毫秒) |
---|---|
P1 | 15 |
P2 | 7 |
P3 | 4 |
P4 | 10 |
平均等待時間計算:
FCFS:(0+15+22+26)/4=15.75
SJF:(0+4+11+21)/4=9
7.假設有四個行程P1、P2、P3和P4,都在時間0到達,順序為P1、P2、P3、P4,其CPU暴衝時間如下:
行程 | CPU暴衝時間(毫秒) | 優先權 |
---|---|---|
P1 | 6 | 2 |
P2 | 5 | 0 |
P3 | 7 | 3 |
P4 | 4 | 1 |
a. 當使用FCFS、SJF、不可搶先的優先權(數字愈小,優先權愈高)和RR(時間切片=3)排程法時,行程的執行順序為何?請畫出與課文類似的圖。
b.所有行程的平均等待時間為何?
FCFS:(0+6+11+18)/4=8.75
SJF:(0+4+9+15)/4=7
PS:(0+5+9+15)/4=7.25
RR:[(12-3)+(15-3)+(21-6)+(20-3)]/4=13.25
8.假設有四個行程P1、P2、P3、P4和P5,都在時間0到達,順序為P1、P2、P3、P4、P5,其CPU暴衝時間如下:
行程 | CPU暴衝時間(毫秒) | 優先權 |
---|---|---|
P1 | 10 | 3 |
P2 | 3 | 1 |
P3 | 2 | 3 |
P4 | 1 | 4 |
P5 | 5 | 2 |
a.當使用FCFS、SJF、不可搶先的優先權(數字愈小,優先權愈高)和RR(時間切片=3,依照抵達順序執行)排程法時,行程的執行順序為何,請畫出與課文類似的圖。
b.在上述各種演算法中,各行程的平均等待時間為何?哪個演算法的平均等待時間最短?
FCFS:(0+10+13+15+16)/5=10.8
SJF:(0+1+3+6+11)/5=4.2
PS:(0+3+8+18+20)/5=9.8
RR:[(17-6)+3+6+8+(15-3)]/5=8
∵FCFS>PS>RR>SJF ∴SJF的平均等待時間最短。