1.首先了解什麼是OS?算法
操做系統(Operating System OS)是配置在計算機硬件上的第一層軟件,是對硬件系統的首次擴充。其主要做用是管理好這些設備, 提升它門的利用率和系統的吞吐量,並未用戶和應用程序提供一個簡單的接口, 便於用戶使用。服務器
2.OS的目標與做用併發
目標:方便性 有效性 可擴充性 開放性異步
做用:爲用戶與計算機硬件系統之間的接口;優化
做爲家算計系統資源的管理者:硬件資源和軟件資源 處理機 存儲器 I/O設備 以及文件(數據和程序)spa
實現了對計算機資源的抽象操作系統
3.OS的基本特性線程
1.併發(Concurrence):接口
並行性:指兩個或多個事件在同一時刻發生。隊列
併發性:指兩個或多個事件在同一時間間隔內發生。
2.共享(Sharing):
互斥共享方式:雖然有多個進程或線程可使用 可是在規定的一段時間內 值容許一個進程訪問該資源。 又稱爲臨界資源。
同時訪問方式:餘怒子啊一段時間內由多個額進程」同時「對他們進行訪問。
併發和共享是多用戶/多任務OS的兩個最基本特徵。
3.虛擬(Virtual):
時分複用技術:(多道程序技術)是經過利用處理機的空閒事件運行其餘程序,提升了處理機的利用率。
通俗的說就是它利用某設備爲一用戶服務的空閒時間,又轉去爲其餘用戶服務。
空分複用技術: 利用存儲器的空閒空間分區域存放和運行其餘的多道程序,以此來提升內存的利用率。
單純的空分複用存儲器只能提升內存的利用率,並不能是如今邏輯上擴大存儲器容量的功能,還必須引入虛擬存儲技術才能達到此目的。
而虛擬存儲技術在本質上是實現內存的分時複用,即它能夠經過分時複用內存的方式,使一道程序僅在遠小於它的內存空間中運行。
4.異步(Asynchornism):
先清楚進程概念:所謂進程是指在系統中能獨立運行並做爲資源分配的基本單位。它是由一組機器指令,數據和堆棧等組成,是一個能獨立運行的活動實體。
進程是程序的一次動態執行,是程序完成 一次任務所需的資源的載體。
4.OS的主要功能:
1.處理機管理功能:
進程控制也就是爲做業建立進程,撤銷(終止)已結束的進程,以及控制進程在運行過程當中的狀態轉換。
進程同步(多進程/線程協調):
進程互斥方式,訪問臨界資源的時候。
進程同步方式 相互合做完成共同任務的諸進程間 由同步機構進行協調 。鎖。
進程通訊: 多個進程相互合做完成同一個任務的時候 每每須要交換信息。
調度:
做業調度:從後備隊列中按照必定的算法選擇出若干個做業,併爲其運行分配資源。而後調入內存,在爲他們建立進程。使他們均可能得到處理機的就緒進程,並將他們插入就緒隊列中。
進程調度:從進程的就緒隊列中按照必定的短髮選出一個進程,並將處理機分配給它。
2.存儲器管理功能
內存分配
內存保護: a.確保每道用戶程序都僅在本身的內存空間內運行,彼此互不干擾。
b.毫不容許用戶程序訪問OS的程序和數據,也不容許用戶程序轉移到飛共享的其餘用戶程序中去執行。
每道程序都只在本身的內存區運行,如越界,則發出越界中斷請求。
地址映射:將地址空間的邏輯地址轉換爲內存空間中與之對應的物理地址。 邏輯地址====>物理地址。
內存擴充: 藉助虛擬內存技術。 a.請求調入功能: 將須要的程序和數據調入內存 ; b.置換功能:將不須要的數據和程序調到硬盤上。
3.設備管理功能: 緩衝管理 設備分配 設備處理 ,===>完成用戶進程提出的I/O請求。 以及提升CPU和I/O設備的利用率。
4.文件管理功能: 文件存儲空間的管理;目錄管理;文件的讀/寫管理和保護。
5.OS與用戶之間的接口: 用戶接口,程序接口
5.微內核OS結構:
簡單瞭解 」機制與策略分離原理「,所謂機制,是指實現某一功能的具體執行機構。而策略,則是在機制的基礎上藉助於某些參數和算法來實現該功能的優化,或達到不一樣的功能目標。 一般,機制處於一個系統的基層,而策略則處於系統的高層。
「須要提供什麼功能」即機制,「如何使用這些功能」即策略。
機制就是提供的功能,好比在驅動程序的編寫中,你要提供怎樣和硬件交流的方式,這就叫機制。 而策略則是指你怎樣去使用已有的機制完成你本身的特定的功能,好比在驅動程序的編寫中,你該怎樣去利用硬件機制完成特定的功能
微內核的基本功能:
1.進程/線程管理:
爲實現進程/線程調度功能,須在進程管理中設置一個或多個進程/線程優先級隊列,將指定優先級進程/線程從所在隊列中取出,並將其投入運行。
2.低級存儲器管理: 可用於實現將用戶控件的邏輯地址變換爲內存空間的物理地址的頁表機制和地址變換機制。
而實現虛擬存儲器管理的策略,則包含應採起何種頁面置換算法,採用何種內存分配與回收的策略,應將這部分放在微內核外的存儲器管理服務器中取實現。
3.中斷和陷入處理:捕獲鎖發生的中斷和陷入事件,並進行相應的前期處理,如進行中斷現場保護。