操作系統原理總結【含詳解】——第二章《操作系統概述》

2020-08-10 10:00:37

2.1 操作系統的目標和功能

  操作系統是控制應用程式執行的程式,是應用程式和計算機硬體的介面。它有三個目標:

  • 方便:操作系統使計算機更易於使用
  • 有效:操作系統允許以更有效的方式使用計算機系統資源
  • 擴充套件能力:在構造操作系統時,應允許在不妨礙服務的前提下,有效地開發、測試和引入新的系統功能。

2.1.1 作爲使用者/計算機介面的操作系統

  如圖2.1所示。應用程式的使用者,即終端使用者,他們將計算機系統視爲一組應用程式,因爲他們只需要使用,並不需要思考應用程式是如何設計出來的,而一個應用程式是由程式設計師開發而成的。若程式設計師用一組完全負責控制計算機硬體的機器指令開發應用程式,則非常複雜。爲簡化這一任務,需要提供一些系統程式,其中一部分稱爲實用工具或庫程式,它們實現了建立程式、管理檔案和控制I/O裝置時經常使用的功能。程式設計師在開發應用程式時,將使用這些提供的介面;應用程式在執行時,將呼叫這些實用工具來實現特定的功能。最重要的系統程式是操作系統,操作系統爲程式設計師遮蔽了硬體的細節,併爲程式設計師使用系統提供了方便的介面。它可作爲中介,使程式設計師及應用程式更容易地存取與使用這些功能和服務。在这里插入图片描述

操作系統通常提供了以下幾個方面的服務:

  • 程式開發
  • 程式執行
  • I/O裝置存取
  • 檔案存取控制
  • 系統存取
  • 錯誤檢測和響應
  • 記賬

圖2.1也指明瞭典型計算機系統中有三種重要介面:

  • 指令系統體系結構(ISA):定義了計算機遵循的機器語言指令系統,該介面是硬體與軟體的分界線。
  • 應用程式二進制介面(ABI):定義了程式間二進制可移植性的標準。ABI定義了操作系統的系統呼叫介面,以及在系統中通過ISA能使用的硬體資源和服務。
  • 應用程式程式設計介面(API):API允許應用程式存取系統的硬體資源和服務,這些服務由使用者級ISA和高階語言庫(HLL)呼叫來提供。使用API能讓應用軟體更容易重新編譯並移植到具有相同API的其他系統中。

2.1.2 作爲資源管理器的操作系統

  一臺計算機就是一組資源,這些資源用於移動、儲存和處理數據,並對這些功能進行控制,而操作系統負責管理這些資源。
  圖2.2顯示了由操作系統管理的主要資源。操作系統的一部分在記憶體中,包括內核程式和當前正在使用的其他操作系統程式,內核程式包含操作系統中最常使用的功能。記憶體的其餘部分包含在使用者程式和數據,它的分配由操作系統和處理器中的儲存管理硬體聯合控制完成,後面會詳細介紹。操作系統決定在程式執行過程中何時使用I/O裝置,並控制檔案的存取和使用。處理器自身也是資源,操作系統必須決定在執行一個特定的使用者程式時,可以分配多少處理器時間,且在多處理器系統中,這一決定要傳達到所有處理器。在这里插入图片描述

2.2 操作系統的發展史

2.2.1 單道批次處理系統(序列處理)

  系統對作業的處理是成批進行的,但記憶體中始終保持一道作業。該系統是在解決人機矛盾和CPU與I/O裝置速率不匹配的矛盾中形成的。單道批次處理系統的主要特徵如下:

  • 自動性:在順利的情況下,在磁帶上的一批作業能自動地逐個依次進行,而無需人工幹預。
  • 順序性:磁帶上的各道作業是順序地進入記憶體,各道作業的完成順序與他們進入記憶體的順序,在正常情況下應完全相同,即先調入記憶體的作業先完成。
  • 單道性:記憶體中僅有一道程式執行,即監督程式每次從磁帶上只調入一道程式進入記憶體,當該程式完成或發生異常情況時,才換入其後繼程式進入記憶體執行。

  此時面臨的問題是:每次主機記憶體中僅存放一道作業,每當它執行期間發出輸入/輸出請求後,高速的CPU便處於等待低速的I/O完成狀態。爲了進一步提高資源的利用率和系統的吞吐量,引入了多道程式技術。

2.2.2 多道批次處理系統

多道程式設計技術允許多個程式同時進入記憶體並執行。即同時把多個程式放入記憶體,並允許它們交替在CPU中執行,它們的共用系統中的各種硬、軟體資源。當一道程式因I/O請求而暫停執行時,CPU便立即轉去執行另一道程式。它沒有用某些機制 機製提高某一技術方面的瓶頸問題,而是讓系統的各個組成部分都儘量去「忙」,花費很少時間去切換任務,打到了系統各部件之間的並行工作,使其整體在單位時間內的效率翻倍。如圖2.5所示:在这里插入图片描述

舉個例子,考慮一臺計算機,它有250MB的可用記憶體(未被操作系統使用)、一個磁碟、一個終端和一臺印表機,同時提交執行三個應用程式JOB1,JOB2,JOB3,它們的屬性如表2.1所示。假設JOB2和JOB3對處理器只有最低的要求,JOB3還要求連續使用磁碟和印表機。對於簡單的批次處理環境,這些作業將被順序執行,故耗時5+15+10=30分鐘。表2.2中的「單道程式設計」列出了平均資源利用情況、吞吐量和響應時間,圖2.6(a)顯示了各個裝置的利用率。顯然,在所需的30分鐘內,所有資源都未得到充分使用。在这里插入图片描述
現在假設這些作業在多道程式操作系統下並行執行。由於作業間幾乎沒有資源競爭,因此三個作業都可以在計算機中同時存在其他作業的情況下,以幾乎最短的時間執行。即三個作業將在15分鐘內完成。表2.2中「多道程式設計」列的數據取自圖2.6(b)所示直方圖,從中可以看出效能的提高很明顯。在这里插入图片描述
在这里插入图片描述

2.2.3 分時系統

  分時是指多個使用者分享使用同一臺計算機。多個程式分時共用硬體和軟體資源。分時操作系統是指在一臺主機上連線多個帶有顯示器和鍵盤的終端,同時允許多個使用者通過主機的終端,以互動方式使用計算機,共用主機中的資源。分時操作系統是一個多使用者互動式操作系統。

  批次處理和分時都使用了多道程式設計,其主要差別如表2.3所示。在这里插入图片描述
  爲減小磁碟開銷,只有當新來的程式需要充血使用者儲存空間時,使用者儲存空間才被寫出。這一原理如圖2.7所示。假設有4個互動使用者,其記憶體需求如下:

在这里插入图片描述
  圖2.7(a):最初,監控程式載入JOB1並把控制權轉交給它
  圖2.7(b):稍後,監控程式決定把控制權轉交給JOB2。由於IOB2比JOB1需要更多的儲存空間,JOB1必須先被寫出,然後載入JOB2
  圖2.7(c):接着,JOB3被載入並執行,由於JOB3比JOB2小,JOB2的一部分仍然留在記憶體中,以減少寫磁碟的時間;
  圖2.7(d):稍後,監控程式決定把控制權交回JOB1,當JOB1載入記憶體時,JOB2的另一部分將被寫出;
  圖2.7(e):載入JOB4時,JOB1和JOB2的一部分仍留在記憶體中
  圖2.7(f):此時,若JOB1或JOB2被啓用,則只需載入一部分。在該例中是JOB2接着執行,這就要求JOB4和JOB1留在記憶體中的那一部分被寫出,然後讀入JOB2的其餘部分。

都是一字一字敲上去的,對於部分難理解的地方都新增了說明,希望大家都能夠看懂。大家的點贊、收藏和評論都是對我最大的支援呀!