1.操作系統基礎知識
2.處理器管理
進程同步:併發進程之間存在一種制約關係,一個進程的執行依賴另一個進程的消息。當一個進程沒有得到另一個進程的消息時候應該等待,知道消息到達才被喚起。
信號量是一種特殊的變量,表現形式是一個整形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.存儲管理
一般的存儲器結構有: 寄存器-(緩存) -主存-外存。
數據存放的地址是由符號決定的。源程序的地址空間叫符號名地址空間或者名空間。它是從0開始的,不是主存中的真實地址。所以稱爲 相對地址、程序地址、邏輯地址、虛擬地址。
存儲空間:物理地址的集合。
地址重定位:將邏輯地址轉化爲物理地址的過程。(靜態重定位、動態重定位)
分區存儲管理
分頁存儲管理
純分頁存儲管理:將一個進程的地址空間分爲若干大小相等的區域,稱爲頁。主存空間也劃分爲和頁相同大小的物理快,稱爲塊或頁框。在爲進程分配主存時,將進程中若干的頁分別裝入多個不相鄰接的塊中。
分段存儲管理
作業的地址空間被劃分爲若干段,每一段是完整的邏輯信息,如主程序段、子程序段、數據段和堆棧段等,和頁面的區別是段的長度是不同的。每一段都有自己的名字,都從0開始編址。有一個段表,記錄各段的基址和段長,然後邏輯地址通過段表進行轉化。
段頁式存儲管理
將地址先分段,然後段內分頁,加上頁內地址。
虛擬存儲管理
1.時間侷限性:如果一段空間被訪問,那麼再一段時間內它有可能會被再次訪問,如循環變量。
2.空間侷限性:如果一段空間被訪問,那麼它臨近的空間再一段時間內頁可能被訪問,如遍歷數組。
(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使用信息類:文件建立日期,最後一次修改日期、最後一次訪問日期、當前使用的信息。
目錄結構
常見的目錄結構有三種:一級目錄結構,二級目錄結構,多級目錄結構。
存取方法和存儲空間管理
存取方法:順序存取、隨機存取、直接存取、按鍵存取。
文件存儲空間的管理
空閒區表:將外存空間上一個連續未分配對應一個空閒區。
位示圖:在外存上建立一張位示圖,記錄文件存儲器的使用情況。
空閒塊鏈:每個空閒物理塊種有指向下一個空閒物理塊的指針,所有空閒物理塊構成一個鏈表。
成組鏈接法:將空閒塊分成若干組。