【操作系統】操作系統綜述(一)


一、前言

  操作系統的重要性不言而喻,學習操作系統對我們理解計算機的工作流程是非常有利的,也很有利於我們學習掌握其他語言,因為語言中的很多概念都是直接和操作系統相關的,學好操作系統就是基礎中的基礎,所以,很有必要好好掌握操作系統這門基礎知識。

二、何為操作系統

  操作系統(OS,Operating System)是配置在計算機硬件上的第一層軟件,是對硬件系統的首次擴充。它在計算機系統中占據了重要地位,匯編程序、編譯程序、數據庫管理系統等系統軟件,都依賴於操作系統的支持,需要取得操作系統的服務。

三、操作系統的作用

  為什么需要操作系統?可以很簡單的會帶,因為為了方便使用者使用計算機,所以需要操作系統,如果沒有操作系統,使用計算機將會無比的困難,因為機器只能識別0,1二進制碼,而普通人不可能去通過二進制碼而計算機打交道,所以必須需要操作系統,這樣普通用戶才能很好的使用計算機,比如windows操作系統,Linux操作系統,它們都使得我們使用計算機變得非常的簡單。既然需要在計算機中裝操作系統,那么操作到底有什么作用呢。

  3.1 OS作為用戶與計算機硬件系統之間的接口

  用戶可以通過如下三種方式使用計算機。

  ① 命令方式;OS提供了命令接口,用戶可輸入命令取得操作系統的服務,並控制用戶程序的運行。

  ② 系統調用方式;OS提供了系統調用,用戶可在應用程序中調用系統調用,來實現與操作系統的通信,並取得它的服務。

  ③ 圖形、窗口方式;這應該是用戶最熟悉的一種方式,只需要通過鼠標簡單的點擊就能夠實現與操作系統之間的通信,並取得它的服務。

  OS作為接口示意圖如下。

  

  3.2 OS作為計算機系統資源的管理者

  OS管理的計算機系統資源如下。

  ① 處理器;用於分配和控制處理器。

  ② 存儲器;負責內存的分配與回收。

  ③ I/O設備;負責I/O設備的分配與操縱。

  ④ 文件管理;負責文件的存取、共享和保護。

  3.3 OS實現了對計算機資源的抽象

  若在計算機上沒有安裝任何軟件,那么用戶需要面向硬件接口進行編程,那是相當的痛苦,為了方便使用硬件設備,則覆蓋了一層I/O設備管理軟件,該軟件提供Read/Write接口,用戶通過此接口就可以使用該硬件設備進行數據的輸入和輸出了,這就方便了很多。還可以覆蓋一層文件管理軟件並提供相應的操作接口,用戶則可以用戶接口去操作文件,而不用去了解具體的細節。OS就是由這些軟件組成,其屏蔽了具體的硬件的細節,提供統接口供用戶調用,通過該接口就可以輕松的訪問操縱硬件資源。

四、操作系統的基本特性

  操作系統最重要的特征有並發、共享、虛擬和異步。其中,並發是最基本的特征,其他三個特征都是以並發為前提的。

  4.1 並發性  

  提到並發,就自然而然的會提到並行,兩者到底有怎樣的區別呢。

  並行性是指兩個或多個事件在同一時刻發生。

  並發性是指兩個或多個事件在同一時間間隔發生。

  有兩者的概念可知,在單處理器計算機上,多道程序會交替運行,是並發的;但是每一個時刻最多只有一道程序運行,是並行的。而在多處理器計算機上,同一時刻會有多到程序同時運行,是並行的。

  用戶編寫好的程序交給計算機運行,從用戶的角度看,計算機運行的是程序,但是,實際上,在計算機中運行的是線程。因為程序時靜態實體,不能被處理器調用獨立運行,更不能與其他程序並發執行。實際上,計算機會為每個程序建立進程,然后為每一個進程建立線程,處理器調度線程,從而到達運行程序的效果。

  而進程與線程也是一個容易混淆的概念。進程是操作系統分配資源的基本單位,線程是獨立運行和獨立調度的基本單位,線程基本上不占據資源,一個進程的多個線程共享該進程的資源。關於進程與線程,之后還會具體的介紹。

  4.2 共享性

  共享是指操作系統中的資源可供內存中多個並發執行的進程(線程)共同使用,這種資源的共同使用就叫做資源共享。而根據各種資源的不同屬性,進程對資源利用的方式也不相同,目前實現資源共享的方式有如下兩種。

  1. 互斥共享方式

  互斥共享是指當資源被一個進程A占用時,其他想用使用該資源的進程B就只能等待,只有進程A使用完該資源后,進程B才能夠使用該資源,這種共享方式就叫做互斥式共享,把這種資源叫做臨界資源或獨占資源。如打印機就屬於臨界資源。

  2. 同時訪問方式

  某一資源在一段時間內可由多個進程"同時"訪問,這種"同時"是宏觀上的,在微觀上,這些進程可能是交替對該資源進行訪問,磁盤設備就是這類資源。

  4.3 虛擬技術

  虛擬就是通過某種技術把一個物理實體轉變為若干個邏輯上的對應物。物理實體是實際存在的,邏輯上的對應物是虛擬的,現在主要有兩種虛擬技術,時分復用和空分復用技術。

  1. 時分復用技術

  時分復用技術可以用來實現虛擬處理機、虛擬設備等,用來提高資源的利用率。

  虛擬處理機技術。虛擬處理機技術借助多道程序設計技術,即為每一道程序建立一個進程,讓多道程序並發執行,從而達到分時使用一台計算機,這台計算機能夠同時為多個用戶服務,使得每個終端用戶都認為有一個處理機專門為他服務。

  虛擬設備技術。通過虛擬設備技術將一台物理I/O設備虛擬為多態邏輯上的I/O設備,並允許用戶占用一台邏輯上的I/O設備,這樣可以允許在一段時間內由一個用戶訪問的設備變為在一段時間內允許多個用戶同時訪問的共享設備。

  2. 空分復用技術

  空分復用技術可以用來實現虛擬磁盤、虛擬存儲等,用來提高資源利用率。

  虛擬磁盤技術。通過虛擬磁盤技術可以將一個硬盤虛擬為多台虛擬磁盤,這樣使用起來既安全又方便。如將一塊硬盤划分為C、D、E等邏輯盤。

  虛擬存儲器技術。利用存儲器的空閑空間來存放程序,提高內存利用率。還可以通過虛擬存儲器技術(實質上是時分復用技術)在邏輯上擴大存儲器的容量,它可以使得一道程序通過時分復用技術在遠小於它的內存空間中運行。

  時分復用或空分復用中邏輯設備數為N,那么每台虛擬設備速速必然等於或低於物理設備速度的1/N。

  4.4 異步性

  在多道程序環境下,允許多個進程並發執行,但只有進程在獲得所需的資源后方可執行,如正在執行的進程A提出打印請求,需要使用打印機,但是此時進程B正在使用打印機,故此時進程A只能等待並且放棄處理機資源,當進程B使用完打印機后,並且分配處理機才能運行,可以看出,進程的執行通常不是一氣呵成的,而是走走停停的方式。進程以不可預知的速度向前推進,此即進程的異步性。異步性也是操作系統的一個重要特征。

五、微內核OS結構

  為提高操作系統的正確性、靈活性、易維護性、可擴充性,在現代操作系統結構設計中,即單處理機環境下,大多采用了基於客戶/服務器模式的微內核結構,將操作系統划分為兩個部分:微內核和多個服務器,對微內核的描述如下。

  5.1 微內核的特點

  1. 足夠小的內核

  內核是指經過精心設計、能實現現代OS最基本核心功能的部分。微內核並不是一個完整的OS,而只是操作系統中最基本的部分,它通常用於實現與硬件緊密相關的處理、實現一些比較基本的功能、負責客戶和服務器之間的通信。

  2. 基於客戶/服務器模式

  將操作系統中最基本的功能放入內核中,把其他絕大部分功能放在微內核外面的一組服務器(進程)中實現。如用於提供對進程進行管理的進程服務器,提供對虛擬存儲器管理的虛擬存儲器服務器,提供I/O設備管理的I/O設備管理服務器。他們都是被作為進程來實現的,運行在用戶態,客戶與服務器之間是借助微內核提供的消息傳遞機制來實現信息交互的

  說明:可以看到客戶進程與服務器是通過微內核來完成通信的。

  3. 應用"機制與策略分離"原理

  所謂機制,是指實現某一功能的具體執行結構,而策略,則是在機制的基礎上,借助於某些參數或算法來實現該功能的優化,或達到不同的功能目標。通常,機制處於一個系統的基層,而策略則處於系統的高層。在微內核系統中,機制通常放在OS的微內核中。

  4. 采用面向對象技術

  利用面向對象技術的抽象和隱蔽原則來控制系統的復雜性,利用對象、封裝、繼承等概念來確保操作系統的正確性、可靠性、易修改性等。

  5.2 微內核的基本功能

  1. 進程(線程)管理

  為實現進程(線程)調度功能,必須在進程管理中設置一個或多個進程(線程)優先級隊列,能將指定優先級進程(線程)從所在隊列中取出,並將其投入執行。由於這部分屬於調度功能的機制部分,應將它放入微內核中。而如何確定每類用戶進程的優先級,以及如何修改他們的優先級,都是屬於策略問題,可將他們放在微內核外的進程管理服務器中。由於進程之間的通信功能是微內核OS最基本的功能,因此幾乎所有的微內核OS都將進程通信功能放在微內核中,此外,還將進程的切換、線程的調度、以及處理機之間的同步功能也放入微內核中。

  2. 低級存儲器管理

  在微內核中,配置了最基本的低級存儲器管理機制。如用於將用戶控件的邏輯地址變換Wie內存空間的物理地址的頁表機制和地址變換機制,這部分是依賴於機器的,因此放入微內核匯中,而采取何種頁面算法、采用何種內存分配和回收策略都是具體的策略,放在微內核外的存儲器管理服務器中去實現。  

  3. 中斷和陷入處理

  微內核可以捕獲所發生的中斷和陷入事件,並進行相應的前期處理。如進行中斷現場保護,識別中斷和陷入的類型,然后將有關事件的信息轉化成消息后,把它發送給相關的服務器。有服務器根據中斷和陷入的類型,調用相應的處理程序來進行后期處理。

  5.3 微內核存在的問題

  微內核OS采用客戶/服務器模式,有許多優點,但是也存在一些缺點,如客戶進程與服務進程,服務進程與服務進程通信時,都需要經過微內核,會存在多次用戶/內核模式及上下文切換,這使得開銷較大。

  說明:當客戶進程請求文件服務時,需要經過四次用戶態和系統態的切換,這樣使得開銷成本很大。為了減少開銷,會把服務器移入到微內核中,這樣就只需要進行兩次切換即可,會減少系統開銷,但是會增加內核的容量。

六、總結

  操作系統的基本知識就介紹到這里,之后我們會更深入的介紹每一個知識點,謝謝各位園友的觀看~ 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM