Interrupt I/O
- I/O
- 完成時,I/O device controller發出"I/O complete" interrupt通知OS
- OS會暫停目前process(PA)的執行,並保存其執行狀況
- OS根據interrupt ID,查詢interrupt vector(table),取出對應的Interrupt Service Routine(ISR)的起始位址
- Jump to ISR的initial address, CPU執行ISR(此routine的內容,將buffer register中的資料傳送到memory中)
- ISR完成後,OS通知PA其I/O request完成,且將PA的state從wait改回ready
- (可能)繼續原先Process(PA)的執行
- 在monitor area內會存放interrupt vector及各種ISR
- Interrupt的種類:1. External interrupt(HW) : CPU以外的周邊元件所發出的
- Interrupt與Trap之比較1. Interrupt:Hardware generated interrupt2. eg. I/O device發出"I/O complete"中斷3. Trap:Software generated interrupt
- user program需要OS提供Service時發出
- Catch up arithematic error
eg. Divide-by-Zero
ex.P3-42, Q32
優點:避免CPU耗費大量時間於polling I/O status上,故CPU可全力用在process之執行
缺點:CPU仍要參與在I/O device與記憶體之間的資料傳輸過程
Interrupt 討論
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
用途:
DMA(Direct Memory Access)
Def:controller負責I/O Device與Memory之間的資料傳輸,其過程完全不需CPU參與,CPU就有更多時間用在process執行
Dual Mode
- 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中止
- Dual mode的區分主要是靠Hardware支援,主要是由mode bit區分,通常 "0" 表monitor mode , "1" 表user mode
- 實施Dual mode的目的:
對Hardware重要的resources實施protection,把可能引起危害的一些機器指令,設為priveleged instruction,如此可防止user program直接使用這些指令,避免user program執行這些指令對系統或其它user造成危害(∵user mode下無法執行特權指令)
沒有留言 :
張貼留言