軟考之作業系統

hushhw發表於2017-11-07

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使用資訊類:檔案建立日期,最後一次修改日期、最後一次訪問日期、當前使用的資訊。


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


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


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




這一塊的內容真的有點多,慢慢來吧,加油。

相關文章