操作系統概述


  操作系統(Operating System)是配置在計算機硬件上的第一層軟件,也是最基本的系統軟件,他可以控制和管理計算機系統的硬件和軟件資源,合理地組織和調度計算機的工作和資源的分配,並提供給用戶和其他的應用軟件一個方便的接口和環境,也可以理解為它提供給其他應用程序一個更簡單,方便的計算機模型。

  操作系統處處在計算機系統的位置可以用下圖表示:

                                                                           

 

  操作系統在整個計算機系統的作用可以從它所處的位置來看。

    1.操作系統處於軟件和硬件之間,作為計算機系統資源的管理者

      現在的計算機系統一般由一個或多個處理器、主存、鍵盤和鼠標,顯示器這樣的輸入輸出設備,網絡接口、打印機等外部設備,我們基本可以分為軟件和硬件資源,但更為常見的是分為四類:處理機、存儲器、I/o設備以及文件(包含各種數據和程序)。相應的,計算機的功能也是對這四種資源進行有效的管理。一個計算機系統可能同時為多個用戶提供服務,這樣多個用戶之間的服務請求可能出現沖突,而每個用戶都希望計算機系統快速處理自己的事物,所以OS的目標是安全、高效地進行資源管理。

    2.從操作系統向上看,操作系統實現對計算機資源的抽象

      操作系統為用戶程序提供一個方便的接口和環境,它的目標是為了方便用戶使用。這就要求操作系統隱藏對硬件操作地具體細節,實現對計算機硬件操作的多個層次地抽象模型。用戶與操作系統的接口可以分為用戶接口和程序接口。用戶接口是方便用戶能夠直接控制自己的作業,而程序接口是為用戶程序在執行中訪問系統資源而設置的。

      用戶接口可以再細分為聯機用戶接口,脫機用戶接口和圖形用戶接口(GUI)。聯機用戶接口由一組鍵盤操作命令和命令解釋程序組成,舉個常見的例子,Windows操作系統下Win+R鍵可以打開命令窗口,當我們在里面輸入一條指令后,計算機便會執行它。你輸入一條,它執行一條。而脫機命令接口是用戶先把要執行的命令寫到一塊,然后讓計算機一下子去全部執行完。圖形用戶接口我們就比較熟悉了,手機上有各種的圖標。

      程序接口是用戶程序訪取得操作系統服務的唯一途徑,當一個程序需要操作系統為它提供某種功能時,它可以去調用具有該功能的子程序(系統調用)。早期的系統調用都是用匯編程序提供的,只有在用匯編語言編寫的程序才能直接使用系統調用,但是在高級語言中,往往提供了與系統調用一一對應的庫函數。而對於一些用c語言編寫的操作系統可以直接使用系統調用。我們也可以認為程序接口就是由一組系統調用組成。

    3.從操作系統向下看,操作系統是對硬件系統的首次擴充

      操作系統通過對硬件系統的拓展,可以為用戶提供更加豐富多彩的功能。

  操作系統的成長歷程

    ~手工操作系統在該階段計算機的輸入輸出還是使用穿孔紙帶,用戶獨占全機,這與計算機的處理速度極不匹配,嚴重降低計算機系統資源利用率,即所謂的人機矛盾。

    ~單道批處理系統:為了解決人機矛盾,引入了脫機輸入輸出技術。該技術將用戶程序和數據在外圍機的作業下將紙帶上的數據輸入到磁帶,當CPU需要這些數據時,監督程序負責控制輸入輸出。監督程序便是操作系統的雛形。但此時內存中每個時刻只能有一道程序運行,CPU仍有大量時間等待輸入輸出,資源利用率仍很低。

    ~多道批處理系統:該系統一次調入多個程序到內存,這樣在CPU在等待一個進程的IO操作的空閑時間可以去處理其他的程序,這樣宏觀上看,多個程序在一段時間是同時都在執行的,這也是並發的概念,同時多個程序也在共享計算機的資源。該系統提高了系統資源利用率和系統的吞吐量,但該系統缺點是用戶需要等待的時間長,而且也沒有人機交互的能力,一旦將程序提交給計算機,直到程序運行結束,用戶都無法對自己的程序進行干預。

    ~分時操作系統:分時操作系統主要要解決的問題便是能夠人機交互。如果要進行人機交互,那么計算機應該能及時接收用戶的命令並能夠及時處理。要進行及時處理,那么同時執行的幾個程序應該同時存在在內存並且頻繁地獲得處理機。在這種情況下多道批處理系統就不再適用,而采用時間片的方式為各個作業服務。但該程序也有缺點,那就是分不清輕重緩急,不能優先處理緊急的任務。

    ~實時操作系統:它最主要的特征是將時間作為自己的參數,使系統能夠及時響應事物的請求,並在規定的時間內完成對作業的處理。根據對時間要求的精確程度,我們可以分為硬實時操作系統和軟實時操作系統。硬就是說一不二,對時間要求絕對嚴格,比如對導彈的控制。軟則比較有彈性,你偶爾晚一會也無所謂,比如你發在發QQ信息的時候。

    現在操作系統已經發展非常豐富,比如嵌入式操作系統,個人計算機操作系統,掌上計算機系統,網絡操作系統,分布式操作系統。

  操作系統的基本特征

  在多批道處理系統中,我們已經引入了並發共享的概念,我們可以說操作系統和程序並發是同時誕生的。這也是計算機操作系統最基本的兩個特征,同時兩者也互為依存。如果沒有辦法共享計算機系統資源,那么就沒有辦法並發執行,如果不並發執行,那么共享就沒有了意義。需要注意的是,並發在宏觀上是同時運行,而在微觀上則是交替執行。

  在並發的執行程序中,我們引入進程的概念,進程本質上就是操作系統執行的一個程序。假如有一個應用程序它包含計算程序和I/O程序,如果在沒有引入進程的話,這個應用程序只能順序執行,在執行計算程序的時候不能輸入輸出,同樣在進行I/O過程中也不能進行計算。但假如我們把計算程序和I/O程序看作兩個單獨的程序,即分別分配一個進程,這樣兩個程序就能並發執行。進程是系統在運行過程中能夠獨立運行並作為資源分配的最小單位,進程不僅僅只是一段程序,與每一個進程相關的是地址空間。在這個地址空間中存放着可執行程序和它所需要的數據,進程可以對這段地址空間進行讀和寫的操作。同時我們還必須創建一種數據結構(PCB/進程控制塊)來描述進程的基本情況和活動過程。這樣程序段、數據段和PCB就組成了進程實體。

  共享分為互斥共享方式和同時共享方式,注意兩者都是描述的是一個時間段對資源的共享方式,不要簡單認為同時共享是同一個時刻,在微觀上來看,它仍是交替的訪問。

  第三個特征是虛擬。虛擬就是把實的變成虛的,實的是真真切切存在的,而虛的則是用戶感受到的。虛擬技術包含時分復用技術和空分復用技術。時分復用技術,舉個例子,你的電腦可能有多個程序在運行,qq,微信,音樂播放器,但對於每個用戶來說,好像整個計算機處理機一直在為它服務一樣,這就是虛擬處理機技術,同樣的還有虛擬設備技術。空分復用技術,我們都知道計算機的主存空間並不大,但你仍可以在上面同時運行多個應用程序,好像你的計算機的內存空間和外存一樣大。

  第四個特征異步,異步是指在多道程序環境下,允許多個程序並發執行,但由於資源的有限,每個進程的執行過程都是走走停停,以不可預知的速度向前推進。只有系統擁有並發性,才有可能導致異步性。

  操作系統的體系結構

  人們在使用計算機的時候無時無刻不在給計算機下命令,但並不是十分清楚這些命令會不會對計算機造成損壞,有些是“人畜無害”,但有些濫用則會出現嚴重的后果。為了防止出現這樣的意外,計算機把命令或者成為指令分為特權指令和非特權指令。特權指令不允許用戶程序使用,只允許操作系統來使用。

  計算機在接收到一條指令需要先判斷它是不是特權指令,然后再判斷此時能不能去執行它。如何去判斷是否可以執行特權指令呢?我們可以將計算機的運行狀態分為用戶態和內核態,軟件中最基礎的部分操作系統是運行在內核態中,內核態也可以稱為管態和核心態。操作系統具有硬件的訪問權並可以執行所有指令,而其余的軟件部分則都工作在用戶態。同時注意操作系統提供的用戶接口程序也是工作在用戶態。計算機會用程序狀態寄存器(PSW)的某個標志位來標識現在計算機處於哪個狀態。

  那么操作系統的哪些功能是由內核程序來實現呢?操作系統的功能並不是所有都是必要的,那些是為了給用戶提供方便而非必須的功能為非內核功能,例如Windows操作系統提供給用戶的記事本,視頻播放等功能,但有一些則是極其重要,它們是操作系統的根基,為內核功能。內核功能包括時鍾管理,中斷處理,原語。那么實現這些內核功能的軟件就稱為內核,它時計算機配置的底層軟件,是操作系統最基本最核心的功能。有的操作系統內核實現的功能還有進程管理,存儲器管理,設備管理,這樣的內核成為大內核,而不包含這些的成為微內核。大內核的優點是不需要兩種運行狀態高頻切換,高性能,但代碼量大,組織混亂,不易維護,微內核則與大內核相反。

    

 


免責聲明!

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



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