計算機作業系統教程 2 作業系統概述

wangjun_huster發表於2017-03-21

1、作業系統的基本概念

  計算機系統自上而下可粗分為四個部分:硬體、作業系統、應用程式和 使用者(這裡的劃分與計算機組成原理的分層不同)。作業系統管理各種計算機硬體,為應用程式提供基礎,並充當計算機硬體與使用者之間的中介。作業系統(Operating System,OS)是指控制和管理整個計算機系統的硬體和軟體資源,併合理地組織排程計算機的工作和資源的分配,以提供給使用者和其他軟體方便的介面和環境的程式集合。計算機作業系統是隨著計算機研究和應用的發展逐步形成並發展起來的,它是計算機系統中最基本的系統軟體。(系統軟體:作業系統、資料庫管理系統、編譯軟體)。
  

2、作業系統的特徵

  基本特徵包括:併發、共享、虛擬和非同步。
  併發(Concurrence):併發是指兩個或多個事件在同一時間間隔內發生。作業系統的併發性是指計算機系統中存在多個執行著的程式,因此它具有處理和排程多個程式同時執行的能力。在作業系統中,引入程式的目的是使程式能併發進行。併發好比一個人(CPU)喂兩個孩子(程式),輪換著每人喂一口,表面上兩個孩子都在吃飯。並行就是2個人喂2個孩子,兩個孩子也同時在吃飯。
  共享(Sharing):是指系統中的資源可供記憶體中多個併發執行的程式共同使用。共享可分為以下兩種共享方式:
1)互斥共享方式
系統中的某些資源,如印表機、磁帶機,雖然它們可以提供給多個程式使用,但為使所列印或記錄的結果不致造成混淆,應規定在一段時間內只允許一個程式訪問該資源。

為此,當程式A訪問某資源時,必須先提出請求,如果此時該資源空閒,系統便可將之分配給程式A使用,此後若再有其他程式也要訪問該資源時(只要A未使用完)則必須等待。僅當程式A訪問完並釋放該資源後,才允許另一程式對該資源進行訪問。我們把這種資源共享方式稱為互斥式共享,而把在一段時間內只允許一個程式訪問的資源稱為臨界資源或獨佔資源。計算機系統中大多數物理裝置,以及某些軟體中所用的棧、變數和表格,都屬於臨界資源,它們都要求被互斥地共享。

2)同時訪問方式
系統中還有另一類資源,允許在一段時間內多個程式“同時”對它們進行訪問。這裡所謂的“同時”往往是巨集觀上的,而是微觀上,這些程式可能是交替地對該資源進行訪問即“分時共享”。典型的可供多個程式“同時”訪問的資源是磁碟裝置,一些用重入碼編寫的檔案也可以被“同時”共享,即若干個使用者同時訪問該檔案。

併發和共享是作業系統兩個最基本的特徵,這兩者之間又是互為存在條件的:

  • 資源共享是以程式的併發為條件的,若系統不允許程式併發執行,則自然不存在資源共享問題;
  • 若系統不能對資源共享實時有效的管理,也必將影響到程式的併發執行,甚至根本無法併發執行。

    3)虛擬(Virtual)
    虛擬是指一個物理上的實體變為若干個邏輯上的對應物。物理實體(前者)是實的,即實際存在的;而後者是虛的,是使用者感覺上的事物。用於實現虛擬的技術,稱為虛擬技術。在作業系統中利用多種虛擬技術,分別用來實現虛擬處理器、虛擬記憶體和虛擬外部裝置等。

在虛擬處理技術中,是通過多道程式設計技術,讓多道程式併發執行的方法,來分時使用一個處理器的。此時,雖然只有一個處理器,但它能同時為多個使用者服務,使每個終端使用者都感覺有一箇中央處理器(CPU)在專門為它服務。利用多道程式設計技術,把一個物理上的CPU虛擬為多個邏輯上的CPU,稱為虛擬處理器。

類似地,可以通過虛擬儲存技術,將一臺機器的物理儲存器變為虛擬儲存器,以便從邏輯上來擴充儲存器的容量。當然,這時使用者所感覺到的記憶體容量是虛的。我們把使用者所感覺到的儲存器(實際是不存在的)稱為虛擬儲存器。

還可以通過虛擬裝置技術,將一臺物理I/O裝置虛擬為多臺邏輯上的I/O裝置,並允許每個使用者佔用一臺邏輯上的I/O裝置,這樣便可以使原來僅允許在一段時間內由一個使用者訪問的裝置(臨界資源),變為在一段時間內允許多個使用者同時訪問的共享裝置。

因此,作業系統的虛擬技術可歸納為:分時多工技術,如處理器的分時共享;空間多工技術,如虛擬儲存器

4)非同步(Asynchronism
在多道程式環境下,允許多個程式併發執行,但由於資源有限,程式的執行不是一貫到底,而是走走停停,以不可預知的速度向前推進,這就是程式的非同步性。

非同步性使得作業系統執行在一種隨機的環境下,可能導致程式產生與時間有關的錯誤(就像對全域性變數的訪問順序不當會導致程式出錯一樣)。但是隻要執行環境相同,作業系統必須保證多次執行程式,都獲得相同的結果。

3、作業系統的目標和功能

  為了給多道程式提供良好的執行環境,作業系統應具有以下幾方面的功能:處理機管理、儲存器管理、裝置管理和檔案管理。為了方便使用者使用作業系統,還必須向使用者提供介面。同時作業系統可用來擴充機器,以提供更方便的服務、更高的資源利用率。
  * 作業系統作為計算機系統資源的管理者*
  1)處理機管理
  在多道程式環境下,處理機的分配和執行都以程式(或執行緒)為基本單位,因而對處理機的管理可歸結為對程式的管理。併發是在計算機內同時執行多個程式,所以,程式何時建立、何時撤銷、如何管理、如何避免衝突、合理共享就是程式管理的最主要的任務。程式管理的主要功能有:程式控制、程式同步、程式通訊、死鎖處理、處理機排程等。
  2)儲存器管理
  儲存器管理是為了給多道程式的執行提供良好的環境,方便使用者使用以及提高記憶體的利用率,主要包括記憶體分配、地址對映、記憶體保護與共享和記憶體擴充等功能。
  3)檔案管理
  計算機中的資訊都是以檔案的形式存在的,作業系統中負責檔案管理的部分稱為檔案系統。檔案管理包括檔案儲存空間的管理、目錄管理及檔案讀寫管理和保護等。
  4)裝置管理
  裝置管理的主要任務是完成使用者的I/O請求,方便使用者使用各種裝置,並提高裝置的利用率,主要包括緩衝罐裡、裝置分配、裝置處理和虛擬裝置等功能。

作業系統作為使用者與計算機硬體系統之間的介面
為方便使用者使用計算機,作業系統還提供了使用者介面。作業系統提供的介面主要分為兩類:一類是命令介面,使用者利用這些操作命令來組織和控制作業的執行;另一類是程式介面,程式設計人員可以使用它們來請求作業系統服務。
1)命令介面
使用命令介面進行作業控制的主要方式有兩種,即聯機控制方式和離線控制方式。按作業控制方式的不同,可以將命令介面分為聯機命令介面和離線命令介面。

聯機命令介面又稱為互動式命令介面,適用於分時或實時系統的介面。它由一組鍵盤操作命令組成。使用者通過控制檯或終端輸入操作命令,向系統提供各種服務要求。使用者每輸入完成一條命令,控制權就轉入作業系統的命令解釋程式,然後由命令解釋程式對輸入的命令解釋並執行,完成指定的功能。之後,控制權又轉回控制檯或終端,此時使用者又可以輸入下一條命令。

離線命令介面又稱為批處理命令介面,即適用於批處理系統,它由一組作業控制命令(或稱作業控制語句)組成。離線使用者不能直接干預作業的執行,應事先用相應的作業控制命令組成一份作業操作說明書,連同作業一起提交系統。當系統排程到該作業時,由系統中的命令解釋程式對作業說明書上的命令或作業控制語句逐條解釋執行,從而間接地控制作業的執行。

2)程式介面
程式介面由一組系統呼叫命令(簡稱系統呼叫,也稱廣義指令)組成。使用者通過在程式中使用這些系統呼叫命令來請求作業系統為其提供服務。使用者在程式中可以直接使用這組程式呼叫命令向系統提出各種服務要求,如使用各種外部裝置,進行有關磁碟檔案的操作,申請分配和回收記憶體以及其他各種控制要求。

而當前最為流行的是圖形使用者介面(GUI)即圖形介面,使用者通過滑鼠和鍵盤,在圖形介面上單擊或使用快捷鍵就能很方便地使用作業系統。有些系統提供了上述三種介面,但GUI最終是通過呼叫程式介面實現的,嚴格地說它不屬於作業系統的一部分。

作業系統用作擴充機器
沒有任何軟體支援的計算機稱為裸機,它僅構成計算機系統的物質基礎,而實際呈現在使用者面前的計算機系統是經過若干層軟體改造的計算機。裸機在最裡層,它的外面是作業系統,由作業系統提供的資源管理功能和方便使用者的各種服務功能,將裸機改造成功能更強、使用更方便的機器,通常把覆蓋了軟體的機器稱為擴充機器,又稱之為虛擬機器。
  

4、作業系統的發展與分類

  1、手工操作階段(此階段無作業系統)
  使用者在計算機上算題的所有工作都要人工干預,如程式的裝入、執行、結果的輸出等。隨著計算機硬體的發展,人機矛盾(速度和資源利用)越來越大,必須尋求新的解決辦法。
  手工操作階段有兩個突出的缺點:使用者獨佔全機。不會出現因資源已被其他使用者佔用而等待的現象,但資源利用率低;CPU等待手工操作,CPU的利用不充分。

唯一的解決辦法就是用高速的機器代替相對較慢的手工操作來對作業進行控制。

  2、批處理階段(作業系統開始出現)
  為了解決人機矛盾及CPU和I/O裝置之間速度不匹配的矛盾,出現了批處理系統。它按發展歷程又分為單道批處理系統、多道批處理系統(多道程式設計技術出現以後)。

相關文章