教材:
《計算機操作系統》,湯子瀛等,西安電子科技大學出版社(第4版)
參考書:
《操作系統教程》(第3版),孫鍾秀 ,高等教育出版社 ,2003年11月
《Operating System Concepts》(第七版)(英文影印版) Silberschatz A ,Galvin P B, Gagne G著,高等教育出版社 ,2007 年12月。
《現代操作系統》 (英文第2版),(荷)Andrew S. Tanenbaum著 ,陳向羣等譯,機械工業出版社, 2005 年6月
《操作系統:設計與實現》(上下冊) ,Andrew S.Tanenbaum ,電子工業出版社 ,1998年
《Linux內核完全剖析--基於0.12內核 》,趙炯 ,機械工業出版社 ,2009年1月。
《UNIX結構分析(核心代碼的結構與算法) 》胡希明 ,浙江大學出版社 ,2002 年8月。
《嵌入式實時操作系統uC/OS-II 》 (第2版), (美)Jean J. Labrosse著 ,邵貝貝譯, 北京航空航天大學出版社 , 2007 年9月
《Unix系統內幕》,Uresh Vahalia ,人民郵電出版社 ,2003年
操作系統是系統軟件
系統軟件是與硬件相關的軟件。
§1.1 操作系統的目標和作用
硬件之上,其他軟件之下。
- 目標: 方便性,有效性,可擴充性,開放性.
- 作用: 用戶與計算機的接口,系統資的管理者,擴充機器。
推動OS發展的主要動力:
- 不斷提高計算機資源利用率
- 方便用戶
- 器件的不斷更新換代
- 計算機體系結構的不斷髮展
- 不斷提出的應用需求
§1.2 操作系統的發展過程
無OS:
人工操作系統:
- 1946-50年代中:電子管時代,計算機速度慢,無操作系統,集中計算,計算機資源昂貴;
- 用戶:既是程序員又是操作員;用戶是計算機專業人員;
- 編程語言:機器語言;
- 輸入輸出:紙帶或卡片;
脫機I/O方式:
OS分類:
OS所在的角度
- 多任務,單CPU, CPU具有與外設並行操作的能力。
- 程序均由CPU執行
- CPU只能執行機器語言程序
- CPU執行的程序均在內存中
######## 批處理系統
- 單道程序工作示例:
- 多道程序工作示例:
分時系統
目標:
- 對用戶的請求及時響應;儘量提高系統資源的利用率
原理:
- 一臺計算機連接多個終端,用戶通過各自的終端把作業送入計算機;計算機又通過終端向各個用戶報告其作業的運行情況。
- 計算機能分時輪流地爲各終端用戶服務,並能及時地對用戶服務請求予以響應。
基本特性:
- 多路性,獨立性,及時性,交互性。
實時系統
目的:
- 提高系統的響應時間,對隨機發生的外部事件作出及時響應並對其進行處理。
分類
基本特性
三種系統比較
§1.3 操作系統的基本特性
併發
併發:一段時間
- 指兩個或多個事件在同一時間間隔內發生。
並行:一個時間
- 指兩個或多個事件在同一時刻發生。
共享
-
指系統中的資源供內存中的多道程序所共同使用。
-
同時訪問方式,互斥共享方式。
虛擬
- 指通過某種技術把一個物理實體變成若干個邏輯上的對應物。(虛擬機)
異步性
- 系統中併發執行的多道程序“走走停停”,以不可預知的速度向前推進
§1.4 操作系統的主要功能
OS定義
- OS是直接控制和管理計算機硬件、軟件資源,合理地對各類作業進行調度,以方便用戶使用的程序集合
— 處理機管理功能
— 存儲器管理功能
— 設備管理功能
— 文件管理功能
— 用戶接口
主要任務
- 爲多道程序的運行提供良好的運行環境,以保證多道程序能有條不紊、高效地運行,並能最大程度地提高系統中各種資源的利用率和方便用戶的使用。
§1.5 OS結構設計
- 傳統的操作系統結構
-
無結構操作系統
OS是由衆多的過程直接構成,各過程之間可相互調用,但OS內部不存在任何結構,所以這種OS是無結構的,又稱爲整體系統結構。缺點:
既龐大又雜亂,缺乏清晰的程序結構;程序錯誤多,調試難、閱讀難、理解難、維護難。 -
模塊化OS結構
OS是採用“模塊化程序設計”技術,按其功能劃分爲若干個獨立的模塊,管理相應的功能,同時規定好各模塊之間的接口,以實現其交互,對較大模塊又可按子功能進一步細分下去。優點
提高了OS設計的正確性、可理解性和可維護性
增強了OS的可適用性
加速了OS的開發過程缺點
模塊及接口劃分較困難
從功能上劃分模塊,未區別共享資源和獨佔資源
由於管理的差異,使OS結構變得不夠清晰 -
分層式OS結構
分層式OS結構是對模塊化結構的一種改進,它按分層式結構設計的基本原則,將OS 劃分爲若干個層次,每一層都只能使用其底層所提供的功能和服務,從硬件開始,在其上面一層一層地自底向上增添相應功能的軟件,這種OS結構稱爲分層式OS結構。優點:
每一步設計都建立在可靠的基礎上,結構更清晰
調試和驗證更容易,正確性更高缺點:
系統效率降低。只能是單向依賴,每執行一個功能,自底向上需要穿越很多個層次。
- 現代操作系統結構: 微內核的OS結構
-
** 微內核技術的主要思想**
在OS內核中只留下一些最基本的功能,而將其他服務分離出去,由工作在用戶態下的進程來實現,形成所謂“客戶/服務器”模式。客戶進程可通過內核向服務器進程發送請求,以取OS的服務。 -
微內核
精心設計的,能實現現代OS核心功能的小型內核,它小而精煉,運行在覈心態下,開機後常駐內存,不會因內存緊張而換出,它爲構建通用OS提供了一個重要基礎。 -
微內核的基本功能
- 進程管理
- 存儲器管理
- 進程通信管理
- I/O設備管理
-
特點
- 小而精練
- 系統的靈活性和可擴充性好
- 系統的可靠性高
- 適用於分佈式系統
§1.6 常見的OS
OS:
- MS DOS
- MS Windows
- UNIX
- Linux
- 手持系統(handheld system)
嵌入式操作系統 (Embedded OS)
- DOS BIOS(Basic Input/Output System):由一組與硬件相關的設備驅動程序組成,實現基本的I/O功能;
- DOS核心:提供一套獨立於硬件的系統功能:內存管理、文件管理、字符設備和輸入/輸出、實時時鐘等;
- 命令處理程序:對用戶命令進行分析和執行;
通用開放軟件環境(COSE)
- 一些主要的UNIX系統廠商在1993年成立了通用開放軟件環境聯盟。這些廠家當時包括HP,IBM,Sun,SCO,Novell及UNIX系統實驗室。
自由軟件基金會(FSF)
- 目標是創建一個與UNIX類似的系統,名爲HURD。
- 他們的這項工程稱爲GNU(全稱爲GNU’s Not UNIX)。
- 在編寫HURD的過程中,他們編寫了許多非常有用的、可移植性很強的流行實用程序。
- 例如GNU C 編譯器gcc。用戶既可以得到這些工具的源代碼而自行進行編譯,也可以得到能立即運行的可執行文件。
Linux的體系結構
- 用戶應用:文字處理工具、瀏覽器等用戶應用程序;
- 系統服務:它是操作系統的一部分,但不是內核。包括窗口系- 統、命令解釋程序、應用開發工具(編譯器、系統庫等)
- Linux內核:操作系統內核,完成資源管理功能。
- 硬件控制 :系統中的所有物理設備控制 。
手持系統(handheld system) && 嵌入式操作系統 (Embedded OS)
- 個人數字助理(Personal Digital Assistants, PDAs)
- 蜂窩電話(Cellular telephones)
- 存在的問題
- 內存有限(32M – 64M)
- 低速處理器(只有個人計算機處理器速度的幾分之一)
- 屏幕小(5英寸×3英寸)