操作系統的概念、特征、功能和結構
一、操作系統的概念
- 在信息化時代,軟件被稱為計算機系統的靈魂。而作為軟件核心的操作系統,已經與現代計算機系統密不可分、融為一體。計算機系統自下而上可粗分為四個部分:硬件、操作系統、應用程序和用戶。操作系統管理各種計算機硬件,為應用程序提供基礎,並充當計算機硬件和用戶的中介。
- 硬件,如中央處理器、內存、輸入輸出設備等,提供了基本的計算資源。應用程序,如字處理程序、電子制表軟件、編譯器、網絡瀏覽器等,規定了按何種方式使用這些資源來解決用戶的計算問題。操作系統控制和協調各用戶的應用程序對硬件的使用。
- 綜上所述,操作系統是指控制和管理整個計算機系統的硬件和軟件資源,並合理的組織調度計算機的工作和資源的分配,以提供給用戶和其他軟件方便的接口和環境集合。計算機操作系統是隨着計算機研究和應用的發展逐步形成並發展起來的,它是計算機系統中最基本的系統軟件。
二、操作系統的特征
操作系統是一種系統軟件,但與其他的系統軟件和應用軟件有很大的不同,他有自己的特殊性即基本特征,操作系統的基本特征包括並發、共享、虛擬和異步。這些概念對理解和掌握操作系統的核心至關重要,將一直貫穿於各章節中。
並發
並發是指兩個或多個事件在同一時間間隔內發生,在多道程序環境下,一段時間內宏觀上有多個程序在同時執行,而在同一時刻,單處理器環境下實際上只有一個程序在執行,故微觀上這些程序還是在分時的交替進行。操作系統的並發是通過分時得以實現的。操作系統的並
發性是指計算機系統中同時存在多個運行着的程序,因此它具有處理和調度多個程序同時執行的能力。在操作系統中,引入進程的目的實施程序能並發執行。
共享
資源共享即共享,是指系統中的資源可供內存中多個並發執行的進程共同使用。共享可以分為以下兩種資源共享方式。
1)互斥共享方式
系統中的某些資源,如打印機、磁帶機,雖然他們可以提供給多個進程使用,但為使所打印的內容不致造成混淆,應規定在同一段時間內只允許一個進程方位該資源。
為此,當進程a訪問某資源時,必須先提出請求,如果此時該資源空閑,系統便可將之分配給進程a使用,伺候若再有其他進程也要訪問該資源(只要a未用完)則必須等待。僅當進程a訪問完並釋放該資源后,才允許另一進城對該資源進行訪問。計算機系統中的大所屬物理設
備,以及某些軟件中所用的棧、變量和表格,都屬於臨界資源,他們都要求被互斥的共享。
2)同時訪問方式
系統中還有一種資源,允許在一段時間內由多個進程“同時”對它進行訪問。這里所謂的“同時”往往是宏觀上的,而在微觀上,這些進程可能是交替的對該資源進行訪問即“分時共享”。典型的可供多個進程同時訪問的資源是磁盤設備,一些用重入碼編寫的文件也可以被“同時”共享,即若干個用戶同時訪問該文件。
並發和共享是操作系統兩個最基本的特征,這兩者之間又是互為存在條件的:1資源共享是以程序的並發為條件的,若系統不允許程序並發執行,則自然不存在資源共享的問題;2若系統不能對資源共享實施有效地管理,也必將影響到程序的並發執行,甚至根本無法並發執行。
虛擬
虛擬是指把一個物理上的實體變為若干個邏輯上的對應物。物理實體是實的,即實際存在的;而后者是虛的,是用戶感覺上的事物。相應的,用於實現虛擬的技術,成為虛擬技術。在操作系統中利用了多種虛擬技術,分別用來實現虛擬處理器、虛擬內存和虛擬外部設備。在虛擬處理器技術中,是通過多道程序設計技術,讓多道程序並發執行的方法,來分時使用一台處理器的。此時,雖然只有一台處理器,但他能同時為多個用戶服務,是每個終端用戶都認為是有一個中央處理器在為他服務。利用多道程序設計技術,把一台物理上的CPU虛擬為多台邏輯上的CPU,稱為虛擬處理器。
類似的,可以通過虛擬存儲器技術,將一台機器的物理存儲器變為虛擬存儲器,一邊從邏輯上來擴充存儲器的容量。當然, 這是用戶所感覺到的內存容量是虛的,我們把用戶所發哦絕倒的存儲器程序虛擬存儲器。
還可以通過虛擬設備技術,將一台物理IO設備虛擬為多台邏輯上的IO設備,並允許每個用戶占用一台邏輯上的IO設備,這樣便可使原來僅允許在一段時間內有一個用戶訪問的設備,變為在一段時間內允許多個用戶同時訪問的共享設備。因此操作系統的虛擬技術可歸納為:時分復用技術和空分復用技術。
異步
在多道程序環境下,允許多個程序並發執行,但由於資源有限,進程的執行不是一貫到底,而是走走停停,以不可預知的速度向前推進,這就是進程的異步性。
異步性使得操作系統運行在一種隨機的環境下,可能導致進程產生於時間有關的錯誤。但是只要運行環境相同,操作系統必須保證多次運行進程,都獲得相同的結果。
三、操作系統的目標和功能
為了給多道程序提供良好的運行環境,操作系統應具有幾方面的功能:處理器管理、存儲器管理、設備管理和文件管理。為了方便用戶使用操作系統,還必須向用戶提供接口。同時操作系統可用來擴充機器,以提供更方便的服務、更高的資源利用率。
操作系統作為計算機系統資源的管理者
1) 處理器管理
在多道程序環境下,處理器的分配和運行都是以進程為基本單位,因而對處理器的管理可歸結為對進程的管理。進程管理的主要功能有:進程控制,進程同步,進程通信,死鎖處理,處理器調度等。
2) 存儲器管理
存儲器管理的主要任務是位多通道程序的運行提供良好的環境,方便用戶使用以及提高內存的利用率。因此,存儲器管理應具備:內存分配、地址映射、內存保護與共享和內存擴充等。
3) 文件管理
文件管理主要包括文件的存儲空間管理、目錄管理及文件讀寫管理及保護等。
4) 設備管理
設備管理的主要任務就是完成用戶的IO請求,方便用戶使用各種設備,並提高設備的利用率,主要包括混充管理、設備分配、設備處理和虛擬設備等功能。
操作系統作為用戶與計算機硬件系統之間的接口
為方便用戶使用操作系統,操作系統還提供了用戶接口。操作系統提供的接口主要分為兩類:一類是命令接口,用戶利用這些操作命令來組織和控制作業的執行;另一類是程序接口,編程人員可以使用它們來請求操作系統服務。
1)命令接口
使用命令接口進行作業控制的主要方式有兩種:按作業控制方式的不同,可以將命令接口分為聯機命令接口和脫機命令接口。
2)程序接口
程序接口由一組系統調用命令組成。用戶通過在程序中使用這些系統調用命令拉i請求操作系統提供的服務。用戶在程序中可以直接使用這組系統調用命令向系統提出各種服務請求,如使用各種外部設備,進行有關磁盤文件的操作,申請分配和收回內存 以及其他各種控制要求。
所謂系統調用就是用戶在程序中調用操作系統所提供的一些子功能。具體的講,系統調用就是通過系統調用命令中斷現行程序,而轉去執行響應的子程序,以完成特定的系統功能;系統調用完成后,返回程序的斷點以繼續執行。系統調用命令是作為擴充機器命令提供的,目的是增強系統功能,方便用戶使用。而起通過系統調用的方式來使用系統功能,可以保證系統的穩定性和安全性,防止用戶隨意更改或訪問系統的數據或命令。因此,在一些計算機系統中,把系統調用命令成為廣義指令。廣義指令與機器指令在性質上是不同的,機器指令使用硬件電路直接實現的,而廣義命令則是由操作系統提供的一個或多個子程序模塊實現的。顯然,系統調用屬於核心態指令。沒有任何軟件支持的計算機成為裸機,它僅構成計算機系統的物質基礎,而實際呈現在用戶面前的計算機系統是經過若干層軟件改造的計算機。裸機在最里層,他的外面是操作系統,有操作系統提供的資源管理功能和方便用戶的各種服務功能,將裸機改造成功能更強、使用更方便的機器,通常把覆蓋了軟件的機器成為擴充機器,又稱之為虛擬機。
四、操作系統的結構
像現在操作系統這樣龐大而復雜的系統,為了能正常工作且容易修改和維護,在實現前必須認真設計操作系統的結構。操作系統發展至今,其設計結構可以分成以下幾類:簡單結構、模塊化結構、分層式結構、微內核結構。