1.1_1操作系統的概念和功能
操作系統的概念
-
操作系統(Operating System, OS) 是指控制和管理整個計算機系統的 硬件和軟件 資源,并合理地組織調度計算機和工作和資源的分配;
1操作系統是系統資源的管理者
-
以提供給用戶和其他軟件方便的接口和環境;
2向上層提供方便易用的服務
-
它是計算機系統中最基本的系統軟件。
3是最接近硬件的一層軟件
操作系統的功能和目標
向上層提供方便易用的服務——封裝思想:操作系統把一些丑陋的硬件功能封裝成簡單易用的服務,使用戶能更方便地使用計算機,用戶無需關心底層硬件地原理,只需要對操作系統發出命令即可。
例子:1GUI(圖形化界面用戶接口)
2聯機命令接口實例(Windows系統) 聯機命令接口 = 交互式命令接口
用戶給一個命令,系統執行一個命令
3脫機命令接口實例(Windows系統) 脫機命令接口 = 批處理命令接口
用戶給一堆命令, 系統執行一堆命令
123給普通用戶使用,4對于程序員使用
程序接口:可以在程序中進行 系統調用 來使用程序接口。
普通用戶不能直接使用程序接口,只能通過程序代碼間接使用。
就例如程序員在書寫C語言庫函數,執行時會使用程序接口(有一系列系統調用組成),操作系統收到調用,隨機使用硬件(顯示器),得到程序效果實現。
作為最接近硬件的層次:
需要實現對硬件機器的拓展
沒有任何軟件支持的計算機成為裸機。在裸機上安裝的操作系統可以提供資源管理功能和方便用戶的服務功能,將裸機改造成功能更強、使用更方便的機器。
通常把覆蓋了軟件的機器成為擴充機器, 又稱之為虛擬機。
操作系統對硬件機器的拓展:將CPU、內存、磁盤、顯示器、鍵盤等硬件合理地組織起來,讓各種硬件能夠相互協調配合,實現更多更復雜的功能。
1.1_2操作系統的特征
并發
指兩個或多個事件在同一時間間隔內發生。
這些事件宏觀上是同時發生的,但微觀上是交替發生的。
常考已混概念——并行:指兩個事件或多個事件同一時刻同時發生。
并發在單一時刻只發生一個,并行在單一時刻發生多個。
操作系統的并發性指計算機系統中“同時”運行著多個程序,這些程序宏觀上看是同時運行,而微觀上看是交替運行的。
(多線程是由操作系統調配CPU的,有的并發有的并行,并行取決于個人的核)
操作系統就是伴隨著“多道程序技術”而出現的。
因此,操作系統和程序并發是一起誕生的。
注意(重要考點):
單核CPU同一時刻只能執行一個程序,各個程序只能并發地執行。
多核CPU同一時刻可以同時執行多個程序,多個程序可以并行地執行。
(現在有使用超線程技術,一個核心可以并行兩個程序)
共享
即資源共享,是指系統中的資源可供內存中多個并發執行的進程共同使用。
互斥共享方式:系統中的某些資源,雖然可以提供多個進程使用,但一個時間段內只允許一個進程訪問該資源。
同時共享方式:系統中的某些資源,允許一個時間段內由多個進程“同時”對它們進行訪問。
所謂的“同時”往往是宏觀上,而在微觀上,這些進程可能是交替地對該資源進行訪問地(即分時共享)
(這里會有互斥鎖和共享鎖的概念,后面提及)
并發和共享的關系
并發性是指計算機系統中同時存在著多個運行著的程序。
共享性是指系統中的資源可供多個并發執行的進程共同使用。
(先有并發性使得系統可以同時運行多個程序,多個程序才能利用共享性來同時訪問系統里的資源。)
并發性和共享性互為存在條件。
虛擬
指把一個物理上的實體變為若干個邏輯上的對應物。
物理實體(前者)是實際存在的,而邏輯上對應物(后者)是用戶感受到的。
虛擬技術中的“時分復用技術”。微觀上處理機在各個微小的時間段內交替著為各個進程服務。
異步
在多道程序環境下,允許多個程序并發執行,但由于資源有限,進程的執行不是一貫到底的,而是走走停停,已不可預知的速度向前推進,這就是進程的異步性。
(多個程序并發執行,但是由于資源有限,不同進程的需求滿足不同,導致進程不一樣,造成異步)
如果失去了并發性,即系統只能串行地允許各個程序,那么每個程序的執行會一貫到底。<br
只有系統擁有并發性,才有可能導致異步性。
1.2_操作系統的發展與分類
重點是綠色邊框內容。
手工操作階段
主要缺點:用戶獨占全機、人機速度矛盾導致資源利用率極低。
進階
批處理階段——單道批處理系統
引入脫機輸入、輸出技術(用外圍機+磁帶完成),并由監督程序負責控制作業的輸入、輸出。
采用外圍機來讀入多個用戶的數據,監督程序是操縱系統的雛形。
主要優點:緩解了一定程序的人機速度矛盾,資源利用率有所提升。
主要缺點:內存中僅能有一道程序運行,只有該程序運行結束之后,才能調入下一道程序。
CPU有大量的時間是在空閑等待 I/O 完成,資源利用率依然很低。
進階
批處理階段——多道批處理系統
此時操作系統正式誕生,用于支持多道程序并發運行。
每次往內存中讀入多道程序。
通過甘特圖來圖示說明:
主要優點:多道程序并發執行,共享計算機資源。
資源利用率大幅提升,CPU和其他資源更能保持“忙碌”狀態,系統吞吐量增大。
主要缺點:用戶響應時間長,沒有人機交互功能(用戶提交自己的作業之后就只能等待計算機處理完成,中間不能控制自己的作業執行。eg:無法調試程序/無法在程序中輸入一些參數)。
進階
分時操作系統
計算機以時間片為單位輪流為各個用戶,各個用戶可通過終端與計算機進行交互。
主要優點:用戶請求可以被即時響應,解決了人機交互問題。
允許多個用戶同時使用一臺計算機,并且用戶對計算機的操作相互獨立,感受不到別人的存在。
主要缺點:**不能優先處理一些緊急任務。**操作系統對各個用戶/作業都是完全公平的,循環地為每個用戶/作業服務一個時間片,不區分任務的緊急性。
進階
實時操作系統
主要優點:能夠優先響應一些緊急任務,某些緊急任務不需時間片排隊。
在實時操作系統的控制下,計算機操作系統接收到外部信號后及時處理,并且要在嚴格的時限內處理完事件。
實時操作系統的主要特點是及時性和可靠性。
總結