2008年10月16日 星期四

作業系統的演進

一、早期系統:人工操作,安排工作順序與除錯
缺點:Set-up time 和CPU idle 太長。


二、簡單的監督程式(Simple Monitor)
(1) 解決Set-up time 和CPU idle 太長
a. 將操作員與使用者分開
b. 同類型的工作一起處理(Batch processing):電腦等待時間縮短,有空閒即可執行批次檔

(2) 考量CPU在工作轉移的閒置
Automatic Job Sequence 可讓一個工作自動轉移至另一個工作(控制權轉讓)

(3) Resident Monitor 包含4大部分:
a. Automatic Job Sequence:有一系列的指令(Common),逐步完成工作(Job Sequence)
b. Control Card/ Common Instruction:可解譯控制與指令
c. Device drive:協調與執行 I/O 運作
d. Interrupt and Trap Vectors:當發生中斷與設陷阱偵測到錯誤時,尋找對應的例行維修程序 (Service Routine)

缺點:CPU還是經常處於閒置狀態,常等待I/O運作。

2008年10月2日 星期四

buffering and spooling

I/O-bound Job:
此類工作需要大量 I/O operation,但僅須少量 CPU computation,其工作效能取決於 I/O device 速度。若在 buffering 中 CPU 被迫等待,因為 input buffer 是空的,或是 output buffer 是滿的。
CPU-bound Job:
此類工作需要大量 CPU computation ,但僅須少量 I/O operation,其工作效能取決於 CPU 速度。若在 buffering 中 I/O device 被迫等待,因為 input buffer 是滿的,或是 output buffer 是空的。

buffering 與 spooling 存在的目的,皆為解決 CPU 與 I/O 需互相等待而導致執行效率變慢的問題。

buffering
是記憶體中的一個空間,將 I/O 的資料先收集至 buffer 中,待達至 CPU 可運算的資料量時,CPU 再將資料由 buffer 中一次取出計算,在 CPU 開始計算的同時, I/O則可繼續收集資料,達到 CPU 與 I/O可同時運行的目的。

spooling (simultaneous peripheral operations on-line)
是將磁碟機視為一個大 buffer,資料讀取與寫入時,不直接讀取,而由磁碟機中讀取。 例如有很多筆資料要交給印表機輸出時,可將待印資料的清單放在一個表格中,印表機印完依筆資料後,可直接至表格讀取下一比待印資料,而 CPU 把待印資料的清單放在表格中後,可以去做別的計算,I/O也可繼續執行。

buffering 與 spooling 的不同,在於spooling 可允許某個工作的 CPU 計算 (computation) 與另一個工作的 I/O 操作 (operation) 同步執行 (overlay execution),而 buffering 只允許許某個工作的 CPU 計算與 I/O操作 同步執行。

2008年9月29日 星期一

Bare Machine & Extenden Machine

Bare Machine: 完全由硬體 (HW) component 所組成的,其上無任何輔助的 system SW 存在。

Extenden Machine: 在 Bare Machine 上加入輔助 user 使用及 user program 執行系統 SW (如: OS compiler, linked loader, etc.)。

什麼是作業系統?

9/29
作業系統(Operation Sysrtem)扮演電腦硬體與使用者之溝通介面。
其存在目的:
1. 協助使用者(user)易於使用電腦。
2. 提供一個讓 user program 易於執行的環境。
3. OS 作為資源(包括軟體與硬體)的協調分配者,使資源能公平且有效的被運用。
4. 監督 program 的執行,防止出錯和對電腦的不正確使用造成系統的損壞。