操作係統基本概念
操作係統(英語:Operating System,簡稱OS)是管理和控製計算機硬件與軟件資源的計算機程序,是直接運行在“裸機”上的最基本的係統軟件,任何其他軟件都必須在操作係統的支持下才能運行。
操作係統是管理計算機硬件的程序,它還為應用程序提供基礎,並且充當計算機硬件和計算機用戶的中介。操作係統完成這些任務的方式多種多樣。大型機的操作係統設計的主要目的是為了充分優化硬件的使用率,個人計算機的操作係統是為了能支持從複雜遊戲到商業應用的各種事物,手持計算機的操作係統是為了給用戶提供一個可以與計算機方便交互並執行程序的環境。因此,有的操作係統設計是為了方便,有的設計是為了高效,而有的設計目標則是兼而有之。
1、操作係統做什麼
注:計算機係統結構作為從程序設計者角度所看到的計算機屬性,在計算機係統的層次結構中處於機器語言級;而計算機組織作為計算機係統結構的邏輯實現和物理實現,其任務就是圍繞提高性能價格比的目標,實現計算機在機器指令級的功能和特性。研究和建立各功能部件間的相互連接和相互作用,完成各個功能部件內部的邏輯設計等是邏輯實現的內容;把邏輯設計深化到元件、器件級,則是物理實現的內容。
計算機係統可以大致分為四個組成部分:計算機硬件、操作係統、係統程序與應用程序和用戶。
硬件為係統提供基本的計算資源,應用程序規定了用戶按何種方式使用這些資源,操作係統控製和協調各用戶的應用程序對硬件的使用。
從兩個視角探索操作係統:用戶視角和係統視角。
A、用戶視角:
對於PC用戶,係統設計是為了讓單個用戶單獨使用其資源,其目的是優化用戶所進行的工作。對於這種情況,操作係統的設計目的是為了用戶使用方便,性能是次要的,而且不在乎資源使用率。
對於大型機用戶,操作係統設計為資源使用做了優化:確保所有的CPU時間、內存和I/O都得到充分使用,並且確保沒有用戶使用超出其權限以外的資源。
對於工作站用戶,操作係統的設計目的是個人使用性能和資源使用率的折中。
對於手持計算機用戶,方便個人使用,最大化利用電池能源是操作係統設計的要點。
B、係統視角:
從係統視角,操作係統相當於資源分配器。操作係統管理CPU時間、內存空間等係統資源,在麵對許多甚至衝突的資源請求,操作係統必須決定如何為每個程序和用戶分配資源,以便計算機係統能有效而公平的運行。
2、計算機係統組織
計算機通過運算器、存儲器、控製器、輸入輸出子係統等主要功能部件的相互連接和相互作用,借以實現機器指令級的各種功能和特性。從最基本的功能和作用原理來說,計算機是在控製器的全麵控製下,接收經數字化編碼的輸入信息(程序和數據),把它存放在存儲器中,根據程序的要求對數據進行快速運算,產生結果數據輸出。因此,可以把運算器、存儲器、控製器、輸入輸出子係統看成是一台計算機的邏輯組成中最基本的功能部件。
存儲設備層次(按總線速率由高到低):
寄存器——高速緩存(Cache)——主存——磁盤——光盤——磁帶
3、計算機係統體係結構
通過采用的通用處理器的數量來分類。
A、單處理器係統
在單處理器係統中,有一個主CPU能夠執行一個通用指令集,包括來自用戶進程的指令。
B、多處理器係統
多處理器係統的優點:
增加吞吐量;規模經濟;增加可靠性。
分類:
非對稱多處理器(asymmetric multiprocessing)係統——主從關係;
對稱多處理器(symmetric multiprocessing)係統——對等關係。
C、集群係統
集群計算機共享存儲並通過局域網連接或更快的內部連接。
分類:
非對稱集群:一部分機器處於熱備份模式,其餘的機器運行應用程序。
對稱集群:兩台或多個主機都運行程序,互相監視。
4、操作係統結構
操作係統理論研究者有時把操作係統分成四大部分:
驅動程序:最底層的、直接控製和監視各類硬件的部分,它們的職責是隱藏硬件的具體細節,並向其他部分提供一個抽象的、通用的接口。
內核:操作係統內核部分,通常運行在最高特權級,負責提供基礎性、結構性的功能。
接口庫:是一係列特殊的程序庫,它們職責在於把係統所提供的基本服務包裝成應用程序所能夠使用的編程接口(API),是最靠近應用程序的部分。例如,GNU C運行期庫就屬於此類,它把各種操作係統的內部編程接口包裝成ANSI C和POSIX編程接口的形式。
外圍:是指操作係統中除以上三類以外的所有其他部分,通常是用於提供特定高級服務的部件。例如,在微內核結構中,大部分係統服務,以及UNIX/Linux中各種守護進程都通常被劃歸此列。
在這裏,需要介紹一些關於內核的知識。
內核是操作係統最核心最基礎的構件,內核結構往往對操作係統的外部特性以及應用領域有著一定程度的影響。
內核的結構可以分為單內核、微內核、混合內核、外內核等。
單內核(Monolithic kernel),又稱為宏內核。此架構的特性是整個核心程序都是以核心空間(Kernel Space)的身份及監管者模式(Supervisor Mode)來運行(宏內核被實現為運行在單一地址空間的單一的進程,核心提供的所有服務,都以特權模式,在這個大型的核心地址空間中運作,這個地址空間被稱為核心空間(kernel space))。相對於其他類型的操作係統架構,如微核心架構或混核心架構等,這些核心會定義出一個高級的虛擬接口,由該接口來涵蓋描述整個電腦硬件,這些描述會集合成一組硬件描述用詞,有時還會附加一些係統調用,如此可以用一個或多個模塊來實現各種操作係統服務,如進程管理、共時(Concurrency)控製、存儲器管理等。
微內核(Microkernel),又稱為微核心。微內核結構是1980年代產生出來的較新的內核結構,強調結構性部件與功能性部件的分離。微核心的設計理念,是將係統服務的實現,與係統的基本操作規則區分開來。它實現的方式,是將核心功能模塊化,劃分成幾個獨立的進程,各自運行,這些進程被稱為服務器(service)。所有的服務器進程,都運行在不同的地址空間。隻有需要絕對特權的進程,才能在具特權的運行模式下運行,其餘的進程則在用戶 空間運行。
混合內核(Hybrid kernel)像微內核結構,隻不過它的組件更多的在核心態中運行,以獲得更快的執行速度。混合內核,一種操作係統內核架構,結合整塊性核心與單核心兩種設計方法。它的架構實作方式接近於整塊性核心。最有名的混合核心為Windows NT核心與XNU。
外內核(Exokernel)的設計理念是盡可能的減少軟件的抽象化,這使得開發者可以專注於硬件的抽象化。外核心的設計極為簡化,它的目標是在於同時簡化傳統微內核的訊息傳遞機製,以及整塊性核心的軟件抽象層。外核的目標就是讓應用程序直接請求一塊特定的物理空間,一塊特定的磁盤塊等等。係統本身隻保證被請求的資源當前是空閑的,應用程序就允許直接存取它。
在眾多常用操作係統之中,除了QNX和基於Mach的UNIX等個別係統外,幾乎全部采用單內核結構,例如大部分的Unix、Linux,以及Windows(微軟聲稱Windows NT是基於改良的微內核架構的,盡管理論界對此存有異議。
5、操作係統操作
*雙重模式操作*:
為了確保操作係統地正常執行,必須區分操作係統代碼和用戶定義代碼的執行。許多操作係統所采取的方法是提供硬件支持以允許區分各種執行模式。
至少需要兩種獨立的操作模式:用戶模式(user mode)和監督程序模式(monitor mode)(也稱為管理模式(supervisor mode)、係統模式(system mode)或特權模式(privileged mode))。在計算機硬件中增加一個稱為模式位(mode bit)的位以表示當前模式:監督程序模式(0)和用戶模式(1)。有了模式位,就可以區分操作係統所執行的任務和用戶所執行的任務。
係統引導時,硬件開始處於內核模式。接著,裝入操作係統,開始在用戶模式下執行用戶進程。一旦出現陷阱或中斷,硬件會從用戶模式切換到內核模式。因此,隻要操作係統獲得了對計算機的控製,它就處於內核模式。係統在將控製交還給用戶程序時會切換到用戶模式。
雙重模式操作提高了保護操作係統和用戶程序不受錯誤用戶程序影響的手段。其實現為:將能引起損害的機器指令作為特權指令。如果在用戶模式下試圖執行特權指令,那麼硬件並不執行該指令,而是認為該指令非法,並將其以陷阱的形式通知操作係統。
係統調用為用戶程序請求操作係統代表用戶程序完成預留給操作係統的任務提供了方法。係統調用通常采用陷阱到中斷向量中的一個指定位置的方式。當係統調用被執行時,硬件會將它作為軟件中斷。控製權會通過中斷向量轉交到操作係統的中斷處理程序,模式位設置成內核模式。係統調用服務程序是操作係統的一部分。內核檢查中斷指令以確定發生了什麼係統調用;參數表示用戶程序請求什麼類型的服務。請求所需要的其他信息可通過寄存器、堆棧或內存來傳遞。內核檢驗參數是否正確和合法,再執行請求,然後將控製返回到係統調用之後的指令。
6、進程管理
進程是係統工作的單元。係統由多個進程組成,其中一些是操作係統進程(執行係統代碼),其餘的是用戶進程(執行用戶代碼)。所有這些進程可以潛在地並發執行,如通過在單CPU上采用CPU複用來實現。
操作係統負責下述與進程管理相關的活動:
*創建和刪除用戶進程和係統進程;
*掛起和重啟進程;
*提供進程同步機製;
*提供進程通信機製;
*提供死鎖處理機製。
7、內存管理
內存是現代計算機係統操作的中心。內存通常是CPU所能直接尋址和訪問的唯一大容量存儲器。
操作係統負責下列有關內存管理的活動:
*記錄內存的哪部分正在被使用及被誰使用;
*當有內存空間是,決定哪些進程可以裝入內存;
*根據需要分配和釋放內存空間。
8、存儲管理
操作係統對存儲設備上的物理屬性進行了抽象,定義了邏輯存儲單元,即文件。操作係統將文件映射到物理介質上,並通過這些物理介質來訪問這些文件。
A、文件係統管理
文件管理是操作係統最為常見的組成部分。文件是由其創建者定義的一組相關信息的集合。通常,文件表示程序(源程序和目標程序)和數據。
操作係統負責下列有關文件管理的活動:
*創建和刪除文件;
*創建和刪除目錄來組織文件;
*提供操作文件和目錄的原語;
*將文件映射到二級存儲上;
*在穩定介質上備份文件。
B、大容量存儲器管理
絕大多數現代計算機係統都采用硬盤作為主要非易失存儲介質來存儲程序和數據。許多程序都存儲在硬盤上,要執行時才調入內存,在執行時將硬盤作為處理的來源地和目的地。因此,硬盤的適當管理對計算機係統尤為重要。
操作係統負責下列有關硬盤管理的活動:
*空閑空間管理;
*存儲空間分配;
*硬盤調度。
C、高速緩存
高速緩衝存儲器是存在於主存與CPU之間的一級存儲器,由靜態存儲芯片(SRAM)組成,容量比較小但速度比主存高得多,接近於CPU的速度。硬件高速緩存基於著名的局部性原理,該原理既適用於程序結構也適用於數據結構。在有高速緩衝存儲器的計算機係統中,中央處理器存取主存儲器的地址劃分為行號、列號和組內地址三個字段。於是,主存儲器就在邏輯上劃分為若幹行;每行劃分 為若幹的存儲單元組;每組包含幾個或幾十個字。高速存儲器也相應地劃分為行和列的存儲單元組。二者的列數相同,組的大小也相同,但高速存儲器的行數卻比主 存儲器的行數少得多。
高速緩存主要由三大部分組成:
*Cache存儲體:存放由主存調入的指令與數據塊。
*地址轉換部件:建立目錄表以實現主存地址到緩存地址的轉換。
*替換部件:在緩存已滿時按一定策略進行數據塊替換,並修改地址轉換部件。
操作係統執行高速緩存管理,對高速緩存大小和置換策略的仔細選擇可以極大提高性能。
D、I/O子係統
I/O子係統包括如下幾個部分:
*一個包括緩衝、高速緩存和假脫機的內存管理部分;
*通用設備驅動器接口;
*特定硬件設備的驅動程序。
9、保護和安全
保護是一種控製進程或用戶對計算機資源的訪問的機製。這個機製必須為強加控製提供一種規格說明方法和一種強製執行方法。
安全的主要工作是防止係統不受外部或內部攻擊。這些攻擊範圍很廣,包括病毒和蠕蟲、拒絕服務攻擊、身份偷竊、服務偷竊。
10、分布式係統
分布式係統是將一組物理上分開來的、各種可能的異構的計算機係統通過網絡連接在一起,為用戶提供係統所維護的各種資源的計算機的集合。
分布式係統(distributed system)是建立在網絡之上的軟件係統。正是因為軟件的特性,所以分布式係統具有高度的內聚性和透明性。因此,網絡和分布式係統之間的區別更多的在於高層軟件(特別是操作係統),而不是硬件。內聚性是指每一個數據庫分布節點高度自治,有本地的數據庫管理係統。透明性是指每一個數據庫分布節點對用戶的應用來說都是透明的,看不出是本地還是遠程。
網絡操作係統(Network Operating System)提供跨網絡的文件共享、包括允許不同計算機上的進程進行消息交換的通信方法等功能。
11、專用係統
*實時嵌入式係統
*多媒體係統
*手持係統
12、計算環境
*傳統計算
*客戶機-服務器計算
*對等計算
*基於Web的計算
最後更新:2017-04-03 05:39:27