[OS] Computer System Structure

2.1 Computer System Operation

Main Memory作為整個系統的中繼點,不單只有CPU可以控制, 其他I/O設備也可以進行操作。

現代電腦系統

Polling

由Master unit circularcheck各個slave單元的狀態

Interrupt

設備與程式透過中斷通知CPU,CPU停止當前工作並處理對映工作。

Polling vs Interrupt

2.2 Interrupt Service

中斷的類型

中斷發生處理流程

  1. 轉回控制權給作業系統
  2. OS保存當前程式CPU狀態(注: 保存的PC為當前執行指令 + 1)
  3. OS識別中斷,以呼叫Interrupt Service Routine
  4. 完成ISR,並還原CPU狀態
  5. 執行中斷時的下一指令

注:

分類1

分類2

注: console在早期電腦系統中,多為系統管理員操作,雖為I/O設備而有格外的分類。

Trap

System call的處理

  1. 程式產生陷阱,進入監督者模式(控制權轉交給OS)
  2. 保存當CPU狀態
  3. 判斷中斷向量
  4. 執行中斷
  5. 復原CPU狀態,並回到Trap繼續執行

中斷優先級

如何解決同時發生的中斷?

如何實現

注:

對中斷的反應

大多數情況中斷發生時都必須立刻處理,不過依然有例外情況。

2.3 I/O Interrupts

Time Sharing中,CPU在等待I/O時,會優先切換至其他程式中

data communication

Direct Memory Access

特性

補充

Cycle Stealing

buffer

作為高低速設備之間的緩衝,以增加高速設備的效能, 而低速設備則可以處理數據。

E.g. 印表機與CPU傳輸資料

Physical Record

關於設備

Double Buffer

兩個buffer個別填滿之後發生中斷, 其中一個buffer填滿之後,則換填充另一個

2.4 storage structure

進行I/O的方式

secondary memory

階層式記憶體

reg <-> cache <-> Main Memory <-> Secondary Memory

Address space

程式能合法使用的記憶體範圍, 原則上只能存取本身的記憶體, 或者透過system call存取其他資源

2.5 Hardware Protection

避免未授權資源受到存取導致異常

監督者模式執行的命令為privileged instruction

Context Switch: 交換佔有cpu的行為


Operating System