Interrupt, DMA, Dual Mode

  • 0
完整內容請參考 http://www.csie.ntnu.edu.tw/~swanky/os/chap2.htm

Interrupt I/O
    1. I/O
    2. 完成時,I/O device controller發出"I/O complete" interrupt通知OS
    3. OS會暫停目前process(PA)的執行,並保存其執行狀況
    4. OS根據interrupt ID,查詢interrupt vector(table),取出對應的Interrupt Service Routine(ISR)的起始位址
    5. Jump to ISR的initial address, CPU執行ISR(此routine的內容,將buffer register中的資料傳送到memory中)
    6. ISR完成後,OS通知PA其I/O request完成,且將PA的state從wait改回ready
    7. (可能)繼續原先Process(PA)的執行
    優點:避免CPU耗費大量時間於polling I/O status上,故CPU可全力用在process之執行
    缺點:CPU仍要參與在I/O device與記憶體之間的資料傳輸過程
    Interrupt 討論
    1. 在monitor area內會存放interrupt vector及各種ISR
    2. Interrupt的種類:1. External interrupt(HW) : CPU以外的周邊元件所發出的
                  eg. I/O complete、I/O error、machine check          2. Internal interrupt(HW) : CPU本身所引發的
                  eg. stack overflow、illegal command(非法指令執行)、divided by zero(除以0)...          3. Software interrupt : 當user program執行時,若需要OS提供服務,則發出此類中  斷通知OS執行對應的service routine
                  eg. system call、trap
    1. Interrupt與Trap之比較1. Interrupt:Hardware generated interrupt2. eg. I/O device發出"I/O complete"中斷3. Trap:Software generated interrupt
                  用途:
    1. user program需要OS提供Service時發出
    2. Catch up arithematic error
      eg. Divide-by-Zero
      ex.P3-42, Q32
    DMA(Direct Memory Access)
    Def:controller負責I/O Device與Memory之間的資料傳輸,其過程完全不需CPU參與,CPU就有更多時間用在process執行


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中止
  1. Dual mode的區分主要是靠Hardware支援,主要是由mode bit區分,通常 "0" 表monitor mode ,  "1" 表user mode
  1. 實施Dual mode的目的:
    對Hardware重要的resources實施protection,把可能引起危害的一些機器指令,設為priveleged instruction,如此可防止user program直接使用這些指令,避免user program執行這些指令對系統或其它user造成危害(∵user mode下無法執行特權指令)

沒有留言 :

張貼留言