1、前言算法
操做系統的重要性不言而喻,學習操做系統對咱們理解計算機的工做流程是很是有利的,也頗有利於咱們學習掌握其餘語言,由於語言中的不少概念都是直接和操做系統相關的,學好操做系統就是基礎中的基礎,因此,頗有必要好好掌握操做系統這門基礎知識。數據庫
2、何爲操做系統編程
操做系統(OS,Operating System)是配置在計算機硬件上的第一層軟件,是對硬件系統的首次擴充。它在計算機系統中佔據了重要地位,彙編程序、編譯程序、數據庫管理系統等系統軟件,都依賴於操做系統的支持,須要取得操做系統的服務。windows
3、操做系統的做用安全
爲何須要操做系統?能夠很簡單的會帶,由於爲了方便使用者使用計算機,因此須要操做系統,若是沒有操做系統,使用計算機將會無比的困難,由於機器只能識別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、操做系統的基本特性
操做系統最重要的特徵有併發、共享、虛擬和異步。其中,併發是最基本的特徵,其餘三個特徵都是以併發爲前提的。
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使用完打印機後,而且分配處理機才能運行,能夠看出,進程的執行一般不是一鼓作氣的,而是走走停停的方式。進程以不可預知的速度向前推動,此即進程的異步性。異步性也是操做系統的一個重要特徵。
5、微內核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採用客戶/服務器模式,有許多優勢,可是也存在一些缺點,如客戶進程與服務進程,服務進程與服務進程通訊時,都須要通過微內核,會存在屢次用戶/內核模式及上下文切換,這使得開銷較大。
說明:當客戶進程請求文件服務時,須要通過四次用戶態和系統態的切換,這樣使得開銷成本很大。爲了減小開銷,會把服務器移入到微內核中,這樣就只須要進行兩次切換便可,會減小系統開銷,可是會增長內核的容量。
6、總結
操做系統的基本知識就介紹到這裏,以後咱們會更深刻的介紹每個知識點,謝謝各位園友的觀看~