作業系統

當前位置 /首頁/計算機/作業系統/列表

作業系統原理

隨著計算機技術的日益發展,使用者直接使用大型機器並獨佔機器,無論是對機器的效率來說還是對方便使用者來說都不適宜。人們創造出一類依靠計算機來管理自己和管理使用者的程式,叫做作業系統。操作系統是隨著硬體和軟體的不斷髮展而逐漸形成的一套軟體系統,用來管理計算機資源(如處理器、記憶體、外部裝置和各種編譯、應用程式)和自動排程使用者的作業程式,而使多個使用者能有效地共用一套計算機系統。

作業系統原理

作業系統是一個大型的程式系統,它負責計算機系統軟、硬體資源的分配和管理;控制和協調併發活動;提供使用者介面,使使用者獲得良好的工作環境。

以多道程式設計為基礎的作業系統具備的主要特徵是併發與共享。另外。由於作業系統要隨時處理各種事件,所以它也具備不確定性。

作業系統具有的資源管理功能包括:處理機分配、儲存管理、裝置管理、軟體資源管理。作業系統資源管理的目標是提高系統資源的利用率和方便使用者使用。

作業系統的核心任務是系統資源分配、控制和協調併發活動。

批量作業系統的主要特徵是“批量”,優點是系統的吞吐率高,缺點是對使用者的響應時間較長,使用者不能及時瞭解自己程式的執行情況並加以控制。

分時作業系統一般採用時間片輪轉的辦法,使一臺計算機同時為多個終端使用者服務,該系統對每個使用者都能保證足夠快的響應時間,並提供互動會話功能。分時系統與批量系統的主要差別在於,所有使用者介面都是通過像電傳打字機或CRT聯機終端那樣的裝置產生的。每個使用者通過各自的終端使用計算機。分時系統具有的特點:並行性:共享一臺計算機的眾多聯機使用者可以在各自的終端上同時處理自己的程式;獨佔性:分時作業系統採用時間片輪轉的方法使一臺計算機同時為許多終端使用者服務;互動性:使用者與計算機之間可以進行“對話”,使用者可以根據運算結果提出下一步要求,直到全部工作完成。

  (批量作業系統、分時作業系統的出現標誌著作業系統的初步形成。)

實時作業系統能夠對外部輸入的資訊在規定的時間內(截止期限deadline)處理完畢並作出反應。其另一個重要的特徵是可預測性分析。作業系統功能應該具有有限的、已知的執行時間。對實時應用程序的CPU排程應該是基於時間約束的,以滿足截止期限的要求。主存管理,即使有虛擬主存,也不能採用非同步和無法預測的頁面或段的換進換出。而檔案在磁碟上的物理結構一般應採用連續分配方式,以避免耗時的、不可確定的檔案操作,如動態確定磁碟柱面的搜尋操作。實時系統按其使用方式分為實時控制和實時資訊處理。實時系統要求有高可靠性和安全性,系統的效率(靈活性)則放在第二位,系統通常是採用雙工方式工作的。實時作業系統沒有分時作業系統那樣強的互動會話功能,通常不允許使用者通過實時終端裝置去編寫新的程式或修改已有的程式。

在個人計算機和工作站領域有兩種主流作業系統:一個是微軟公司的磁碟作業系統(MS-DOS)和具有圖形使用者介面的視窗作業系統(Windows);另一個是UNIX系統和Linux系統。微軟公司用各種型別的Windows系統替代了MS-DOS作業系統,IBM公司也將MS-DOS升級為多工系統OS/2。UNIX系統是一個多使用者的、人機互動的分時作業系統,自問世以來十分流行,它執行在從高檔個人計算機到大型機等各種不同處理能力的機器上,提供了良好的工作環境;它所有的實用程式層和核心層的90%程式碼是用C語言寫成的,具有可移植性、安全性,提供了很好的網路支援功能,大量用於網路伺服器。而目前十分受歡迎的、開放原始碼的作業系統Linux,則是用於個人計算機的、類似於UNIX的作業系統。

網路作業系統除了具備一般作業系統應具有的功能模組之外(如系統核心、裝置管理、儲存管理、檔案系統等),還要增加一個網路通訊模組,該模組由通訊介面中斷處理程式、通訊控制程式以及各級網路協議等軟體組成。網路作業系統提供的功能包括:允許使用者訪問網路主機中的各種資源;對使用者訪問進行控制,僅允許授權使用者訪問特定的資源;對遠端資源的利用如同本地資源一樣;提供全網統一的'記賬辦法;聯機地提供最近的網路說明資料;提供比單機更可靠的操作。

分散式系統又稱為分散式計算機系統或分散式資料處理系統,是由多個相互連線的處理單元組成的計算機系統,分散式系統是一個一體化的系統。在整個系統中有一個全域性的作業系統稱為分散式作業系統,它負責全系統的資源分配和排程、任務劃分、資訊傳輸、控制協調等工作,併為使用者提供一個統一的介面、標準的介面。

UNIX是多使用者互動式分時作業系統,在結構上分成核心層和實用層。其中,核心層小巧,設計得非常精幹簡潔,包括程序管理、儲存管理、裝置管理、檔案系統幾個部分,主要演算法經過反覆推敲,對其中包含的資料結構和程式進行了精心設計,只需佔用很小的儲存空間,並能常駐記憶體,保證了系統較高的工作效率;實用層豐富,是那些能從核心層分離出來的部分,包含豐富的語言處理程式和其他作業系統常見的實用程式(如編輯程式、除錯程式、有關係統狀態監控和檔案管理的實用程式等),它們以核外程式形式出現並在使用者環境下執行。

UNIX使用靈活的命令語言shell。shell屬於核外程式,同時作為一種程式設計語言,它具有許多高階語言所擁有的控制流能力,如if、for、while、until、case語句,以及對字串變數的賦值、替換、傳遞引數、命令替換等能力。使用者可以根據這些功能用shell語言寫出“shell”程式存入檔案,以後使用者只要打入相應的檔名就能執行它,這種方法易於系統的擴充。

UNIX系統採用樹型目錄結構來組織各種檔案及檔案的目錄,這樣的組織方式有利於輔存空間分配及快速查詢檔案,也可以為不同使用者的檔案提供檔案分享和存取控制的能力,且保證使用者之間安全高效的合作。

UNIX系統中的檔案是無結構的位元組序列。在預設情況下,檔案都是順序存取的,但使用者如果需要的話,也可為檔案建立自己需要的結構,使用者可以通過改變讀/寫指標對檔案進行隨機存取。UNIX將外部裝置與檔案一樣看待,外部裝置如同磁碟上的普通檔案一樣被訪問、共享和保護。

UNIX系統所有的實用程式層和核心層的90%程式碼是用C語言寫成的,這使得UNIX成為一個可移植的作業系統。作業系統的課移植性帶來了應用程式的可移植性,因而使用者的應用程式既可用於小型機,又可用於其他的微型機或大型機,從而大大提高了使用者的工作效率。UNIX也鼓勵使用者用UNIX的工具開發自己適合需要的環境,造成UNIX系統版本太多,應用程式的可移植性不能完全實現;UNIX的核心是無序模組結構,不是層次式的,故顯得十分複雜,不易修改和擴充;UNIX也缺少諸如實時控制、分散式處理、網路處理等能力,這一缺點也在不斷改進中。

程序是指一個具有獨立功能的程式關於某個資料集合的一次執行活動。程序是一個能獨立執行的單位,能與其他程序並行的活動。程序是競爭計算機系統有限資源的基本單位,也是進行處理機排程的基本單位。

程序是程式在處理機上的一次執行過程,它是一動態概念;程式是指令的有序集合,其本身沒有任何執行的含義,它是一個靜態概念。程序是有一定生命期的,它能夠動態地產生和消亡,即程序可由“建立”而產生,由排程而執行,因得不到資源而暫停,以致最後由“撤銷”而消亡;程式可以作為一種軟體資料而長期儲存。

在支援多工執行的作業系統中,活動的最小單位是程序。程序一定包含一個程式,因為程式是程序完成功能的邏輯描述;而一個程式可以對應多個程序。如果同一程式同時運行於若干不同的資料集合上,它將屬於若干個不同的程序。或者說,若干不同的程序可以包含相同的程式,即用同一程式對不同資料先後或同時加以處理,就對應於好幾個程序。

  檔案的邏輯結構可分為兩種形式:無結構的流式檔案、有結構的記錄式檔案。

其中,無結構的流式檔案是相關的有序字元的集合,檔案長度即為所含字元數。流式檔案不分成記錄,而是直接由一連串資訊組成。對流式檔案而言,它是按資訊的個數或以特殊字元為界進行存取的。流式檔案對作業系統而言,管理比較方便;對使用者而言,適於進行字元流的正文處理,也可以不受約束地靈活組織其檔案內部的邏輯結構。UNIX系統中的檔案採用流式結構,但為了使用方便,UNIX將流式檔案按512 B 的大小劃分為若干個邏輯記錄,從而將流式檔案結構轉換為記錄式檔案。

有結構的記錄式檔案在邏輯上總是被看成一組連續順序的記錄的集合。每個記錄由彼此相關的域構成。定長記錄檔案的長度可由記錄個數決定,變長記錄檔案的長度為各記錄長度之和。

TAG標籤:作業系統 #