Error Handling
Basic Concept
I/O error handling 是 OS 偵測、分類、回復、並回報 device / transfer failure 的機制。I/O 比 CPU 計算更容易遇到外部失敗。
錯誤可能是暫時性的,也可能是永久性的。OS 的目標不是保證所有錯誤都能修好,而是盡可能讓小錯誤不造成整個系統崩潰,並把無法修復的錯誤用合理方式回報給 application。
Transient vs Permanent Failures
Transient Failure
Transient failure 是短暫、可能重試後成功的錯誤。例如:
- Network congestion 導致 packet send 失敗。
- Disk read 因短暫干擾失敗。
- Device 暫時 busy。
Permanent Failure
Permanent failure 是硬體或重要元件真的壞掉,例如 disk controller defective。這類錯誤通常 OS 很難完全 recover,只能隔離 device、回報錯誤、或在嚴重情況下讓相關 operation 失敗。