:::

[圖資][考古題]作業系統九十四學年度期末考

1月 19, 2006 0 Comments Edit Copy Download

作業系統九十四學年度期末考

一、解釋名詞
 (1) 臨界區間(Critical Section)
 (2) 行程控制表(process control table或process control block)
 (3) Medium-term scheduler(中程排班程式)
二、何謂本文切換(Context Switch)?並請討論其與時間量(time quantum, 或稱時間片段time slice)間的關連性
三、考慮以下一組行程,其中CPU分割時間長度是以毫秒為單位:

┌──┬────┬───────────┐
│行程│到達時間│所需的CPU執行週期時間 │
├──┼────┼───────────┤
│ P1 │   0    │           8          │
├──┼────┼───────────┤
│ P2 │   5    │           2          │
├──┼────┼───────────┤
│ P3 │   3    │           4          │
├──┼────┼───────────┤
│ P4 │   1    │           3          │           
├──┼────┼───────────┤
│ P5 │   5    │           2          │
├──┼────┼───────────┤
│ P6 │   2    │           5          │
└──┴────┴───────────┘

Gantt Chart畫法請一下列方式繪製:

FCFS
      ┌───┬───┬────────┬──┐
      │Pi    │Pj    │     ......     │Pn  │
      └───┴───┴────────┴──┘
時間軸 0      5       7     ........    20    24


假設這些行程依上表所列時間到達,及所需CPU執行週期時間(若條件相同時,以process id較小者優先),請問:

(a) 畫出這些行程以(1)先到先做(FCFS)、(2)不可搶先最短的工作先做(nonpreemptive SJF)、(3)可搶先最短的工作先做(preemptive SJF)和(4)依序循環(Round-Robin)(quantum=3)排班演算法執行的甘特圖(Gantt Chard)。【請依序寫】
(b) 在上述的每一個排班演算法中,每一個行程的回復時間(turnaround time)是多少?(最後請以表格匯整依序作答)
(c)上述的各演算法之中,每一個行程的等待時間(waiting time)是多少?(最後請以表格匯整依序作答)

四、何謂號誌(semaphores)?其優點為何?
五、[1]請說明臨界區間問題必須滿足的三個要求
    [2]依序解釋下列演算法是否為何滿足或步滿足上列的三項要求

[1 ] do {
[2 ]  waiting[i] = true;
[3 ]  key = true;
[4 ]  while(waiting[i] and key)
   key := TestAndSet(lock);
[5 ]  waiting[i] := false;
 
[6 ]    Critical Section (C.S.)
 
[7 ]  j:=(i+1)%n;
[8 ]  while (j!=i)and !(waiting[j])
   j:=(j+1)%n;
[9 ]  if (j==i)
   lock:=false;
  else
  waiting[j]:=false;

[10]   remainder section 
[11] } while (1);