1.1 操做系統的目標和做用程序員
操做系統是一組控制和管理計算機軟硬件資源,合理對各種做業進行調度,以及方便用戶使用的程序的集合。編程
1. 操做系統的目標網絡
有效性、方便性、可擴充性、開放性(前兩個最重要,開放性是指遵循世界標準規範)數據結構
2. 操做系統的做用併發
(1) OS做爲用戶和計算機硬件系統之間的接口異步
用戶可經過三種方式使用計算機:命令方式、系統調用方式、圖形窗口方式socket
(2) OS做爲計算機系統資源的管理者分佈式
(3) OS實現了對計算機資源的抽象spa
3. 推進計算機發展的主要動力操作系統
(1) 不斷提升計算機資源的利用率
(2) 方便用戶
(3) 器件的不斷更新換代
(4) 計算機體系結構的不斷髮展
(計算機體系結構是那些可以被程序員所見到的計算機的屬性,及概念性的結構與功能。站在不一樣層次上編程的程序員看到的計算機屬性也是不一樣的;計算機組成原理是如何實現計算機體系結構所體現的屬性,它包含了許多對程序員是透明的硬件環節)
1.2 操做系統的發展過程
1. 無操做系統的計算機系統(第一代計算機:真空管)
(1) 人工操做方式(紙帶->紙帶輸入機):用戶獨佔全機,資源利用率低;CPU等待人工操做,CPU利用不充分。
(2) 脫機輸入\輸出方式(紙帶->磁帶->內存):減小CPU的空閒時間;提升I/O速度
2. 單道批處理系統 Simple Batch Processing System(第二代計算機:晶體管)
把一批做業以脫機的方式輸入到磁帶上,以監督程序控制做業的連續處理,內存中始終保持一道做業,所以具備自動性、順序性、單道性的特徵。
3. 多道批處理系統 Multiprogrammed Batch Processing System(第三代:小規模集成電路)
(1)多道程序設計的優勢:提升CPU、I/O設備、內存的利用率,增長系統吞吐量
(2)多道批處理系統優缺點:資源利用率高、系統吞吐量大、平均週轉週期長、無交互能力
(3)多道批處理系統特色:用戶脫機使用計算機、成批處理、多道程序運行(宏觀上並行、微觀上串行)
(4)存在的問題:處理機管理、內存管理、I/O設備管理、文件管理、做業管理
4. 分時系統 Time Sharing System
一臺主機上鍊接了多個帶有顯示器和鍵盤的終端,同時容許多個用戶經過本身的終端,以交互方式使用計算機,共享計算機中的資源,具備多路性、獨立性、及時性、交互性特徵。
第一臺分時操做系統CTSS(Compatible Time Sharing System)由麻省理工學院研發。
分類:(1)簡單分時操做系統(2)具備「前臺「和」後臺「的操做系統(3)多道分時操做系統
特徵:多路性(同時性)、交互性、獨佔性、及時性
5. 實時系統 Real Time System
(1) 分類:實時控制系統、實時信息處理系統
(2) 實時任務:
按任務執行是否呈現週期性來分:週期性實時任務、非週期性實時任務
按對截止時間的要求來分:硬實時任務(某個動做必須在規定時間內發生)、軟實時任務(容許偶爾違反時間規定,且不會引發永久性損害)
(3) 特徵:多路性、獨立性、及時性、交互性、可靠性
6. 微機操做系統
(1) 單用戶單任務操做系統:CP/M(8位機)、MS/DOS(Disk Operating System)(16位機)
(2) 單用戶多任務操做系統:Windows
(3) 多用戶任務操做系統:UNIX OS(變體:Solaris OS 和 Linux OS)
1.3 操做系統的分類
1. 基本操做系統:批處理操做系統、分時操做系統、實時操做系統
2. 其它操做系統
(1) 嵌入式操做系統
(2) 集羣系統 Clustered System
(3) 網絡操做系統
(4) 分佈式操做系統:多個分散的處理單元經互聯網絡鏈接而成的系統,其中每一個處理單元既有高度自治性有相互協同,能在系統範圍內實現資源管理、動態分配任務、並能並行的處理分佈式程序;它具備統一性、共享性、透明性、自治性、分佈性、並行性的特徵。
1.4 操做系統的基本特性
1. 併發性(Concurrence)
(1) 並行與併發:
並行:兩個或多個事件在同一時刻發生
併發:兩個或多個事件在同一時間間隔內發生
(2) 在操做系統中,引入進程的目的是爲了使程序能併發執行。
進程是在系統中能獨立運行並做爲資源分配的基本單位。多個進程間能夠併發執行和交換信息。
(3) 在引入線程的OS中,以進程做爲分配資源的最小單位,而把線程做爲獨立運行和調度的最小單位。
2. 共享性(Sharing)
資源共享的方式:互斥共享方式、同時訪問方式(進程交替訪問)
3. 虛擬(Virtual)
(1) 時分複用技術:虛擬處理機技術(多道程序設計)、虛擬設備技術
(2) 空分複用技術(其實是頻分複用技術):虛擬磁盤技術、虛擬存儲器技術
4. 異步性(Asynchronism)
併發性和共享性是操做系統兩個最基本的特徵。
1.5 操做系統的主要功能
1. 操做系統做爲計算機系統資源的管理者
(1)處理機管理
(1) 進程控制:爲做業建立進程,撤銷已結束進程,以及控制進程在運行過程當中的狀態轉換。
(2) 進程同步:進程互斥方式(加鎖)、進程同步(信號量機制)
(3) 進程通訊
(4) 調度:做業調度(選擇做業,分配資源,使其進入就緒隊列)、進程調度(分配處理機)
(2)存儲器管理
(1) 內存分配:內存分配數據結構、內存分配功能、內存回收功能
(2) 內存保護:每道程序都必須在本身的內存區中運行。
(3) 地址映射:將地址空間中的邏輯地址轉換爲內存空間中與之對應的物理地址。
(4) 內存擴充:藉助虛擬存儲技術,邏輯擴充內存容量,所以需具有請求調入功能、置換功能
(3)設備管理
(1) 緩衝管理:單緩衝機制、雙緩衝機制、公共緩衝池機制
(2) 設備分配
(3) 設備處理:實現CPU和設備控制器之間的通訊
(4)文件管理
(1) 文件存儲空間的管理:一般採用離散分配方式,以盤塊爲基本分配單位,盤塊大小一般爲1-8KB
(2) 目錄管理:爲每一個文件創建目錄項,並對衆多的目錄項加以有效的組織,以實現方便的按名存取;文件共享功能;目錄查詢功能。
(3) 文件的讀/寫管理和保護
2. 操做系統與用戶之間的接口
(1) 用戶接口:提供給用戶使用的接口
聯機用戶接口(交互式命令接口,適用於分時或實時系統的接口)、脫機用戶接口(批處理用戶接口,適用於批處理系統)、圖形用戶接口
(2) 程序接口:是提供給程序員編程時使用的接口,由一組系統調用(廣義指令)命令組成
1.6 操做系統的運行環境
1. 操做系統的運行機制
大多數操做系統的內核應該包含四個方面的內容:
(1) 時鐘管理(2)中斷機制(3)原語(4)系統控制的數據結構及處理
核心態與用戶態(CPU的執行狀態)
(1)核心態(管態、系統態):操做系統管理程序執行時機器所處的狀態
(2)用戶態(目態):用戶程序執行時機器所處的狀態
核心態命令實際上包括系統調用類指令和一些針對時鐘、中斷和原語的操做指令。
用戶態程序不能直接調用核心態子程序,而是經過執行訪問核心態的命令,引發中斷,由終端系統轉入操做系統內的相應程序(硬件實現,在用戶態下,執行訪管指令將用戶態轉爲核心態)
特權指令:只能由操做系統內核部分使用,不容許用戶直接使用的指令。例如清內存、置時鐘、分配系統資源、修改虛存的段表或頁表、修改用戶的訪問權限等。
3. 中斷和異常
中斷(外中斷)是指來自CPU執行指令意外的事件的發生。
異常(內中斷、例外、陷入)是指CPU執行指令內部的事件(不能被屏蔽)。
中斷是系統正常功能的一部分,異常是由錯誤引發的。一般異常會引發中斷,但中斷未必是有異常引發的。
3. 系統調用
系統調用是由操做系統實現的全部系統調用所構成的集合,即程序接口或應用編程接口API(Application Programming Interface),是應用程序同系統之間的接口
操做系統一般提供的系統調用有:進程控制、文件系統控制、系統控制、內存管理、網絡管理、socket控制、用戶管理以及進程間的信號。
1.7 操做系統的體系結構
1. 模塊組合結構
優勢:結構緊密、接口簡單直接、系統效率相對較高
缺點:高耦合、可擴展性差、可適應性差
適用於系統小、模塊少,使用環境比較穩定的系統
2. 層次結構
將操做系統的全部功能模塊按功能的調用次序排列成若干層,使得功能模塊之間只存在單向調用和單向依賴
優勢:模塊間的組織和依賴關係明瞭,系統的可讀性、可適應性、可靠性獲得了加強;對某層進行修改或替換時,最多隻影響到臨近兩層,便與修改和擴充。
缺點:如何有效分層是問題
3. 微內核結構
(1)內核:在現代操做系統的設計中,每每把一些與硬件緊密相關的模塊或運行頻率較高的模塊以及多模塊公用的一些基本操做安排在靠近硬件的軟件層次中,並使它們常駐內存,這就是操做系統的內核。
(2)微內核:在操做系統的內核中只留下一些基本的功能,而將其餘服務儘量從內核中分離出去,用若干個運行在用戶態下的進程來實現,造成C/S模式。
優勢:可靠性好、靈活性強、便於維護,適合與分佈式處理的計算環境
缺點:各進程藉助內核通訊,系統效率不高;頻繁的在用戶態和核心態之間進行切換,系統開銷大