Chapter 2 基本概念

前一章 | 首頁 | 下一章

I/O運作處理方式(CPU與I/O運作之間的溝通)

  1. Busy waiting I/O(polling(詢問) I/O)(programmed I/O) I/O Device(DISK)
    1. process執行至某部分時發出I/O request
    2. CPU對device controller設定I/O command
    3. I/O運作
    4. PA(origin process)waiting for I/O complete
    5. CPU切給PB執行
    6. CPU會在執行PB期間不斷詢問(polling) I/O Device,監督I/O資料傳輸,確定其完成與否
  2. Interrupt I/O
    1. I/O完成時,I/O device controller發出"I/O complete" interrupt通知OS
    2. OS會暫停目前process(PB)的執行,並保存其執行狀況
    3. OS根據interrupt ID,查詢interrupt vector(table),取出對應的Interrupt Service Routine(ISR)的起始位址
    4. CPU執行ISR(此routine的內容,將buffer register中的資料傳送到memory中)
    5. ISR完成後,OS通知PA其I/O request完成,且將PA的state從wait改回ready
    6. (可能)繼續原先Process(PA)的執行
  3. DMA(Direct Memory Access)
  4. Def:
    controller負責I/O Device與Memory之間的資料傳輸,其過程完全不需CPU參與,CPU就有更多時間用在process執行

Cycle Stealing

機器指令週期:
  1. IF:Instruction Fetch(must mem access)
  2. DE:Decode
  3. FO:Fetch Operand(optional mem access)
  4. EX:Execute
  5. WM:Write result to Memory(optional mem access)

Interrupt討論

  1. interrupt發生後,OS的處理程序
  2. Step:
    1. 暫停目前process的執行,並保存當時執行狀況
    2. 根據interrupt ID查詢interrupt vector,取出對應的Interrupt Service Routine(ISR)起始位址
    3. Jump to ISR的initial address,執行該ISR
    4. ISR complete
    5. OS恢復原先中斷前的process執行
  3. 在monitor area內會存放interrupt vector及各種ISR
  4. Interrupt的種類:
    1. External interrupt(HW)
    2. CPU以外的周邊元件所發出的
      eg. I/O complete、I/O error、machine check
    3. Internal interrupt(HW)
    4. CPU本身所引發的
      eg. stack overflow、illegal command(非法指令執行)、divided by zero(除以0)...
    5. Software interrupt
    6. 當user program執行時,若需要OS提供服務,則發出此類中斷通知OS執行對應的service routine
      eg. system call、trap
  5. Interrupt與Trap之比較
    1. Interrupt:Hardware generated interrupt
      eg. I/O device發出"I/O complete"中斷
    2. Trap:Software generated interrupt
    3. 用途:
      1. user program需要OS提供Service時發出
      2. Catch up arithematic error
        eg. Divide-by-Zero
        ex.P3-42, Q32

I/O結構

Def:
當process發出I/O request以後,控制權如何交回給process?
有兩種mode:
  1. Synchronous I/O
  2. I/O運作完成後才交回
  3. Asynchronous I/O
  4. 不等I/O完成,即刻交回
    在一段時間內,會有多個I/O request同時發生,需對許多I/O處理同時追蹤
    ∴ OS需使用一個"Device status table"記錄各種devices的位址、使用狀況、及I/O request之執行進度
    優點:增加system efficiency

Hardware Resource Protection

Dual Mode(雙重模式)

  1. Def:
    系統運作的狀態主要分為兩種模式
    1. Monitor mode(又稱supervisor mode, system mode)
      • 在此mode下,主要是OS的system processes在執行(OS的system process執行的狀態,在此mode下,OS掌控系統的控制權)
        (eg. ISR, systemcall, 對應的service routine)
      • 在此mode下才有權執行特權指令(priveleged instruction)
    2. User mode
      • user program可以執行的狀態
      • 在此mode之下,不能執行特權指令!否則會產生致命錯誤中斷(trap),OS會強迫process中止
  2. Dual mode的區分主要是靠Hardware支援,主要是由mode bit區分,通常
  3. 實施Dual mode的目的:
    對Hardware重要的resources實施protection,把可能引起危害的一些機器指令,設為priveleged instruction,如此可防止user program直接使用這些指令,避免user program執行這些指令對系統或其它user造成危害
    (∵user mode下無法執行特權指令)

Priveledged Instruction(特權指令)的種類(背)

(ref P2-14、P3-42Q33、34)
  1. I/O instruction
  2. 關於memory management所用之Register修改指令(base、limit register)
  3. Timer設定指令
  4. Enable, Disable Interrupt指令
  5. Halt指令
  6. change user mode to moniter mode指令
(P-14 34)

I/O protection

Memory Protection

  1. Monitor Area Protection
  2. Job與Job之間的Memory Protection

CPU Protection

  1. 目的:
  2. 防止user process無限期佔用CPU而不釋放
  3. 作法:
  4. OS會規定一個使用CPU的最大時間值(Max time constraint),利用timer記錄此max值,隨著process的執行,timer的值會隨著時間遞減,直到timer值變成零為止,此時timer會發出time out中斷通知OS,則OS可以強制此process放棄CPU
    此外,Timer設定之指令需設為特權指令
補充:Timer用途
  1. CPU Protection
  2. Time-sharing system製作(RR scheduling)
  3. DMA controller設定中counter(傳輸量)使用
  4. 計時器、系統時間(clock)