官术网_书友最值得收藏!

1.1 操作系統簡介

操作系統的理論是計算機科學中一個較為古老而又活躍的分支,是計算機科學與工程專業的核心課程,而操作系統的設計與實現則是軟件工程的基礎與核心,在計算機系統中占據著重要的地位。那么什么是操作系統?操作系統的作用是什么?實現這些作用的原理是什么?本章將對這些問題一一進行詳細介紹。

1.1.1 計算機系統組成

一個完整的計算機系統(無論是大型機、小型機還是微型機)均是由硬件系統和軟件系統兩部分組成。計算機硬件系統一般是由運算器、控制器、存儲器、輸入設備和輸出設備等部件組成,這些部件是用戶操作計算機的物質基礎和工作環境。沒有任何軟件支持的計算機稱之為裸機,不能做任何工作,必須為其配置一些必要的軟件才能使其工作。計算機系統所使用的各種軟件的集合稱為計算機軟件系統。而軟件是指為運行、維護、管理和應用計算機的所有程序和數據的總和。計算機的軟件一般可分為兩大類:系統軟件和應用軟件,其中系統軟件的功能主要是用來管理計算機、維護計算機和某些功能的運行,以及對程序進行翻譯、裝入等服務工作,包括操作系統、程序設計語言程序以及工具軟件等;應用軟件是指那些為專門解決某一方面問題而編寫的程序,或為用戶的某一特定應用而設計的程序。

計算機是硬件和軟件結合的產物,隨著計算機技術的發展,計算機硬件的功能越來越強,軟件資源也日趨豐富。計算機的硬件、軟件以及應用之間是一種層次結構的關系,其結構如圖1-1所示。

圖1-1 計算機系統組成

裸機(硬件)位于計算機系統的最內層,主要是計算機的各個硬件部分,是計算機工作的基礎;與其緊鄰的是操作系統,主要負責提供資源管理功能和服務功能,將系統各個部件有機地融合成為一個整體,從而使計算機成為功能強大、使用便捷的工具;其次是系統軟件(操作系統除外),主要以操作系統為依托實現各類程序的編譯、數據庫的管理以及一些與計算機密切相關的程序的操作;最外層為各種應用軟件(定制型、研發型),它們以操作系統作為支撐環境,同時能夠向用戶提供完成其各個進程所需的各種服務。

下面來詳細闡述這4部分的內容。

1.硬件

硬件是計算機應用的物質基礎,主要由中央處理器(Center Processing Unit,CPU)、存儲器、輸入/輸出(Input/Output,I/O)設備等組成。CPU是一種能夠解釋指令、執行指令并控制操作順序的硬件設備;存儲器存放指令和數據,并能由CPU直接隨機存取;I/O設備主要負責信息的傳輸,包括將數據從外部傳輸到計算機內,或將主存中的信息傳輸到計算機的外部設備。

計算機的硬件結構是由著名數學家馮.諾依曼于20世紀40年代提出來的,也就是著名的馮.諾依曼原理:程序存儲與程序控制。外界對計算機硬件的訪問、資源的控制以及各種應用是通過指令系統來實現的,而指令系統與硬件系統的組織結構又是密切相關的。為了能使操作系統高效運行,對硬件系統的組織結構進行不斷改進,指令系統也日益復雜和龐大,操作系統及其外層軟件通過執行這些指令訪問和控制各種硬件資源。

2.操作系統

操作系統是運行在裸機上的第一層軟件,主要負責所有硬件的分配、控制等工作,同時也為上層軟件的運行提供服務,從而為用戶與計算機之間建立友好的界面。操作系統不僅是裸機上面的第一層軟件,也是最基本的系統軟件,是對硬件系統功能的首次擴充。計算機硬件結構對操作系統的實現技術有著一定的影響和制約,因此操作系統密切依賴于計算機硬件,直接管理系統中各種硬件和軟件資源。操作系統還必須提供良好的、直觀的用戶界面以方便用戶的使用,從而提高計算機的使用效率。

3.系統軟件

系統軟件與操作系統的核心程序有所不同,這些程序通常存放在磁盤上,只有在需要運行時才載入內存。該層的主要功能是為應用軟件以及終端用戶自己定制、編寫的程序或數據提供服務。此外,計算機系統的管理員還可利用系統軟件對系統進行日常維護。

系統軟件是計算機系統的基本組成部分,通常由計算機系統的供應商提供,并隨硬件及操作系統一起出售。常用的系統軟件一般包括:文本編輯程序、裝配程序、查錯調試處理程序和程序設計語言。

4.應用軟件

應用軟件通常是由計算機用戶或軟件公司所編制,包括定制型和研發型兩類。如數據庫管理系統(如工資管理系統)、辦公自動化系統(如Office)、游戲軟件以及事務處理系統(如人事管理系統)等。這些應用軟件通常作為計算機系統的選件,根據用戶需求而進行有選擇性的購買。

1.1.2 操作系統概念

操作系統是管理軟、硬件資源,控制程序執行,改善人機界面,合理組織計算機工作流程和為用戶使用計算機提供良好運行環境的一種系統軟件。根據操作系統的定義可知,引入操作系統主要目的如下。

1)管理系統資源:操作系統能夠很好地管理系統中所有硬件、軟件資源。

2)擴充機器功能:操作系統能夠對硬件設施進行改造、擴充,擴大機器功能。

3)方便用戶使用:操作系統附著在硬件之上,與系統軟件比鄰,使計算機系統使用起來方便、快捷。

4)構筑開放環境:操作系統支持體系結構的可伸縮性和可擴展性,支持應用程序在不同平臺上的可移植性和可互操作性,從而構筑一個開放的環境。

5)提高系統效率:充分利用計算機系統的資源,提高計算機系統的效率。

由此可見,從系統管理人員的角度來看,引入操作系統是為了合理地組織計算機的工作流程;從用戶的角度來看,引入操作系統是為了給用戶使用計算機提供一個良好的界面,從而使用戶無須了解有關硬件和系統軟件的細節,就能方便靈活地使用計算機。其工作示意圖如圖1-2所示。

圖1-2 操作系統工作示意圖

操作系統本身就是重要的系統軟件,這種特殊的軟件與其他的系統軟件和應用軟件有所不同,它有以下特性。

1.并發性

所謂并發,是指兩個或兩個以上的任務在同一時間間隔內同時發生。與并發相對應的還有一個概念——并行,所謂并行是指兩個或兩個以上的任務在同一時刻發生。在單處理器系統中通過采用多道程序設計技術,可以實現硬件之間的并行操作和程序之間的并發執行。

硬件之間的并行操作是一個微觀概念,例如,當I/O設備在進行I/O操作的同時,CPU也可以進行一些計算等的工作;而程序之間的并發執行則是一個宏觀上的概念,也就是說,從宏觀上看,一段時間內有多道程序在同時運行,但從微觀上看,任意時刻處理器上最多只能有一道程序運行。即宏觀上多道程序在并發運行,而微觀上這些程序卻是在交替運行。

通常把能夠并發執行的程序稱為并發程序,相應的系統稱為并發系統。現代計算機系統是一種并發系統。操作系統作為并發系統的管理者,必須支持程序中的并發執行。操作系統的并發性有效地提高了系統資源的利用率和系統的吞吐量,但也導致了操作系統的復雜化,使得操作系統必須具有控制和管理各種并發活動的能力。

2.共享性

所謂共享,是指系統中的資源不為某一用戶所獨占,而是提供給多個用戶共同享用。操作系統是一種資源管理程序,對于多個用戶在活動期間所提出的各類系統資源請求(如CPU請求,數據的輸入/輸出請求等),其要負責對這些請求進行協調和分配。當多個用戶對同一個資源進行請求時,需要實現共享,由于系統資源的屬性不同,那么對資源的共享方式也有所不同,一般分為互斥共享和同時共享兩類。

(1)互斥共享

系統中的資源,可以提供給多個用戶作業使用,但是有一些資源在一段時間內只允許并且只能有一個用戶作業使用,其他需要訪問該資源的作業必須等待其釋放該資源后,才允許對該資源進行訪問。在一段時間內只允許一個用戶作業訪問的資源稱為臨界資源(如打印機),臨界資源只能被互斥共享。

(2)同時共享

同時共享是指在一段時間內,多個用戶作業可以同時使用系統中的某個資源。事實上,所謂“同時”也只是宏觀上的概念,微觀上仍然是多個作業交替地對資源進行訪問(如對磁盤存儲設備的訪問)。

簡而言之,互斥共享是在一段時間內獨占,而同時共享是一段時間內由多個作業同時使用。

3.不確定性

操作系統能處理隨機發生的多個事件,由于事件是隨機產生的,所以事件的先后順序會有多種可能,操作系統可以處理各種事件序列,保證多個任務井然有序地執行。

4.虛擬性

所謂的“虛擬”,主要是通過分時使用的方法把一個物理上的實體映射為若干個邏輯上的對應物。例如,在多道分時系統中,雖然物理上只有一個CPU,但每個終端用戶卻都認為自己擁有一個單獨的CPU在為其服務。這種虛擬性還可在系統其他地方出現,如虛擬存儲器、虛擬設備等。

1.1.3 操作系統發展簡介

操作系統是因為客觀需求而誕生的,隨著科學技術以及計算機技術的不斷發展而逐步完善,其功能逐步強大,在計算機系統中的地位也不斷提高。如今,操作系統已成為計算機系統必不可少的部分,并且成為計算機系統的核心。

根據計算機體系結構中邏輯元件的發展可將計算機的發展過程劃分為4個階段:電子管、晶體管、集成電路及大規模和超大規模集成電路,而操作系統的發展與計算機的體系結構是息息相關的。與計算機的發展相適應,操作系統也經歷了人工操作系統、批處理系統、多道程序系統、分時操作系統、實時操作系統、通用操作系統、網絡操作系統及分布式操作系統等階段,下面就簡單介紹一下計算機操作系統的發展歷史。

1.人工操作系統

第一代計算機結構的主要元器件是電子管,其運算速度慢,沒有操作系統,甚至也沒有任何軟件,用戶對機器的操作是通過直接用機器語言或匯編語言編寫程序來實現的,某一用戶上機后就開始獨占系統所有資源。

上機操作的大致過程如下:編好的程序或數據先經穿孔機送到紙帶或卡片上,然后將紙帶或卡片裝入紙帶輸入機或卡片輸入機等輸入設備上;經手工啟動輸入設備,把程序和數據輸入計算機內存,再通過控制臺啟動程序。若在程序運行過程中出現問題,可借助扳鍵和顯示查找問題,并利用扳鍵進行修改,然后再次啟動程序運行;程序運行完畢,打印機輸出計算結果,用戶取走并卸下紙帶或卡片,然后才能讓下一個用戶上機操作。

可見,用戶對計算機的操作基本采用人工操作方式。人工操作方式的特點如下。

1)用戶獨占資源。一臺計算機的全部硬件資源均由一個用戶所占用,不會出現資源被其他用戶占用而引起的等待現象。

2)工作方式為串行。用戶與用戶之間,程序與程序之間,操作與計算機運行、計算機各部件之間都是串行工作,系統資源的利用率極低。

3)CPU利用率不高。計算機在人的直接聯機干預下工作,當用戶進行人工操作時,CPU及內存等資源需空閑等待。

人工操作降低了計算機系統資源的利用率。同時,隨著計算機硬件技術的快速發展,CPU的高速度與I/O設備的低速度之間矛盾日益激化。后來引入脫機的輸入/輸出技術,在一定程度上緩解了這樣的矛盾。

2.批處理

在人工操作階段,計算機系統中沒有任何管理軟件,用戶直接承擔所有的運行管理和具體操作。隨著計算機技術的發展,計算機的運行速度有了很大的提高,組成計算機系統的部件和設備日益增多,規模日益龐大,導致人機矛盾日趨嚴重,如何減少系統的空閑時間,提高CPU的利用率成為十分迫切的任務。

為了提高主機的使用效率,解決人機矛盾,20世紀50年代末到60年代初出現了批處理系統。所謂批處理,是把用戶作業成批提交給系統,然后由系統根據監督程序進行作業運行的監控,使作業能夠條理、有序執行。早期的批處理可分為聯機批處理和脫機批處理兩種方式。

(1)聯機批處理

聯機批處理是將輸入/輸出(I/O)設備和主機直接相連,這種批處理方式由于作業可以進行自動轉接,所以在一定程度上減少了作業建立和人工操作的時間。但是輸入/輸出設備和主機之間仍處于串行工作,兩者的速度相差懸殊,因此,在作業的輸入和執行結果的輸出過程中,主機CPU仍然需要停止等待,這樣導致CPU資源存在著很大的浪費。

(2)脫機批處理

脫機批處理是在主機與輸入/輸出設備之間增加了一個衛星機,專門用來與低速的輸入輸出設備打交道。其具體操作過程:

1)低速的輸入設備通過衛星機把作業輸入到輸入磁帶。

2)輸入磁帶將信息送到主機。

3)主機工作,直到作業完成。

4)主機將結果送給輸出磁帶。

5)輸出磁帶通過衛星機將作業執行結果輸出到輸出設備。

該處理機制中高速的主機只需與速度相對較快的磁帶機相互通信,這樣主機與衛星機就可以并行工作,由此大大提高系統的處理能力。

批處理系統每次只調用一個用戶程序進入內存進行運行,稱之為單道運行。由于計算機系統對作業的處理是按順序一道一道處理用戶的作業,因此可能出現兩種情況:

●以計算為主的作業,由于輸入/輸出數據量少,導致外圍設備空閑。

●以輸入/輸出為主的作業,由于計算工作量少,導致主機空閑。

因此,計算機資源使用的效率仍然不高,為此出現了多道程序系統。

3.多道程序系統

多道程序系統是指在內存中允許同時存放多道作業,并允許這些作業合理搭配,交替運行,充分利用資源,提高效率。在批處理系統中采用多道程序設計技術,形成多道批處理系統。該系統將作業提交給系統,這些要處理的作業都存儲在外部存儲器中形成“后備隊列”,等待運行。需要調入作業時,系統根據一定的調度原則從后備隊列中選取多個作業調入內存運行。某個作業完成后,再調入一個或幾個作業,依次反復。這樣系統運行時,總是有作業不斷地進入系統、退出系統,形成作業流,從而大大提高了系統資源的利用率。

由此可見,多道批處理系統的優點是資源利用率高,系統的吞吐量大。多道程序系統標志著操作系統日漸成熟,操作系統先后出現了作業調度管理、處理器管理、存儲器管理、外部設備管理及文件系統管理等功能。但是,在多道程序系統中,并行運行的程序共享計算機系統的所有硬件、軟件資源,從而導致資源競爭現象的出現。因此,同步與互斥機制成為操作系統設計中的重要問題。

4.分時操作系統

隨著計算機技術和軟件技術的發展,針對多道批處理系統的不足,20世紀60年代中期產生了分時操作系統。分時技術就是把處理器的運行時間分成很短的時間片,按照時間片輪流把處理器分配給各個聯機作業使用,分時技術的應用是提高資源利用率的重要手段。早期著名的分時操作系統是1963年美國麻省理工學院研制的兼容分時系統(Compatible Time-Sharing System,CTSS)和1965年在ARPA的支持下MIT、貝爾實驗室和通用電氣公司聯合開發的多路信息與計算服務(Multiplexed Information and Computing Service,MULTICS)系統。

分時操作系統是基于主從式多終端的計算機體系結構。一臺功能強大的主計算機可以同時連接多個終端,滿足多個用戶同時上機操作。每個用戶通過自己所操作的終端,把用戶程序上傳至主計算機,主計算機反過來也通過終端向各用戶反饋其程序的運行情況。主計算機為各個終端上的用戶服務,采用的是時間分片的方式。雖然實際上只有一臺主計算機,但是每一個用戶在使用主計算機時都可以得到及時的服務響應,就感覺主計算機是在專門為自己服務,這就是分時操作系統。

分時操作系統中的分時概念不同于硬件設計中分時使用某個設備或部件,它是將主計算機CPU的運行時間分割成一個個微小時間片,把這些時間片依次輪流地分配給各個終端用戶的程序執行。雖然在微觀上用戶程序運行時是不連續的,但在宏觀上,多個用戶在共同使用主計算機,享受著主計算機為自己所提供的服務。分時操作系統具有多路性、獨立性、及時性以及交互性等優點,但是分時時間片的長短是權衡分時操作系統性能的重要指標,如何確定時間片的長短是操作系統發展過程中要解決的主要問題。

5.實時操作系統

隨著生活質量的提高,在計算機的應用中人們對計算機響應用戶事件的時間上又提出了及時響應的需求,為滿足這一需求問題,在20世紀60年代中期產生了實時操作系統。“實時”就是立即、及時的意思。實時操作系統是一種能在限定時間內對輸入數據進行快速處理并做出響應的計算機處理系統,而且能夠對所有實時設備和實時任務進行協調操作。實時操作系統主要應用于需要對外部事件進行及時響應并及時處理的領域,要求系統對輸入的及時響應,對輸出的按需提供,無延遲的處理。因此,響應時間對實時操作系統來說是最關鍵的性能指標。實時操作系統的主要特點是提供即時響應、獨立、多路、交互以及高可靠。

實時操作系統可以分為實時控制系統(自動數據采集及監測系統)和實時信息系統(航空訂票系統),兩者的區別在于服務對象的不同和對響應時間的要求不同。

6.通用操作系統

隨著計算機應用的日益廣泛,以多道批處理系統、分時操作系統以及實時操作系統為基礎,逐步出現了通用操作系統。

通用操作系統同時兼有多道批處理、分時處理及實時處理的功能。UNIX系統就是一個通用的多用戶分時交互型的操作系統的典型案例,其核心功能足以與許多大型的操作系統相媲美,核心層以外可以支持龐大的軟件系統。目前,廣泛使用的各種工作站級的操作系統,如SUN公司的Solaris、IBM公司的AIX,都是基于UNIX的操作系統;Microsoft公司的Windows系列操作系統,主要原理也是基于UNIX系統的;目前較為流行的Linux系統也是從UNIX演變而成的。

7.網絡操作系統

隨著計算機技術和網絡技術的不斷發展和完善,將不同地域的具有自治功能的多個計算機系統通過通信設備互相連接起來,實現信息交換、資源共享、可互操作以及協作處理,構成計算機網絡。連入網絡中的計算機不但能使用網絡上的其他資源,也可以使本機資源成為網絡上諸多用戶的共享資源。網絡環境的開放性打破了單機的封閉性,方便了用戶使用網絡,實現了用戶間的通信、資源共享,并提高了網絡資源的利用率,促進了網絡操作系統的誕生。

網絡操作系統是使網絡上各計算機能方便而有效地共享網絡資源,為網絡用戶提供各種服務的軟件和有關規程(如協議)的集合。網絡操作系統除了具備普通操作系統的功能之外,還具有網絡通信、資源管理、網絡服務、網絡管理以及網絡互聯的特殊功能。Linux是當今較為流行的網絡操作系統。

8.分布式操作系統

隨著程序設計環境、人機接口和軟件工程等技術的不斷發展,逐步出現了分布式操作系統,它是由高速局域網連接起來的多臺計算機(需要配置相應的操作系統——分布式操作系統)所組成。分布式操作系統與計算機網絡很相似,分布式操作系統也是通過通信設備將獨立功能的數據處理系統或計算機系統互連起來,可實現信息交換、資源共享和協作完成任務等。

分布式操作系統有以下幾方面的特點。

1)極強的系統處理能力。分布式操作系統為用戶提供存取系統中各軟件、硬件資源的能力,因此,處理器上一個用戶可以使用其他處理器上的資源,使資源共享更加方便、有效。

2)極快的處理速度。分布式操作系統能夠將待運行的進程分布到若干處理器上實現并發執行,極大地提高了處理速度。此外,還可以利用負載均衡機制將在某處理器上過載的進程,分散到負載較輕的處理器上運行,提高處理速度。

3)高可靠性。當系統中某臺處理器由于軟件或硬件故障而不能正常工作時,其他處理器會主動承擔該臺處理器的工作,使整個系統正常運行下去。一旦故障修復后,操作系統就會將該處理器立即添加到系統中,并使整個系統均衡工作。

主站蜘蛛池模板: 安仁县| 成武县| 分宜县| 馆陶县| 招远市| 十堰市| 玉溪市| 惠水县| 广汉市| 揭西县| 怀宁县| 云和县| 西藏| 深州市| 夏津县| 永清县| 旬邑县| 湘阴县| 阳城县| 沐川县| 郴州市| 阳原县| 平果县| 东宁县| 读书| 临湘市| 宾川县| 新竹县| 法库县| 鲁甸县| 潜山县| 罗定市| 黔西县| 东乡| 海城市| 南靖县| 浏阳市| 泸西县| 宣化县| 卢龙县| 常熟市|