790 likes | 1.02k Views
作業系統概述 Operating System Overview. 第 2 章. 作業系統 Operating System. 一個控制應用程式如何執行的程式 扮演應用程式與電腦硬體之間的介面. 作業系統的目標 Operating System Objectives. 方便性 (Convenience) 讓電腦更方便使用 有效率 (Efficiency) 讓電腦系統資源的利用更有效率 有演進能力 (Ability to evolve) 能夠有效率的開發 、 測試與加入新功能,而不會干擾到它的服務品質.
E N D
作業系統Operating System • 一個控制應用程式如何執行的程式 • 扮演應用程式與電腦硬體之間的介面
作業系統的目標Operating System Objectives • 方便性(Convenience) • 讓電腦更方便使用 • 有效率(Efficiency) • 讓電腦系統資源的利用更有效率 • 有演進能力(Ability to evolve) • 能夠有效率的開發、測試與加入新功能,而不會干擾到它的服務品質
電腦系統的階層式架構Layers and Views of a Computer System Application Programs Utilities Operating System Computer Hardware
作業系統提供的服務 Operating System Services • 程式開發(Program Development) • 編輯器(Editor)與除錯器(Debugger) • 程式執行(Program Execution) • 存取I/O裝置(Access to I/O Devices) • 控制檔案的存取(Controlled Access to Files) • 系統存取(System Access) • 系統資源(Resources)
作業系統提供的服務-1 Operating System Services • 錯誤偵測與回應(Error detection and response) • 內部與外部的硬體錯誤 • 記憶體錯誤 • 裝置故障 • 軟體錯誤 • 除以零 (溢位) • 企圖存取被禁止的記憶體位址 • 作業系統無法達成應用程式的請求
作業系統提供的服務-2 Operating System Services • 統計資料(Accounting) • 收集各種資源的使用統計 • 監督效能 • 用來預測未來擴充上的需求 • 用來計費
作業系統 • 當作資源管理者(Resource Manager) • 作用方式與普通的電腦軟體一樣 • 它也是一個或一組由處理器所執行的程式 • 作業系統經常讓出處理器的控制權
核心程式Kernel • 被載入到主記憶體中的作業系統的一部份 • 內含作業系統最常被使用的函式 • 也稱作nucleus
作業系統的演進Ease of Evolution of an Operating System • 硬體升級加上新類型硬體的產生 • 新服務 • 修正
作業系統的演進The Evolution of Operating Systems • 循序處理(Serial Processing) • 沒有作業系統 • 從一台由顯示燈、開關、輸入裝置和印表機等所組成的主控台來操作機器 • 事先安排時間(Scheduling) • 花時間設定(Setup Time) • 設定工作包括載入編譯器和原始程式到記憶體、儲存編譯過的程式,以及執行載入和連結動作 • Job: 單一程式
作業系統的演進-1 The Evolution of Operating Systems • 簡單批次系統(Simple Batch System) • 監督程式(Monitor) • 控制著一連串事件的軟體 • 將工作分批依序放在一起 • 每個程式執行完畢後便會回到監督程式
工作控制語言 (JCL)Job Control Language • 一種特殊形式的程式語言 • 提供指令給監督程式 • 使用哪個編譯器 • 使用什麼資料
JCL Example $JOB FORTRAN instructions $RUN Data $END
硬體功能 • 記憶體保護(Memory Protection) • 內含監督程式的記憶體區域絕對不能被修改 • 計時器(Timer) • 預防單一工作獨佔整個系統
硬體功能-1 • 特權指令(Privileged Instructions) • 某些機器層級的指令只能由監督程式來執行 • 中斷(Interrupts) • 早期的電腦並無此功能
記憶體保護 • 使用者程式是在使用者模式(User Mode)下執行 • 無法執行某些指令 • 監督程式是在系統模式下執行 • 核心模式(Kernel Mode) • 可以執行特權指令 • 可存取保護區域內的記憶體
單一程式處理 • 單程式 (uniprogramming) 技術 • 處理器必須等待直到I/O指令完成後才能繼續執行
多元程式處理Multiprogramming (Multitasking) • 多元程式處理 (multiprogramming) 技術 • 當一個工作正在等待I/O時,處理器可以切換執行另一個工作
範例 電腦配備:250MB可用記憶體、磁碟、終端機
分時系統Time-Sharing System • 使用多元程式處理技術來管理多個交談式(Interactive)的工作 • 處理器的時間被多個使用者所共享 • 多個使用者同時透過終端機來存取系統
CTSS系統 第一個被發展出來的分時系統 (在MIT) 系統每0.2秒中斷一次
主要的成就Major Achievements • 行程(Processes) • 記憶體管理(Memory Management) • 資訊的保護與安全(Information Protection and Security) • 排程與資源管理(Scheduling and Resource Management) • 系統結構(System Structure)
行程Process • 一個在執行中的程式(a program in execution) • 一個在電腦上執行的程式其個體 (instance) • 一個能被指定給處理器並在處理器上執行的實體 (entity) • 一個活動的單位(unit of activity),代表一連串指令的執行、它目前的狀態,以及相關的一組系統資源
設計系統軟體的困難 • 不當的同步(Improper Synchronization) • 確保正在等待某個I/O裝置的行程會收到信號 • 失敗的互斥(Failed Mutual Exclusion) • 不確定的程式運作(Non-determined Program Execution) • 程式的結果應該依據輸入資料而定,而不應該受到其他程式的影響 • 死結(Deadlocks)
行程-1 • 由下列三個元件所組成 • 一個可執行的程式 • 程式所需的相關資料 • 程式的執行序文資訊 • 作業系統用來管理該行程所需的全部資訊 • Execution context/Process state
記憶體管理Memory Management • 行程的隔離(Process isolation) • 自動配置與管理(Automatic allocation and management) • 模組化程式設計的支援(Support of modular programming) • 保護與存取控制(Protection and access control) • 長期的儲存空間(Long-term storage)
虛擬記憶體Virtual Memory • 讓程式設計人員從邏輯觀點對記憶體定址,不用考慮到可用的實體記憶體大小 • Virtual Address • Real Address • 方便管理當主記憶體中有多個使用者的工作同時存在的情況
虛擬記憶體與檔案系統 • 長期性的保存方法 • 檔案系統(File System)將資訊儲存在一個個被稱為檔案的物件中
分頁處理Paging • 行程是由一堆固定大小的記憶體區塊所組成,這些區塊稱為分頁(Page) • 虛擬位址(Virtual Address)是由頁碼(Page Number)和位移值(Offset)所組成 • 行程的每個分頁可能會被載入到主記憶體的任何地方 • 主記憶體內的真實位址 (或稱實體位址, Real Address, Physical Address)
資訊的保護與安全Information Protection and Security • 可用性(Availability) • 關於如何保護系統以避免干擾 • 機密性(Confidentiality) • 確保使用者不會讀取到未經許可的資料
資訊的保護與安全-1 • 資料整合(Data Integrity) • 保護資料以避免未經許可的修改 • 驗證(Authenticity) • 有關如何適當的確認使用者的身分,以及訊息或資料的有效性
排程和資源的管理Scheduling and Resource Management • 公平性(Fairness) • 給予相等與公平存取資源的機會 • 回應的差別待遇(Differential Responsiveness) • 對不同等級的工作必須有差別待遇 • 效率(Efficiency) • 讓產出率最大化、讓回應時間最小化,並且盡可能容納最多的使用者
系統結構System Structure • 將作業系統看成一連串的階層(Level) • 每個階層負責執行作業系統的部份功能需求 • 每個階層仰賴下一個更低的階層來執行更基本的功能 • 將一個問題分解成一些更容易管理的小問題
系統結構-1硬體階層 • 階層1 • 電子電路 • 物件為暫存器、記憶體和邏輯閘 • 動作包括清除暫存器或讀取記憶體位置 • 階層2 • 處理器的指令集 • 動作例如add、subtract、load及store
系統結構-2行程硬體階層 • 階層3 • 增加了程序或副程式的概念,再加上呼叫 / 返回等動作 • 階層4 • 中斷
系統結構-3多元程式處理的概念 • 階層5 • 行程(正在執行中的程式) • 暫停和恢復執行各行程 • 階層6 • 輔助儲存裝置 • 真正搬移資料區塊 • 階層7 • 為行程建立邏輯位址空間 • 將虛擬位址空間組織成區塊
系統結構-4處理外部物件 • 階層8 • 負責資訊通訊及行程之間訊息的處理 • 階層9 • 支援檔案的長期儲存裝置 • 階層10 • 使用標準介面來提供外部裝置的存取