作業系統學習筆記-1:基礎概念

Chorer發表於2020-03-17

作業系統學習筆記-1:基礎概念

  • 硬體核心 => CPU
  • 軟體核心 => 作業系統 (系統軟體)

1. 主要目標:

  • 方便性:在硬體(裸機)上跑程式很麻煩(得用機器語言)
  • 有效性
    • 提高系統資源利用率:沒有 OS 的時候,諸如 I/O 等裝置常處於空閒狀態,沒有得到有效的利用
    • 提高系統吞吐量:合理組織工作流程,縮短程式的執行週期
  • 可擴充性:方便地增添新的功能和模組
  • 開放性:遵循世界標準規範,達到彼此相容

2. 發展過程

2.1 無作業系統:

階段一 —— 人工操作:

  • 獨佔全機的問題:一個使用者搞定之後,後面的使用者才有機會使用
  • 資源利用率低的問題:
    • 紙帶的輸入輸出的速度相對於CPU 的處理速度很慢,這導致 CPU 把大量空閒時間浪費在等待輸入輸出上
    • 人工將程式、資料存進紙帶的速度相對於紙帶的輸入輸出很慢(人機矛盾)

階段二 —— 離線輸入/輸出:

在紙帶與 CPU 之間增加一個外圍機,這個外圍機協助將資料讀入磁帶,而磁帶能夠快速地將資料輸入到記憶體中進行處理。

  • 外圍機上有一個監督程式負責控制輸入輸出的流程,這個程式就是後來作業系統的雛形。

2.2 單道批處理系統

單道批處理系統通過連續處理儘可能地減少機器的空閒等待時間,但存在 CPU 和 IO 使用忙閒不均(總有一個人沒做事)的情況,仍然沒有做到充分利用資源。用一個例子來說明:

假如計算機現在需要處理 J1,J2,J3 三個作業,每個作業都需要經歷輸入(1秒)、計算(1秒)、輸出(1秒)的過程。

如果計算機是單道批處理系統,那麼處理過程大概是這樣的:

作業系統學習筆記-1:基礎概念

(圖源:《王道考研》視訊)

可以看到,輸入裝置,CPU,輸出裝置這三者只能序列工作,不存在其中兩者並行使用的情況。雖然系統儘可能地連續處理三個作業,但是可以看到,就同一時刻而言,輸入裝置,CPU,輸出裝置中總有至少一方無事可做,而這是對資源的浪費。

2.3 多道程式批處理系統

作業存放在外存,形成“後備佇列”,由作業排程程式選擇若干個作業調入記憶體,使他們共享 CPU 和系統資源。由於有多道程式,可以及時補位 CPU 的空閒。

  • 特點:無序性(先進入記憶體的作業不一定先完成)、多道性、排程性
  • 優點:資源利用率高、系統吞吐量大
  • 缺點:平均週轉時間長、無法互動

用一個例子來說明:

假如計算機現在需要處理 J1,J2,J3 三個作業,每個作業都需要經歷輸入(1秒)、計算(1秒)、輸出(1秒)的過程。

如果計算機是多道批處理系統,那麼處理過程大概是這樣的:

作業系統學習筆記-1:基礎概念

(圖源:《王道考研》視訊)

可以看到,輸入裝置,CPU,輸出裝置這三者是可以並行使用的。J1 輸入完成後開始計算,此時輸入裝置空閒,可用於進行 J2 的輸入工作,J1 計算完成後開始輸出,此時 CPU 空閒,可用於 J2 的計算工作,J2 進行計算的時候,輸入裝置空閒,可用於 J3 的輸入工作,以此類推........可以看到,多道批處理系統儘可能在同一時刻讓輸入裝置,CPU,輸出裝置這三者都有事可做,將資源充分呼叫起來。相比單道批處理系統耗時 9 秒,完成相同的工作,多道批處理系統只需要 5 秒即可。

2.4 分時系統(Time sharing system)

需求:人機互動(要能修改、能控制)、共享主機(有“獨佔”的感覺)

人機互動的關鍵:系統要及時接受並處理使用者輸入,所以作業不能再放在外存(磁碟),而要直接進入記憶體;另外,需要採用輪轉執行方式。引入時間片的概念,時間片可以看作一個時間限制,每次每個作業(使用者)只有一個時間片的執行時間,過了這個時間片,就必須讓給其它作業(使用者)執行。

特點:

  • 多路性:一主機,多終端,多個使用者按照分時原則共享一臺計算機
  • 獨立性:一使用者一終端,互不打擾,有一種“獨佔”的感覺
  • 及時性:及時響應使用者請求
  • 互動性:使用者請求系統提供某些服務

分時系統的缺點是,它對每個使用者/作業都是公平的,迴圈地為它們執行一個時間片,不區分輕重緩急,因此不能優先處理緊急任務。

2.5 實時系統 (Real time system)

實時即“及時”。這裡要注意和分時系統的區別:實時系統能夠及時響應外部事件的請求,指的是緊急任務可以不需要時間片的排隊而優先得到處理

實時任務:

  • 任務是否週期性?週期性實時任務:非週期性實時任務(開始截止時間、完成截止時間)
  • 對截止時間的要求?硬實時任務(不能錯過截止時間):軟實時任務(允許錯過截止時間)

特點:

  • 多路性:系統週期性地採集多路現場資訊
  • 獨立性:對資訊得采集、對物件得控制,互不干擾
  • 及時性:控制物件所要求的截止時間
  • 互動性:僅限於某些系統特定的服務
  • 可靠性:多級容錯措施

2.6 微機作業系統

......

2.7 網路作業系統

......

PS:同時具有批處理、分時、實時處理的功能,叫做通用作業系統

3. 基本特性

3.1 併發:

提高資源利用率、增加系統吞吐量,依靠的就是程式的併發執行。

並行和併發的區別

並行(parallel):指在同一時刻,有多條指令在多個處理器上同時執行。比如下圖的 ABC 三個人同時吃麵包,1分鐘後都吃完了,無論是從微觀角度(聚焦於一秒)還是從巨集觀角度(聚焦於幾十秒),這三者都是同時執行的

圖片描述
併發(concurrency):指在同一時刻只能有一條指令執行,但多個程式指令被快速地輪換執行,使得在巨集觀上具有多個程式同時執行的效果,但實際上在微觀上並不是同時執行的。比如下圖的 ABC 三個人吃麵包,0-10 秒 A 吃麵包,10-20 秒 B 吃麵包,20-30 秒 C 吃麵包,那麼在微觀角度上(聚焦於秒級別的比較),很顯然不是同時執行的;但是在巨集觀角度上(聚焦於整體的1分鐘),不考慮更加精細的時間,這三者是同時執行的。
圖片描述

  • 程式:在系統中能夠獨立執行並作為資源分配的基本單位,程式建立程式後才能併發執行

3.2 共享

多個併發程式共同使用系統資源,資源在同一個時間段內交替地被多個程式使用

  • 互斥共享方式(例如印表機,僅當 A 程式訪問完並釋放系統資源後,才允許另一程式訪問該資源)
  • 同時訪問方式(如磁碟裝置,一段時間內是可以同時訪問的。這裡的同時是巨集觀層面上的)

PS:併發和共享互為存在條件,是 OS 最基本的特徵:程式併發是資源共享的前提,對共享資源的訪問保證了程式併發的順利執行

3.3 虛擬

通過虛擬技術把一個物理上地實體變為若干個邏輯上的對應物

  • 分時多工技術:把一個單一的大時間段分成多個時間片,交替執行各個程式。比如說虛擬處理器技術就是分時多工技術的一種 —— 單核計算機同時開啟多個軟體,在使用者看來感覺像是多個 CPU 在跑這些軟體。
  • 空間多工技術:虛擬儲存器技術就是空間多工技術的一種 —— 計算機只有 4G 記憶體,雖然各個執行的軟體消耗的總的記憶體遠不止 4G,但它們還是可以正常執行,在使用者看來感覺像是實體記憶體超過了 4G。

3.4 非同步

多個程式併發執行,但是由於資源有限,程式的執行不是一貫到底的,以不可預知的速度向前推進。

4. 基本功能

4.1 處理機管理功能

  • 程式控制:為作業建立、撤銷、種植程式,控制程式的狀態轉換
  • 程式同步:為多個程式的執行進行協調
    • 程式互斥方式
    • 程式同步方式
  • 程式通訊:程式之間的資訊交換
  • 排程:作業排程、程式排程

4.2 儲存器管理功能

  • 記憶體分配:靜態記憶體分配(執行過程中不可申請新的記憶體空間)和動態記憶體分配(執行過程中允許申請新的記憶體空間)
  • 記憶體保護:每個程式只在自己的記憶體區執行
  • 地址對映:邏輯地址 => 實體地址
  • 記憶體擴充:藉助虛擬儲存技術,從邏輯上進行記憶體擴充

4.3 裝置管理功能

  • 緩衝管理:在 I/O 和 CPU 之間引入緩衝,提高資源利用率和系統吞吐量。緩衝區機制包括:單緩衝機制、雙緩衝機制、公用緩衝池機制
  • 裝置分配:根據使用者請求的裝置型別和採用的分配演算法,對裝置進行分配
  • 裝置處理:實現 CPU 與裝置控制器之間的通訊。

4.4 檔案管理功能

  • 檔案儲存空間的管理:為檔案分配外存空間
  • 目錄管理:為檔案建立一個目錄項
  • 檔案讀寫管理和保護:對外存中的檔案進行讀寫,提供防護

4.5 作業系統與使用者之間的介面

  • 命令介面(使用者直接使用):聯機使用者介面、離線使用者介面
  • 程式介面(使用者通過程式間接使用):讓使用者程式在執行中訪問系統資源,是使用者程式取得 OS 服務的唯一途徑,有時候也叫做系統呼叫
  • 圖形使用者介面

4.6 現代 OS 的新功能

  • 系統安全:認證技術、密碼技術、訪問控制技術、反病毒技術
  • 網路功能和服務:網路通訊、資源管理、應用互操作
  • 支援多媒體:接納控制功能、實時排程、多媒體檔案的儲存

相關文章