第一章 操作系統引論
1.1 操作系統的目標和作用
- 計算機系統由硬件系統和軟件系統組成
- 硬件系統:中央處理器、存儲器、輸入輸出設備
- 軟件系統:系統軟件和應用軟件
- 操作系統是配置在裸機上的第一層軟件。裸機+操作系統=虛擬機或擴展機
- 操作系統的目標:
- 有效性:提高系統資源利用率、提高系統吞吐量
- 方便性
- 可擴充性
- 開放性
- 操作系統的作用:
- OS作為用戶與計算機硬件系統之間的接口:
- 用戶通過三種方式使用計算機:命令方式、系統調用方式、圖標、窗口調用方式
- OS作為計算機系統資源的管理者
- OS實現了對計算機資源的抽象:
- I/O軟件實現了對計算機硬件操作的第一個層次的抽象
- 文件管理軟件實現了對硬件資源操作的第二個層次的抽象
- OS作為用戶與計算機硬件系統之間的接口:
- 推動操作系統發展的主要動力:
- 不斷提高計算機資源的利用率
- 方便用戶
- 器件的不斷更新換代
- 不斷出現的新的應用需求
1.2 操作系統的發展過程
-
無操作系統的計算機系統
- 人工操作方式
- 用戶獨占計算機全部資源
- CPU等待人工操作
- (為緩和人機矛盾)引入脫機輸入/輸出方式
- (通過外圍機控制輸入輸出)在主機的直接控制下進行輸入輸出的方式稱作聯機輸入/輸出方式
- 減少了CPU的空閑時間
- 提高了I/O速度
- 人工操作方式
-
單道批處理系統:
- 脫機輸入一批作業,由監督程序控制,一個接一個地連連續自動處理
- 特征:
- 自動性
- 順序性
- 單道性
- 缺點:資源不能充分利用
-
多道批處理系統:
- 引入多道程序設計技術,作業先存放在外存排成隊列(后備隊列)
- 好處:
- 提高CPU的利用率
- 提高內存和I/O設備的利用率
- 增加系統吞吐量
- 優缺點:
- 資源利用率高
- 系統吞吐量大
- 平均周轉時間長
- 無交互能力
- 需要解決的問題:處理機管理問題、內存管理問題、I/O設備管理問題、文件管理問題、作業管理問題、用戶與系統接口問題
-
分時系統:
- 多路卡:從終端輸入數據,為每個終端配置一個緩沖區
- 時間片:每個作業運行一個很短的時間
- 特征:
- 多路性(同時性)
- 獨立性
- 及時性
- 交互性
-
實時系統:實時表示及時,系統能及時相應外部時間的請求
- 應用需求:1. 實時控制(實時系統) 2. 實時信息處理(實時信息處理系統)
- 實時任務:
- 周期性、非周期性(必須聯系一個截止時間(開始、截止))
- 硬實時任務、軟實時任務
- 比較:
- 多路性。實時信息處理系統也按分時原則為多個終端用戶服務。而分時系統中的多路性則與用戶情況有關,時多時少。
- 獨立性。彼此獨立地操作,互不干擾
- 及時性。實時信息處理系統對實時性的要求與分時系統類似,人所能接受的等待時間來確定;而實時控制系統的及時性,則是以控制對象所要求的開始截止時間或完成截止時間來確定的,一般為秒級到毫秒級,甚至有的要低於100微秒。
- 交互性。實時信息處理系統雖然也具有交互性,僅限於某些特定的專用服務程序。不像分時系統那樣能向終端用戶提供數據處理和資源共享等服務。
- 可靠性。分時系統雖然也要求系統可靠,但相比之下,實時系統則要求系統具有高度的可靠性。
-
-
批處理系統:IBM System360大型機的OS/360
-
分時系統:Unix
-
實時系統:VxWorks、實時Linux
-
-
微機操作系統的發展:
- 單用戶單任務操作系統
- 單用戶多任務操作系統
- 多用戶多任務操作系統
1.3 操作系統的基本特性
- 並發性:
- 並行性:兩個或多個事件在同一個時刻發生
- 並發性:連個或多個事件在同一個時間間隔內發生
- 引入進程:
- 程序是靜態實體,在多道程序系統中不能獨立運行,更不能並發執行
- 引入進程的目的:為了使多個程序能並發執行
- 共享性:
- 互斥共享方式
- 同時訪問方式(磁盤)
- 並發和共享是操作系統的兩個最基本的特征,它們互為存在的條件。
- 虛擬技術:
- 時分復用技術:提高資源利用率
- 虛擬處理機技術
- 虛擬設備技術
- 空分復用技術:提高存儲空間利用率
- 虛擬磁盤技術
- 虛擬存儲器技術(本質上就是使內存分時復用)
- 時分復用技術:提高資源利用率
- 異步性
1.4 操作系統的主要功能
- 處理機管理功能:
- 進程控制
- 進程同步:1. 進程同步方式, 2. 進程同步方式
- 進程通信
- 調度:1. 作業調度, 2. 進程調度
- 存儲器管理功能:
- 內存分配:1. 靜態, 2. 動態
- 內存保護
- 地址映射
- 內存擴充:1. 請求調入功能,2. 置換功能
- 設備管理功能:
- 緩沖管理
- 設備分配
- 設備處理
- 文件管理功能:
- 文件存儲空間的管理
- 目錄管理
- 文件的讀/寫管理和保護
- 操作系統與用戶之間的接口
- 用戶接口
- 程序接口
1.5 OS結構設計
- 傳統操作系統結構
- 無結構操作系統
- 模塊化結構OS
- 分層式結構OS
- 客戶/服務器模式
- 面向對象程序設計
- 微內核OS結構