一、作業系統的基本概念
1.電腦系統的資源
在電腦系統中,資源套件括兩類,即硬體資源和軟體資源。軟體資源是電腦的靈魂,主要包括各種程式和資料以及作業系統本身等。作業系統的重要任務之一是有序地管理電腦中的硬體、軟體資源,跟蹤資源使用狀況,滿足使用者對資源的需求,協調各程式對資源的使用衝突,為使用者提供簡單、有效資源使用方法,最大限度地實現各類資源的共用,提高資源使用率,從而提高電腦系統的工作效率。
2.電腦系統的階層
安裝了作業系統的電腦稱為虛擬機器(Virtual Machine),是對裸機的擴充。根據電腦系統的組成和功能,可以把電腦系統分為硬體層、作業系統層、公用程式層(或支撐軟體層)和應用程式層等4個層次。每一層表示一組功能和一個介面,表現為一種單向服務的關係,即上一層的軟體必須以事先約定的方式使用下一層軟體或者硬體提供的服務。
硬體層包括所有硬體資源,提供了基本的可計算性資源,是作業系統和上層軟體賴以工作的基礎。它的對外介面由機器指令系統組成,作業系統及其外層軟體通過執行機器指令訪問和控制各種硬體資源。
作業系統層主要完成資源的調度和分配,資訊的存取和保護,並發活動的協調和控制等工作。作業系統是其他軟體的運行基礎,並為編譯器和資料庫管理系統等系統程式的設計者提供了有力支撐。
公用程式層是電腦系統軟體的基本組成部分,通常包括各種語言的編譯器、文本編輯程式、偵錯工具、串連程式、系統維護程式、文本加密程式、終端通訊程式以及圖文處理軟體、資料庫管理系統等。其功能是為應用程式層軟體及終端使用者處理自己的程式或者資料提供服務。
應用程式層處於電腦系統的最外層,解決使用者不同的應用問題,應用程式開發人員藉助於程式設計語言來表達應用問題,開發各種應用程式,既快捷又方便。而終端使用者則通過應用程式與電腦互動來解決應用問題。包括使用者在作業系統和實用軟體支援下自己開發的應用程式,以及軟體廠家為行業使用者開發的專用應用程式套件組合(例如財務軟體、Office套件)等。應用程式層是終端使用者使用的介面。當然,從終端使用者的角度,除了利用應用程式層的軟體之外,也可以利用一些未被隱藏的實用層、作業系統層和硬體層的特性來處理自己的程式和資料。
3.作業系統的階層
作業系統分為系統層、管理層和應用程式層。內層為系統層,具有初級中斷處理、外部裝置驅動、處理機調度以及即時進程式控制制和通訊的功能。系統層外是管理層,包括儲存管理、I/O處理、檔案存取、作業調度等。起初,作業系統只是設計成能夠執行重複操作的任務,這些任務以管理檔案、運行程式和從使用者接收命令為中心。檔案是存放於硬碟、磁碟片、磁帶等存放裝置上的電子資料或程式。大多數使用者需要電腦執行諸如從磁碟機上讀取和寫入檔案或在印表機上列印檔案等任務。如果沒有作業系統,使用者需要產生並運行一個程式以完成這些工作。然而,在作業系統中,使用者則可以通過簡單地向作業系統發送一條指令來執行這種任務。在作業系統中已經包含了從磁碟讀取檔案的重複操作的設計。
最外層是應用程式層,是接收並解釋使用者命令的介面,這個使用者介面允許使用者與作業系統互動。有些作業系統的使用者介面只允許輸入命令列,而有些則可以通過菜單和表徵圖來實現。作業系統也管理應用軟體,這些應用軟體是用於編輯文檔或科學計算等任務的一些特殊的應用程式。編輯器就是一個典型的應用程式例子,用它可以編輯文檔,改變或增加文本。編輯器本身是一個包含一系列指令的程式,要使用這個程式,應首先把它載入到電腦記憶體中,然後它的指令被執行。作業系統控制著所有程式和應用軟體的載入和執行。
二、作業系統
作業系統是電腦系統軟體的核心,有多種分類方法。按照作業系統所提供的功能進行分類,可以分為批處理作業系統、分時作業系統、即時作業系統、單使用者作業系統、網路作業系統和分布式作業系統等。
1.批處理作業系統
批處理作業系統是一種早期用在大型主機上的作業系統,其特點就是使用者離線使用電腦、作業成批處理和多道程式運行。批處理作業系統要求使用者事先把上機解題的作業準備好,包括程式、資料以及作業說明書,然後直接交給系統操作員,並按指定的時間收取運行結果,使用者不直接與電腦打交道。系統操作員不是立即進行輸入作業,而是要等到一定時間或作業達到一定數量之後才進行成批輸入。由系統操作員將使用者提交的作業分批進行處理,每批中的作業由作業系統控制執行。
2.分時作業系統
分時作業系統允許多個使用者共用同一台電腦的資源,即在一台電腦上串連幾台甚至幾十台終端機,終端機可以沒有CPU與記憶體,只有鍵盤與顯示器,每個使用者都通過各自的終端機使用這台電腦的資源,電腦系統按固定的時間片輪流為各個終端服務。由於電腦的處理速度很快,使用者感覺不到等待時間,似乎這台電腦專為自己服務一樣。分時作業系統的主要目的是對聯機使用者的服務響應,具有同時性、獨立性、及時性和互動性等特點。在分時作業系統中,分時是指若干道程式對CPU已耗用時間的分享,通過設立一個單位時間片來實現。也就是說CPU按時間片輪流執行各個作業,一個時間片通常是幾十毫秒。
3.即時作業系統
隨著工業過程式控制制和對資訊進行即時處理的需要,產生了即時作業系統。“即時”是“立即”的意思,指對隨機發生的外來事件做出及時的響應並對其進行處理。即時作業系統指系統能及時響應外來事件的請求,在規定的時間內完成對該事件的處理,並控制所有即時任務協調一致地運行。即時系統是較少有人為幹預的監督和控制系統,其軟體依賴於應用的性質和實際使用的電腦的類型。即時系統的基本特徵是事件驅動設計,即當接到某種類型的外部資訊時,由系統選擇相應的程式去處理。即時作業系統是以在允許的時間範圍內做出響應為主要特徵,要求電腦對外來的資訊能以足夠快的速度進行處理,並在被控對象允許時間範圍內作出快速響應,其響應速度時間在秒級、毫秒級或微秒級甚至更小,通常用在工業過程式控制制和資訊即時處理方面。工業控制主要包括數控機床、電力生產、飛行器、飛彈發射等方面的自動控制;資訊即時處理主要包 括民航中的查詢班機航線和票價、銀行系統中的財務處理等。即時作業系統的主要特點是高響應性、高可靠性、高安全性等。分時作業系統與即時作業系統的主要差別是在互動能力和回應時間上,分時系統注重互動性,而即時系統回應時間要求高。UNIX就是典型的多道批處理、分時、即時相結合的多使用者多任務分時作業系統,這類作業系統通常用在大、中、小型電腦或工作站中。
4.單使用者作業系統
單使用者作業系統是隨著微機的發展而產生的,用來對一台電腦的硬體和軟體資源進行管理,通常分為單使用者單任務和單使用者多任務兩種類型。
單使用者單任務作業系統的主要特徵是,在一個電腦系統內,一次只能運行一個使用者程 序,此使用者獨佔電腦系統的全部硬體和軟體資源。常用的單使用者單任務作業系統有MS—DOS、PC—DOS等。
單使用者多任務作業系統也是為單個使用者服務的,但它允許使用者一次提交多項任務。例如,使用者可以在運行程式的同時開始另一文檔的編輯工作,邊聽音樂邊打字也是典型的例子。常用的單使用者多任務作業系統有0S/2、Windows 95/98系列等,這類作業系統通常用在 微機系統中。
5.網路作業系統
網路作業系統用於對多台電腦的硬體和軟體資源進行管理和控制,提供網路通訊和網路資源的共用功能。它是負責管理整個網路資源和方便網路使用者的程式的集合,要保證網路中資訊傳輸的準確性、安全性和保密性,提高系統資源的利用率和可靠性。
網路作業系統除了一般作業系統的5個準系統之外,還應具有網路管理模組。網路管理模組的主要功能是提供高效而可靠的網路通訊能力;提供多種網路服務,如遠程作業錄入服務、分時服務、檔案傳輸服務;對網路中的共用資源進行管理;實現網路安全管理。
網路作業系統允許使用者通過系統提供的操作命令與多台電腦硬體和軟體資源打交道,通常用在電腦網路系統中的伺服器上。最有代表性的幾種網路作業系統產品是Microsoft公司的Windows 2000 Server/Windows XP、UNIX和Linux等。
6.分布式(多處理機)作業系統
分布式系統是由多台電腦經網路連接在一起而組成的系統,系統中任意兩台電腦可以通過遠端程序呼叫(RPC,Remote Process Call)交換資訊,系統中的電腦無主次之分,系統中的資源供所有使用者共用,一個程式可以分布在幾台電腦上並行地運行,互相協作完成一個共同的任務。分布式系統的引入主要是為了增加系統的處理能力、節省投資、提高系統的可靠性。用於管理分布式系統資源的作業系統稱為分布式作業系統。
三、 作業系統的準系統與特性
1.作業系統的功能
從資源管理的角度來看,作業系統對電腦資源進行控制和管理的功能主要分為如下5部分:
(1)CPU的控制與管理:CPU是電腦系統中最重要的硬體資源,任何程式只有佔有了CPU才能運行,其處理資訊的速度遠比儲存空間存取速度和外部裝置工作速度快,只有協調好它們之間的關係才能充分發揮CPU的作用。作業系統可以使CPU按預先規定的優先順序和管理原則,輪流地為外部裝置和使用者服務,或在同一段時間內並行地處理多項任務,以達到資源共用,從而使電腦系統的工作效率得到最大的發揮。
(2)記憶體的分配與管理:電腦在處理問題時不僅需要硬體資源,還要用到作業系統、編譯系統、使用者程式和資料等許多軟體資源,而這些軟體資源何時放到記憶體的什麼地方,使用者資料存放到哪裡,都需要由作業系統對記憶體進行統一的分配並加以管理,使它們既保持聯絡,又避免互相干擾。如何合理地分配與使用有限的記憶體空間,是作業系統對記憶體管理的一項重要工作。
(3)外部裝置的控制和管理:作業系統控制外部裝置和CPU之間的通道,把提出請求的外部裝置按一定的優先順序排好隊,等待CPU響應。為提高CPU與輸入/輸出裝置之間並行操作的程度,以及為了協調高CPU和低速輸入/輸出裝置之間的工作節奏,作業系統通常在記憶體中設定一些緩衝區,使CPU與外部裝置通過緩衝區成批傳送資料。資料轉送方式是,先從外部裝置一次讀入一組資料到記憶體的緩衝區,CPU依次從緩衝區讀取資料,待緩衝區中的資料用完後再從外部裝置讀入一組資料到緩衝區。這樣成組進行CPU與輸入/輸出裝置之間的資料互動,減少了CPU與外部裝置之間的互動次數,提高了運算速度。
(4)檔案的控制和管理:把邏輯上具有完整意義的資訊集合以一個名字作為整體記錄下來儲存在存放裝置中,這個整體資訊就稱為檔案。為了區別不同資訊的檔案,分別對它們命名,稱為檔案名稱。例如,一個來源程式、一批資料、一個文檔、一個表格或一幅圖片都可以各自組成一個檔案。作業系統根據使用者要求實現按檔案名稱存取,負責對檔案的組織以及對檔案存取許可權、列印等的控制。
(5)作業的控制和管理:作業包括程式、資料以及解題的控制步驟。一個計算問題是一個作業,一個文檔的列印也是一個作業。作業系統對進入系統的所有作業進行組織和管理,以提高運行效率。作業系統的作業管理功能提供“作業控制語言”,使用者通過它來書寫控製作業執行的說明書。同時,還為操作員和終端使用者提供與系統對話的“命令語言”,用它來請求系統服務。作業系統按操作說明書的要求或收到的命令控制使用者作業的執行。
2.作業系統的特性
作業系統是系統軟體的核心,配備作業系統是為了提高電腦系統的處理能力,充分發揮系統資源的利用率,方便使用者的使用。目前的 作業系統廣泛採用並行操作技術,使多種硬體裝置能並行工作。例如,CPU與I/O操作並行、在記憶體中同時存放多道程式等。這些技術表現出 作業系統的並發性和共用性的主要特徵。
並發性是指在記憶體中存放多道作業,在一個時間段上來看,每一道作業都能不同程度地向前推進,但在任何一個時間點上只能有一道作 業佔用CPU,各道程式同時在CPU上交替輪流地執行。與並發相關的兩個概念分別是:串列,在記憶體中每次只能放一道作業,只有它完全執行 完後,別的作業才能進入記憶體執行;並行,存在於有多個CPU的環境中,在記憶體中放多道作業,在任一時間點上都可能有多道作業在不同的 CPU上同時執行。
共用性是指系統中的資源可以供記憶體中多個並發執行的程式共同使用,很多種資源(CPU、記憶體等)都可以被多道作業共同享用。
並發與共用互為條件,是作業系統的基本特徵。