軟考之操作系統

1.操作系統基礎知識

操作系統的作用:1.通過資源管理,提高計算機系統的效率。2.改善人機界面,向用戶提供友好的工作環境。

操作系統的特徵:併發性,共享性,虛擬性和不確定性

操作系統的功能:處理器管理,文件管理,存儲管理,設備管理,作業管理

操作系統的類型:批處理操作系統,分時系統,實時系統,網絡操作系統,分佈式操作系統,微機操作系統,嵌入式操作系統


2.處理器管理

概念:進程是程序的一次執行,改程序可以和其他程序併發執行。

進程狀態及狀態轉換圖
三態模型-運行,就緒,阻塞
五態模型-新建,就緒,運行,阻塞,終止

進程就是系統進行分配和調度的最小單位。它有三種基本狀態:
就緒狀態:進程已得到運行所需資源,只等待CPU的調度即可運行
運行狀態:進程已得到運行所需資源,並且得到了CPU的調度
掛起狀態:不具備運行條件、等待時機的狀態


(圖片來源見水印)
就緒->運行的條件是被調度程序選中
運行->就緒的條件是時間片到了(超時),或被更高優先級的進程剝奪
運行->掛起的條件是不具備運行條件,等待某一事件的發生
掛起->就緒的條件是等待的事件已發生,具備了運行條件

進程的互斥:當有若干個進程都要使用某一個資源時,任何時刻最多隻允許一個進程去使用該資源,其他要使用它的進程必須等待,知道該資源的佔用着釋放了該資源。(這種資源被稱爲臨界資源)

進程同步併發進程之間存在一種制約關係,一個進程的執行依賴另一個進程的消息。當一個進程沒有得到另一個進程的消息時候應該等待,知道消息到達才被喚起。

信號量與PV操作
信號量是一種特殊的變量,表現形式是一個整形S和一個隊列。
P操作:也稱爲down()、wait()操作,使S=S-1,若S<0,進程暫停執行,放入信號量的等待隊列。
V操作:也稱爲up()、signal()操作,使S=S+1,若S≤0,喚醒等待隊列中的一個進程。

死鎖
(1)產生原因
系統提供的資源數比進程要求的資源少;或者若干個進程要求的資源總數 大於系統能夠提供的資源數,這時候,進程之間就會出現競爭資源的現象,對競爭資源分配不當,就會出現死鎖。

(2)死鎖的必要條件:
互斥條件——每個資源每次都只能夠給一個進程是用腦。
請求保持條件——一個進程申請資源得不到滿足時候處於等待自願的狀態,且不釋放佔有資源。
不可剝奪條件——任何一個進程不能夠搶奪另一個進程所佔用的資源,只能夠自己來釋放。
環路條件——存在一組進程,每個進程都在等待別人釋放進程。
注意:四個條件是必要不充分條件。即發生死鎖,四個條件一定同時成立;四個條件同時成立,不一定發生死鎖。

(3)解決死鎖方法:
1.死鎖預防:
1>預先靜態分配法:破壞“不可剝奪條件”。預先分配所需資源,保證不等待資源。
2>資源有序分配法:破壞”環路條件“,。把資源分類按順序排列,保證不形成環路。
2. 死鎖避免
通過算法合理的分配資源,達到避免死鎖的效果,經典的算法是銀行家算法。它是在保證至少有一個進程能夠得到所需的全部資源的前提下進行資源分配的。
銀行家算法:一種經典的死鎖避免方法。基本思想:當某個進程提出申請時,必須判斷將資源分配給該進程後是否會引起死鎖。若不會,則進行分配;否則就不分配。可以保證在任何時刻至少有一個進程可以得到所需的全部資源而執行結束。
3 .死鎖的檢測
爲解決死鎖問題,這種系統設置了一些定時運行的“死鎖檢測程序”當檢測到有死鎖情況時候,再設法將其排除。
4.死鎖解除:1.資源剝奪法:從某些進程中強行剝奪足夠數量的資源分配給死鎖進程。2.撤銷進程法:根據某種策略逐個地撤銷死鎖進程。

3.存儲管理

存儲管理的對象是主存,也叫內存。功能包括:分配和回收主存空間、提高主存利用率、擴充主存、主存信息保護。
一般的存儲器結構有: 寄存器-(緩存) -主存-外存。
數據存放的地址是由符號決定的。源程序的地址空間叫符號名地址空間或者名空間。它是從0開始的,不是主存中的真實地址。所以稱爲 相對地址、程序地址、邏輯地址、虛擬地址。
存儲空間:物理地址的集合。
地址重定位:將邏輯地址轉化爲物理地址的過程。(靜態重定位、動態重定位)


存儲管理主要是爲了解決多個用戶使用主存的問題,其存儲管理方案主要包括分區存儲管理,分頁存儲管理,分段存儲管理,段頁式存儲管理以及虛擬存儲管理

分區存儲管理
*固定分區:這是支持多道程序設計的最簡單存儲管理方法,它把主存劃分成若干個固定的和大小不同的分區,每個分區能夠裝入一個作業,分區的大小是固定的,算法簡單,但是容易生產較多的存儲器碎片。
*可變分區:是一種動態分區方式,存儲空間的劃分是在作業裝入時進行的,故分區的個數是可變的,分區的大小剛好等於作業的大小。
*可重定位分區:這是客服固定分區碎片問題的一種存儲分配方式,它能夠把相鄰的空閒存儲空間合併成一個完整的空區,還能夠整理存儲器內各個作業的存儲位置,以達到消除存儲碎片和緊縮存儲空間的目的。緊縮工作需要花費大量時間和系統資源。

分頁存儲管理
純分頁存儲管理:將一個進程的地址空間分爲若干大小相等的區域,稱爲頁。主存空間也劃分爲和頁相同大小的物理快,稱爲塊或頁框。在爲進程分配主存時,將進程中若干的頁分別裝入多個不相鄰接的塊中。

分段存儲管理
作業的地址空間被劃分爲若干段,每一段是完整的邏輯信息,如主程序段、子程序段、數據段和堆棧段等,和頁面的區別是段的長度是不同的。每一段都有自己的名字,都從0開始編址。有一個段表,記錄各段的基址和段長,然後邏輯地址通過段表進行轉化。

段頁式存儲管理
將地址先分段,然後段內分頁,加上頁內地址。

虛擬存儲管理
爲了擴大主存容量而採用的一種設計方法,其容量是由計算機的地質結構決定的。
程序的局部性原理 
1.時間侷限性:如果一段空間被訪問,那麼再一段時間內它有可能會被再次訪問,如循環變量。
2.空間侷限性:如果一段空間被訪問,那麼它臨近的空間再一段時間內頁可能被訪問,如遍歷數組。

頁面置換算法:虛擬存儲器是具有要求調入功能和置換功能,能僅把作業的一部分裝入內存便可運行作業的存儲器系統,是能從邏輯上對主存容量進行擴充的一種虛擬的存儲器系統。在進程運行過程中,如果發生缺頁,此時需要使用頁面置換算法來解決。
(1)最佳(Optimal)置換算法
(2)先進先出(FIFO)置換算法
(3)最近最少未使用(Least Recently Used, LRU)置換算法
(4)最近未用(Not Used Recently, NUR)置換算法

4.設備管理

設備是計算機系統與外界交互的工具,負責計算機與外部的輸入輸出工作,所以也常叫做外設。
負責輸入輸出的系統稱爲I/O系統,由設備、控制器、通道(如果有的話)、總線和I/O軟件(驅動)組成。
設備分類:
(數組組織:塊設備(以塊爲大小進行組織),字符設備(單個字符傳送,如打印機)
(資源分配:獨佔設備、共享設備、虛擬設備(利用虛擬技術把獨佔設備變成共享設備)。
(數據傳輸率:低速(數百個字節每秒,鼠標,鍵盤,語音輸入),中速(數千至數十千字節每秒,打印機等),高速設備(數百千字節以上,如磁盤,光盤)。


設備管理的主要功能:動態地掌握並記錄設備的狀態、設備分配和釋放、緩衝區管理、實現物理I/O設備的操作、提供設備使用的用戶接口及設備的訪問和控制。


設備管理的任務:保證在多道程序環境下,當多個進程使用設備時,按一定的策略分配和管理各種設備,控制設備的各種操作,完成I/O設備的主存之間的數據交換。


設備管理主要利用的技術:中斷技術、DMA技術(主存與I/O設備直接的塊傳送)、通道技術(通道實現I/O,與CPU直接交互,CPU不再負責I/O)、緩衝技術(在所有的I/O設備與主存之間都是用了緩衝區,分爲單緩衝、雙緩衝、多緩衝、環形緩衝)、Spooling技術(Simulatneous Peripheral Operations On Line,外圍設備聯機操作)或稱之爲假脫機,是指一種物理設備模擬另一種物理設備的技術。使獨佔設備變成多臺虛擬設備。


I/O軟件
主要目標是設備獨立性和統一命名。
分層:中斷處理程序、設備驅動程序、與設備無關的系統軟件、用戶軟件。(沒有嚴格劃分)

磁盤調度
磁盤是可以被多個進程共享的設備,當有多個進程的時候訪問磁盤的時候,爲了保證信息的安全,系統需要使用調度算法進行進程間資源的分配。這就是磁盤調度算法。
磁盤調度的目標就是使磁盤的平均尋道時間最少。
常用算法:


)先來先服務算法(First Come First Served) 
)最短尋道時間優先(Shortest Seek Time First, SSTF)每次都選擇磁道最近距離,但是並不能保證平均最短。
)掃描算法(SCAN):也稱電梯調度算法,即每一次向一個方向進行掃描,直到需要反方向的調度。
)單向掃描算法(CSCAN):和掃描算法類似,但是是一直只掃描一個方向。

4.設備管理

文件與文件系統
文件是具有符號名的、再邏輯上具有完整意義的一組相關信息項的集合。
文件管理系統,就是操作系統中實現文件統一管理的一組軟件和相關數據的集合,專門負責管理喝存取文件信息的軟件機構,簡稱文件系統。


文件類型:
)性質和用途:系統文件、庫文件、用戶文件。
)保存期限:臨時文件、檔案文件和永久文件。
)保護方式:只讀文件、讀寫文件、可執行文件、不保護文件。
)Linux/UNIX系統將文件分爲:普通文件、目錄文件和設備文件(特殊文件)
)常用的文件系統有: FAT、VFat、NTFS、Ext2,3,HPFS。


文件的結構和組織
文件的邏輯結構可分爲兩大類:一是有結構的記錄式文件。而是無結構的流式文件。


文件的物理結構
連續/順序結構。
鏈接/串聯結構,不連續,裏用塊指針。
索引結構:文件索引表,索引表記錄了文件信息所在的邏輯塊號對應的物理地址。
多個物理塊的索引表。多個物理快的索引表有兩種組織方式:鏈接文件和多重索引方式。
在UNIX/LINUX中採用的是三級索引結構,文件系統中inode是基本的構件,它表示文件系統樹形結構的節點。
UNIX文件索引表分爲4種尋址方式:直接尋址、一級間接尋址、二級間接尋址和三級間接尋址。


文件控制塊
文件控制塊包含以下三類信息:基本信息類,存取控制信息類和使用信息類。
1.基本信息類:文件名、物理地址、文件長度、文件塊數。
2存取控制信息類。文件存取權限,像UNIX用戶分成文件主、同組用戶和一般用戶三類。
3使用信息類:文件建立日期,最後一次修改日期、最後一次訪問日期、當前使用的信息。


目錄結構
常見的目錄結構有三種:一級目錄結構,二級目錄結構,多級目錄結構。


存取方法和存儲空間管理
存取方法:順序存取、隨機存取、直接存取、按鍵存取。


文件存儲空間的管理
空閒區表:將外存空間上一個連續未分配對應一個空閒區。
位示圖:在外存上建立一張位示圖,記錄文件存儲器的使用情況。
空閒塊鏈:每個空閒物理塊種有指向下一個空閒物理塊的指針,所有空閒物理塊構成一個鏈表。
成組鏈接法:將空閒塊分成若干組。




這一塊的內容真的有點多,慢慢來吧,加油。
發佈了110 篇原創文章 · 獲贊 253 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章