天天看點

作業系統原理總結【含詳解】——第二章《作業系統概述》2.1 作業系統的目标和功能2.2 作業系統的發展史

文章導航

  • 2.1 作業系統的目标和功能
    • 2.1.1 作為使用者/計算機接口的作業系統
    • 2.1.2 作為資料總管的作業系統
  • 2.2 作業系統的發展史
    • 2.2.1 單道批處理系統(串行處理)
    • 2.2.2 多道批處理系統
    • 2.2.3 分時系統

2.1 作業系統的目标和功能

  作業系統是控制應用程式執行的程式,是應用程式和計算機硬體的接口。它有三個目标:

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

2.1.1 作為使用者/計算機接口的作業系統

  如圖2.1所示。應用程式的使用者,即終端使用者,他們将計算機系統視為一組應用程式,因為他們隻需要使用,并不需要思考應用程式是如何設計出來的,而一個應用程式是由程式員開發而成的。若程式員用一組完全負責控制計算機硬體的機器指令開發應用程式,則非常複雜。為簡化這一任務,需要提供一些系統程式,其中一部分稱為實用工具或庫程式,它們實作了建立程式、管理檔案和控制I/O裝置時經常使用的功能。程式員在開發應用程式時,将使用這些提供的接口;應用程式在運作時,将調用這些實用工具來實作特定的功能。最重要的系統程式是作業系統,作業系統為程式員屏蔽了硬體的細節,并為程式員使用系統提供了友善的接口。它可作為中介,使程式員及應用程式更容易地通路與使用這些功能和服務。

作業系統原理總結【含詳解】——第二章《作業系統概述》2.1 作業系統的目标和功能2.2 作業系統的發展史

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

  • 程式開發
  • 程式運作
  • I/O裝置通路
  • 檔案通路控制
  • 系統通路
  • 錯誤檢測和響應
  • 記賬

圖2.1也指明了典型計算機系統中有三種重要接口:

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

2.1.2 作為資料總管的作業系統

  一台計算機就是一組資源,這些資源用于移動、存儲和處理資料,并對這些功能進行控制,而作業系統負責管理這些資源。

  圖2.2顯示了由作業系統管理的主要資源。作業系統的一部分在記憶體中,包括核心程式和目前正在使用的其他作業系統程式,核心程式包含作業系統中最常使用的功能。記憶體的其餘部分包含在使用者程式和資料,它的配置設定由作業系統和處理器中的存儲管理硬體聯合控制完成,後面會詳細介紹。作業系統決定在程式運作過程中何時使用I/O裝置,并控制檔案的通路和使用。處理器自身也是資源,作業系統必須決定在運作一個特定的使用者程式時,可以配置設定多少處理器時間,且在多處理器系統中,這一決定要傳達到所有處理器。

作業系統原理總結【含詳解】——第二章《作業系統概述》2.1 作業系統的目标和功能2.2 作業系統的發展史

2.2 作業系統的發展史

2.2.1 單道批處理系統(串行處理)

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

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

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

2.2.2 多道批處理系統

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

作業系統原理總結【含詳解】——第二章《作業系統概述》2.1 作業系統的目标和功能2.2 作業系統的發展史

舉個例子,考慮一台計算機,它有250MB的可用存儲器(未被作業系統使用)、一個磁盤、一個終端和一台列印機,同時送出執行三個應用程式JOB1,JOB2,JOB3,它們的屬性如表2.1所示。假設JOB2和JOB3對處理器隻有最低的要求,JOB3還要求連續使用磁盤和列印機。對于簡單的批處理環境,這些作業将被順序執行,故耗時5+15+10=30分鐘。表2.2中的“單道程式設計”列出了平均資源利用情況、吞吐量和響應時間,圖2.6(a)顯示了各個裝置的使用率。顯然,在所需的30分鐘内,所有資源都未得到充分使用。

作業系統原理總結【含詳解】——第二章《作業系統概述》2.1 作業系統的目标和功能2.2 作業系統的發展史

現在假設這些作業在多道程式作業系統下并行運作。由于作業間幾乎沒有資源競争,是以三個作業都可以在計算機中同時存在其他作業的情況下,以幾乎最短的時間運作。即三個作業将在15分鐘内完成。表2.2中“多道程式設計”列的資料取自圖2.6(b)所示直方圖,從中可以看出性能的提高很明顯。

作業系統原理總結【含詳解】——第二章《作業系統概述》2.1 作業系統的目标和功能2.2 作業系統的發展史
作業系統原理總結【含詳解】——第二章《作業系統概述》2.1 作業系統的目标和功能2.2 作業系統的發展史

2.2.3 分時系統

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

  批處理和分時都使用了多道程式設計,其主要差别如表2.3所示。

作業系統原理總結【含詳解】——第二章《作業系統概述》2.1 作業系統的目标和功能2.2 作業系統的發展史

  為減小磁盤開銷,隻有當新來的程式需要充血使用者存儲空間時,使用者存儲空間才被寫出。這一原理如圖2.7所示。假設有4個互動使用者,其存儲器需求如下:

作業系統原理總結【含詳解】——第二章《作業系統概述》2.1 作業系統的目标和功能2.2 作業系統的發展史

  圖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的其餘部分。

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

繼續閱讀