1.1 什麼是作業系統
kernel由軟體或韌體組成,作為使用者與電腦硬體的操作界面, 並且管理電腦系統資源。
四大管理 (Resources Management)
透過作業系統,對裸機(Bare Machine)進行四大管理, 使電腦能方便使用與最佳效率。
- Memory management: 決定能夠使用主記憶體的程式。
- Processaor and Process Management: 決定處理元 (Process)的運算順序與佇列。
- Device Management: 透過 Device Driver 驅動 Device。
- information Management: 管理儲存媒體的結構內容。
注: 程式執行時產生兩個以上(含)個process。
Resource Manager
意指Operating System,其功能管理裸機的四大資源。
- 紀錄資源狀態
- 提供Policy分配資源
- 透過Resource Allocator配置資源
- 工作結束後,回收資源。
Bootstrap Loader
亦可稱IPL(Inital Program Loader)用於載入作業系統的韌體
流程
- 開機產生中斷使PC指向Bootstrap Loader
- Bootstrap Loader由Disk讀取並載入OS Kernel
- 將控制權轉交給Kernel(PC指向kernel)
- OS載入Command Interpreter
注: 在OS kernel載入完成之後主記憶體會區分出, User Area與System Area。
Command Interpreter
Command Interpreter為作業系統的最前端使用者交互界面界面, 用來處理使用者命令,亦可稱為Shell。
透過直譯的方式判斷輸入命令文法有無錯誤在進行處理。
- Internal Command: shell載入時同時載入主記憶體中
- External Command: 存放於格外的輔助記憶體,需要時才載入。
- Batch Processing: 將命令寫於檔案內,使用時載入並執行命令。
Accounting
避免電腦系統被非法使用者存取,以保護電腦系統, 並且確認使用者資源權限。
Program Execution
- 透過shell執行程式
- 設定排程或通過 Event 執行程式,如 interrupt
- 發生錯誤、硬體損壞、通訊錯誤可透過 interrupt處理
System Call
作為程式與作業系統的界面,以避免直接存取系統資源, 並且限制程式使用資源只能透過 System Call,並檢查權限後透過 作業系統使用資源。
- 保護系統資源
注: 如printf
等函數編譯過後轉換成System Call
DOS Call與BIOS Call與System Call的皆需
- 填寫Regisger
- 執行中斷呼叫
int
但是System Call則嚴密控管系統資源。
System Protection
- 防止為授權使用者存取系統資源以免造成其他程式不正確。
- Privilege Separation
- Dual Mode Protection
- User Mode: 一般使用者只能透過該模式不能直接影響核心
- Monitor/Supervisor Mode: Super User 登入使用該模式,進行系統操作
- 可透過硬體實做
注: Monitor Mode可稱為 Privilegeed Mode、System Mode、Protect Mode
作業系統
- 在監督者模式執行
- Privileged Instruction: Halt System、Turn Interrupt On/Off、Change Mode、I/O
一般程式
- User Mode
- 透過系統呼叫由 Monitor Mode 處理
1.2 Early System
- Job Control Language
- Batch
- Real Time/Time Sharing 分時系統
- Spooling
Terminology
- Batch Processing
- Multiporgramming
- Time Sharing
- Spooling
- Real Time
- Multiprocessing
- Distributed System
Batch System
Batch Processing必須透過Job Control Language的方式處理。
- 收集多個工作在透過電腦一次執行
- 缺乏使用者與程式的交談
- Turnaround Time較長,CPU被閒置
例子:
- 開機處理
- shell command in file
- 透過批次處理計算報表
- 批次語言: 稱為JCL或Command Language
Turnaround Time: 意指Submit到電腦工作完成所需的時間(Interval), 包含CPU Time、I/O Time、等待作業系統時間等。
Multiprogramming
多支程式佔有主記憶體時,處理器快速的在多個工作切換。
- 如I/O等待時將CPU轉交給其他程式。
- Multioprogramming盡可能使各種設備忙碌, 以提昇Throughput與CPU Utilization
注: Throughput指單位時間中完成多少程式(number of processes)
Time Sharing Systems
CPU時間分割成多個Time Slice, 若有多支程式平分不同時間給不同程式。
- 切割time Slice
- 程式輪流使用cpu時間片段,限制時間過後由下一個程式存取
- 程式提早使用完成片段時(或I/O),則切換到下一個程式存取。
作業系統在程式使用完時間時,發出timer interrupt將資源交給另外一支程式。 採用queue決定優先順序。
Time Slice大致採用ms切割時間片段。
- CPU scheduling 與 Multiprogramming (若不同時佔有主記憶體,載入 會花費大量時間,但Multiprogramming不一定有Time Sharing System)
Spooling
Simultaneous Peripheral Operation On Line用來解決專屬設備共用問題。
- 專屬設備: Dedicated Device同時只能被一個程式佔有
- Shared Device: Spooling模擬分享設備,使多個程式佔有 設備時不會產生輸出問題(如列印資料交疊)
- Spooler: 負責暫存輸出,並依序列印,採用disk作為buffer
- 使得不同程式中I/O與計算能夠同時進行
- 增加CPU與I/O設備的使用率
Response Time
提出請求直到回應的時間。
On Line / Off Line
- On Line: 設備連接直接由CPU控制
- Off Line: 不與電腦連接
Real Time System
- Hard Real Time: 在Trunaround Time內即時反應完成所有工作
- Soft Real Time: 限制時效內反應,更改應用程式的Priority 使其優先執行。
立即反應需要On Line,但連線系統不一定即時。
Multiprocessing
Multiprocessor System,由於同時多個CPU工作可稱為Parallel System。
- 緊密性系統: Tightly Coupled System,共用單一電腦中的資源
- 多處理器: 增加電腦產量與可靠度
- 優雅衰退: Graceful Degradation,失去部份處理器僅使效能降低。
- 軟性失誤: 由於優雅衰退帶有 Fail Soft,避免系統完全停止運作。
執行方式
- 單一程式多CPU
- 個別程式個別CPU
透過Data independent/dependent決定statement能否分配給不同CPU
若為後者程式需要交流,則由系統進行Synchronous
作業系統架構
- Symmetric Multiprocessing:
- 處理器平等(identical)
- Asymmetric Multiprocessing (Master/Slave):
- Master Processor: 用於處理作業系統
- Slave Processor: 接收Master命令執行特定工作
Front/Back End
- Front end Processor: I/O介面卡的CPU
- Back end Processor: Disk controller介面的CPU
注: 該概念不當成Multiprocessing,Back End意指Disk
Duplex and Dual
- 雙工(Duplex)
- 僅使用一套硬體運行,其他硬體作為備用
- 支援熱抽換
- 為高度容錯系統(Fault Tolerance),可熱抽換轉用備用,通常可以Nonstop
- 雙套(Dual)
- 適用於正確性保證
- 可有兩套以上的系統共同運作,即可稱為Dual System
- 比較多個運算結果增加正確性
- 雙工雙套混合
- 以雙套進行運作,損壞時啟用備用系統
- Non stop且運算精確
Distributed System
- 透過Communiaction Lines連接彼此,交換資源。
- 電腦網路系統
Multiprocessing比較
Distributed System為Lossely Coupled System(鬆散性系統),彼此不共用 系統資源(如記憶體),並且透過Communication Line進行連接,Heterogeneous Processr。
Multiprocessing為Tightly Coupled System,其共用系統資源,homogenous Processer。
優點
- Resource Sharing: 可以彼此分享資料來增加可用性
- Computation Speed up:
- Parallel Virtual Machine: 透過多台電腦模擬成單一大型平行處理電腦
- Load sharing: 分散負載
- Reliability: 增加可靠性
- Communication
類型
- Network Operating System:
- 連接在一起的電腦
- 共享資源方式: 遠端登入、直接傳輸
- NOS: 可管理網路資源的作業系統
- Distrusted Operating System:
- 相同作業系統並連接在一起的電腦
- 遠端資源被視為自身的資源
- 簡稱DOS
現代作業系統
- 多使用者
- 分散式系統環境(Netwoork)
- 支援分時系統
- 支援Spoolinog
- 即時反應與Priorty
- Batch
Operating System