一、作業系統基礎知識

  • 作業系統的作用:使用者介面、儲存管理、檔案管理、裝置管理、處理機管理。

  • 1.     儲存管理:

    .

    2.     處理機管理:

    3.     裝置管理:

    4.     檔案管理:

    5.     使用者介面:

  • 作業系統定義:是管理和控制計算機系統中各種硬體和軟體資源、合理地組織計算機工作流程的系統軟體,是使用者與計算機之間的介面。

  • 多道批處理系統

  • 1.     在記憶體中同時存放多道程式,在管理程式的控制下交替執行,這些作業共享CPU和系統其他資源。

    2.    

    3.    

  • 分時系統:把處理機執行時間分成時間片,按時間片輪轉的方式,把處理機分配給各聯機作業使用。

  • 實時系統:系統能及時(或即時)響應外部事件的請求,在規定的時間內完成對該事件的處理,並控制所有實時任務協調一致地執行。提供即時響應和高可靠性,響應時間快,可以在毫秒級甚至微秒級立即處理。

    二、作業系統使用者介面

  • 作業的基本概念

  • 1.    
    定義:是要求計算機系統按指定步驟對應用程式進行處理並得到計算結果的加工工作。

    2.    
    作業步:對應用程式進行處理的步驟。作業由不同的順序相連的作業步組成。

    3.    
    組成:

    4.     作業的建立:當一個作業的全部程式和資料輸入到外存並且在系統中建立了相應的作業控制塊之後,一個作業就建立了。

  • 使用者介面基本概念

  • 1.     定義:

    2.     系統提供的使用者介面:

    3.     處理機執行狀態:

    大多數處理器至少支援兩種執行模式,某些指令只能在特權模式下執行,包括讀取或改變諸如程式狀態字之類控制暫存器的指令、原始I/O 指令和與記憶體管理相關的指令。另外,有部分記憶體區域僅在特權模式下可以被訪問到。非特權模式通常稱為使用者模式,這是因為使用者程式通常在該模式下執行;特權模式可稱為系統模式、控制模式或核心模。態的切換不一定會導致程序的切換,程序的切換一點伴隨態的切換。

    4.    

    三、程序管理

  • 程式基本概念

  • 1.     程式執行的兩種方式:順序執行、併發執行(現代作業系統多為併發執行,引入併發執行的目的是為了提高資源利用率)。

    2.     順序執行:一個計算的若干操作必須按照嚴格的先後次序順序地執行,這類計算過程就是程式的順序執行過程。

    3.     併發執行:指一組在邏輯上相互獨立的程式或程式段在執行過程中,其執行時間在客觀上相互重疊,即一個程式段的執行尚未結束,另一個程式段的執行已經開始的這種執行方式。

  • 程序基本概念

  • 1.     定義:程序是指一個具有獨立功能的程式對某個資料集在處理機上的執行過程和分配資源的基本單位。

    2.     程序和程式的區別:

    3.     程序的組成:程序通常由程式、資料集合和程序控制塊PCB三部分組成。程式和它操作的資料是程序存在的靜態實體,而專門的資料結構PCB用來描述程序當前的狀態、本身的特性等。

  • 程序的狀態

  • 1.     就緒狀態:處於就緒狀態的程序已經得到除CPU之外的其他資源,只要由排程得到處理機,便可立即投入執行。

    2.     執行狀態:程序排程程式從就緒佇列中選擇一個程序分配給它CPU控制權,該程序所處的狀態為執行狀態。

    3.     等待狀態:程序因等待某個事件的發生(如等待I/O的完成),而暫停執行,則該程序處於等待狀態(這時,即使給它CPU,它也無法執行)。

  • 程序的相互作用:多道程式的環境中,系統中的多個程序可以併發執行,同時它們又要共享系統中的資源。這些資源有些是可共享使用的,如磁碟,有些是以獨佔方式使用的,如印表機。由此將會引起一系列的矛盾,產生錯綜複雜的相互制約的關係。

  • 程序互斥

  • 1.     臨界資源:一次僅允許一個程序使用的資源成為臨界資源。

    2.     臨界區:每個程序中訪問臨界資源的那段程式段稱為臨界區。

    3.     互斥的定義:在作業系統中,當某一程序正在訪問某臨界區時,就不允許其它程序進入,程序之間的這種相互制約的關係成為互斥。

  • 程序同步

  • 1.     非同步環境下的一組併發程序互相傳送訊息而進行互相合作、互相等待,使得各程序在執行速度上相互協調,這樣的相互制約關係稱為程序同步。

    2.      

    同步與互斥的關係:

  • 死鎖

  • 1.     定義:指各併發程序彼此相互等待對方所擁有的資源,且這些併發程序在得到對方的資源之前不會釋放自己所擁有的資源。從而造成大家都想得到資源而又都得不到資源,各併發程序不能繼續向前推進的狀態。

    2.     死鎖的必要條件:互斥條件(資源是不可共享的臨界資源,程序要求對所分配的資源進行排他性控制);部分分配(程序每次申請它所需要的一部分資源,在等待新資源的同時,繼續佔有已經分配到的資源);不剝奪條件(程序已經獲得資源,在沒有使用完之前不能被剝奪);環路條件(在發生死鎖時,必然存在一種程序-資源的迴圈鏈,鏈中每一個程序已獲得的資源同時被下一個程序所請求)。

    3.     安全狀態:現有程序資源佔有的情況下,各程序按照某種推進順序仍然可以使每個程序得到其對資源的最大需求,從而都可以順利地完成。

    4.     死鎖的排除方法:                                                                                          

    5.     預防死鎖的方法:                                                                                          

  • 銀行家演算法的實質就是要設法保證系統動態分配資源後仍然保持安全狀態,從而避免死鎖的發生。要求程序預先告知自己的最大資源需求,並且假設系統擁有固定的資源總量。

  • 1.    

    2.    

    3.    

    4.    

    1.    
    通訊型別:低階通訊(只傳送控制資訊)和高階通訊(傳送大批量的資料,目的是為了交換資訊);直接通訊(傳送和接收時都要致命程序的名字。資訊直接傳遞給接收方,如:管道)和間接通訊(傳送程序發訊息時不指定接收程序的名字,而是藉助於收發雙方程序之外的共享資料結構作為通訊中轉,如訊息佇列。)。

    2.    
    通訊方式——訊息/郵箱機制:

    3.     通訊方式——共享儲存區:兩個需要互相交換資訊的程序通過對同一共享資料區(shared memory)的操作來達到互相通訊的目的。這個共享資料區是每個互相通訊程序的一個組成部分。

    4.     通訊方式——訊息緩衝機制:傳送程序先申請一個訊息緩衝區,寫入訊息後把該訊息緩衝區送入接收程序的訊息佇列中,通知接收程序。接收程序從訊息佇列中摘下一訊息緩衝區,取出所需要的資訊。

  • 執行緒的基本概念

  • 1.     引入執行緒目的:為了提高系統的執行效率,減少處理機的空轉時間(使得單個程序可以利用CPU和I/O之間的並行性),減少排程切換(保護現場資訊)的時間,以及便於系統管理,引入了“執行緒”。

    2.     定義:執行緒是程序的一個實體,是CPU排程的最基本單位。(資源分配的基本單位還是程序)

    3.    

    四、處理機排程

  • 分級排程

  • 1.     排程層次:作業排程(按一定原則選擇外存後備佇列中的作業,為其分配記憶體等資源,並建立程序,使其獲得競爭處理機的資格,進入就緒佇列。此外,在作業執行完畢時,回收系統資源。);交換排程(按給定策略,將外存中處於就緒狀態或等待狀態的程序調入記憶體,或將記憶體中暫時不能執行的程序調至外存,以提高記憶體利用率和系統吞吐量。);程序排程(決定就緒佇列中的哪個程序應獲得處理機,為其進行程序上下文切換以建立相應的執行環境);執行緒排程(程序中相關堆疊和控制表等的排程)。

    2.     作業狀態

    3.     作業是使用者向計算機提交任務的任務實體,程序是計算機為了完成使用者任務實體而設定的執行實體。計算機要完成一個任務實體,必須要有一個以上的執行實體,即一個作業是由一個以上的程序組成的。

  • 作業排程

  • 1.     週轉時間:作業從提交到執行完成所經歷的時間。包括:在收容佇列中等待,CPU上執行,就緒佇列和阻塞佇列中等待,結果輸出等待等。

    2.     平均週轉時間:                                                                                                                         

    3.     平均帶權週轉時間:                                                                                                                          

  • 程序排程

  • 1.     程序排程的任務是控制協調程序對CPU的競爭,即按一定的排程演算法從就緒佇列中選擇一個程序,並把CPU的使用權交給被選中的程序。

    2.     程序排程的功能:記錄所有程序的執行狀況;按一定策略,選擇一個就緒程序;完成程序上下文切換。

    3.     作業排程對除了CPU之外的所有系統資源進行分配;程序排程專門負責對CPU進行分配,使程序活動起來。

  • 排程演算法

  • 1.     先來先服務排程演算法(FCFS——First Come First Server):按照作業提交/程序變為就緒狀態的先後次序,調入系統或分派CPU。

    2.     時間片輪轉法(RR——Round Robin):

    3.     短作業優先法(SJF——Shortest Job First):對預計執行時間短的作業(程序)優先處理。通常後來的短作業不搶先正在執行的作業。其目標是減少平均週轉時間。

    4.     最高響應比優先法(HRN——Highest Response_Ratio Next):最高響應比優先法是介於FCFS和SJF之間的一種拆衷的演算法,同時考慮每個作業的等待時間和估計需要的執行時間,從中選出響應比最高的作業投入執行。

    5.     多級佇列演算法(Multiple-level Queue):根據作業或程序的性質或型別的不同,將後備或就緒佇列在分為若干個子佇列,各佇列有不同的排程演算法。多級佇列:該演算法將系統中的程序就緒佇列從一個拆分為若干個,將不同型別或性質的程序固定分配在不同的就緒佇列,不同的就緒佇列採用不同的排程演算法,一個就緒佇列中的程序可以設定不同的優先順序,不同的就緒佇列本身也可以設定不同的優先順序。

    多級佇列排程演算法由於設定多個就緒佇列,因此對每個就緒佇列就可以實施不同的排程演算法,因此,系統針對不同使用者程序的需求,很容易提供多種排程策略。

    6.     優先順序演算法(Priority Scheduling):對優先順序高的作業/程序優先處理,可分為搶先式和非搶先式。                                                                                               

    7.     多級反饋輪轉法(Round Robin with Multiple Feedback):時間片輪轉法和優先順序法的綜合和發展。

    五、儲存管理

  • 儲存管理的功能                                                                                              

  • 儲存分配的方式                                                                                                 

  • 重定位(地址對映):在可執行檔案裝入時需要解決可執行檔案中地址(包含指令和資料的地址)和記憶體地址的對應。

  • 1.    

    2.    

    3.    

  • 記憶體資訊的共享和保護

  • 1.    

    2.     界限保護:                                                                                                    

    3.     訪問方式保護:                                                                                           

  • 虛擬儲存器:為使用者提供一種不受物理儲存器結構和容量限制的儲存技術。

  • 1.     使得使用者程式設計時不需要考慮實體記憶體的結構和容量;每個程序都擁有自己的虛存,且虛存大小不受實際物理儲存器的限制。

    2.     虛擬儲存器的物質基礎:兩級儲存結構(記憶體和外存);地址變換機構(實現邏輯地址到實體地址的轉換)。

    3.     虛擬儲存器的原理:                                                                                       

    4.     根據地址空間結構的不同將虛擬儲存技術分為三類:頁式管理;段式管理;段頁式管理。

  • 內外存資料傳輸的控制

  • 1.    
    覆蓋:
                         
                         
                         
              

    2.     交換:                                                                                                             

    3.     虛擬儲存:                                                                                                 

  • 分割槽儲存管理

  • 1.     原理:把記憶體分為一些大小相等或不等的分割槽,除作業系統佔用一個分割槽外,其餘分割槽用來存放程序的程式和資料。

    2.     分割槽管理——固定分割槽法:作業執行前把記憶體固定地劃分區域。缺點:存在大量碎片,主存利用率低。                                                                    

    3.     分割槽管理——動態分割槽法:在作業的處理過程中劃分區域。                                  

    4.     固定分割槽的分配與回收:儲存管理程式根據請求表查詢分 區說明表,從中找出一個滿足要求的空閒分 區,並將其分配給申請者。

    5.     動態分割槽的分配與回收:最先匹配法(按分割槽起始地址的遞增次 序,從頭查詢,找到符合要求的第一個分割槽);最佳匹配法(按分割槽大小的遞增次序, 查詢,找到符合要求的第一個分割槽);最壞匹配法(按分割槽大小的遞減次 序,從頭查詢,找到符合要求的第一個分割槽)。

    6.     分割槽儲存管理的主要優缺點                                                                                   

  • 頁式儲存管理

  • 1.     基本原理                                                                                                               

    2.     邏輯地址的表示                                                                                             

    3.     頁表:頁式儲存管理的資料結構,它包括使用者程式空間的頁面與記憶體塊的對應關係、頁面的儲存保護和存取控制方面的資訊。

    4.     頁式地址對映                                                                                   

  • 請求頁式儲存管理——純頁式(靜態)儲存管理提高了記憶體的利用效 率,但並不為使用者提供虛存。為此,提出了請求分頁(動態)儲存管理技術。

  • 1.     實現思想:                                                                                                

    2.     請求分頁要解決的問題:如何發現執行的程式或訪問的資料不在記憶體;調入策略,程式或資料什麼時候調入記憶體;淘汰策略,當一些頁調入記憶體時,記憶體沒有空閒記憶體,將淘汰哪些頁。

    3.     調入策略:                                                                                                   

    4.     淘汰策略的評價指標:缺頁次數和缺頁率(缺頁率為缺頁次數與總訪問次數之比)。

    5.     置換演算法                                                                                                      

    當要完全實現LRU演算法需花費巨大的系統開銷(必須對每一個頁面都設定有關的訪問記錄 項,而且每一次訪問都必須更新這些記錄)。實際系統中往往使用LRU的近似演算法

    6.     儲存保護                                                                                                 

    7.    

  • 段式儲存管理——基本概念

  • 1.     段式管理的由來                                                                                                  

    2.     分段                                                                                                                      

    3.     段式管理的程式地址結構                                                                                    

    4.     段式管理的記憶體分配思想                                                                                 

    5.     段表和段表地址暫存器                                                                                             

    6.     分頁和分段的異同之處                                                                                   

  • 段式儲存管理——實現原理

  • 1.     段式管理的記憶體分配與釋放                                                                                  

    2.     段式管理程式進行地址變換的步驟                                                                      

    3.     段的共享                                                                                               

  • 段式儲存管理——優缺點

  • 1.     優點                                                                                                                        

    2.     缺點                                                                                                                 

  • 段頁式儲存管理——基本概念

  • 1.     段頁式管理的基本思想                                                                                         

    2.     等分記憶體:把整個記憶體分成大小相等的記憶體塊(記憶體被劃分成 若干個頁),記憶體塊從0開始依次編號。

    3.     地址空間分段:把使用者程式分成若干段,每段有段名。

    4.     段內分頁:段內頁面的大小與記憶體塊相同,每段都分別從0開始 依次編號。虛空間的最小單位是頁而不是段,分段大小不再受內 存可用區的限制(每段所擁有的程式和資料在記憶體中 可以按頁分開存放)。

    5.     邏輯地址的構成                                                                                               

    6.    

    各種儲存方法比較                                                                                                   

    六、檔案管理

  • 檔案系統的概念:檔案系統時OS與使用者關係最緊密的一部分,對使用者來說,它是OS中最直觀的部分,能否方便使用OS,以及OS的可信賴程度往往取決於檔案系統的功能和效能。

  • 1.     檔案和檔案系統                                                                                                    

    2.     檔案系統的功能                                                                                               

    3.     檔案的型別:分類的目的是對不同檔案進行管理,提高系統效率                                                                                                         

  • 檔案系統的組織結構:從使用者觀點出發,所看到的檔案組織形式稱為檔案的邏輯結構;從實現觀點出發,檔案在外存上的存放組織形式成為檔案的物理結構。

  • 檔案的邏輯結構和存取方法

  • 1.     檔案的邏輯結構由兩種形式:                                                                            

    2.     選取檔案的邏輯結構遵循下述原則:儘量減少對已儲存好的檔案資訊的變動;能在儘可能短的時間內查詢到需要的記錄或基本資訊單位;佔據最小的儲存空間;便於使用者進行操作。

    3.     檔案邏輯結構的選擇                                                                                         

    4.     常用的記錄式結構檔案                                                                                         

    5.     檔案的存取方法:指使用者讀寫檔案的方法。使用者通過對檔案的存取來完成對檔案的修改、追加和搜尋等操作。通常有三種存取方法,無論是採用哪種存取方法,都是首先查找出操作物件的邏輯地址,然後由邏輯地址對映到對應的實體地址,再對實體地址的有關資訊進行操作。                                                                 

  • 檔案的物理結構和儲存裝置

  • 1.     檔案的物理結構指檔案在外存上的儲存結構。它依賴於外存的物理儲存介質。

    2.     常見的檔案物理結構:順序結構(連續檔案),連結結構(串聯檔案),索引結構(索引檔案)。                                                                                               

  • 磁碟排程演算法:磁碟是可被多個程序共享的裝置。當有多個程序都請求訪問磁碟時,應採用一種適當的排程演算法,對這些請求的服務順序調整安排,旨在降低平均磁碟服務時間,達到公平、高效。

  • 1.     先來先服務——FCFS

    2.     最短尋道時間優先——SSTF:優先選擇距當前磁頭最近的訪問請求進行服務,主要考慮尋道優先。

    3.     掃描演算法——SCAN:

    4.     排程演算法的選擇                                                                                                  

  • 檔案儲存空間的管理:檔案儲存空間通常是分成若干個大小相等的物理塊,並以塊為單位來交換資訊的。因此,檔案儲存空間的管理實質上是一空閒塊的組織、分配和回收等問題。

  • 1.     外存空閒塊管理:                                                                                                   

    2.     空閒檔案目錄:把一個連續的未分配的區域稱“空閒塊”。將所有空閒塊記錄在一個表中,即空閒塊表,其中空閒檔案目錄的每個表項對應一個由多個連續的空閒塊構成的空閒區,主要包括: 空閒塊數和第一個空閒塊號。

                                   分配空閒塊                                                                                                   

                                           回收空閒塊                                                                                                          

    3.     空閒塊鏈                                                                                                          

    4.     成組連結法                                                                                                    

                                            成組連結法的分配過程                                                                            

                                         成組連結法的回收過程                                                                                        

    5.     位示圖                                                                                                         

    6.    

  • 檔案目錄管理:檔案目錄是檔案系統實現按名存取的一個有效方法。系統為每個檔案編制一個目錄表,內容包括,檔名、實體地址、存取控制資訊。

  • 1.     檔案的組成                                                                                                          

    2.     檔案目錄:把檔案說明按一定的邏輯結構存放到物理儲存塊的一個表目中,該表目稱為檔案目錄。檔案目錄可分為單級目錄、二級目錄和多級目錄。        

    3.     目錄管理                                                                                                          

    檔案存取控制:與檔案的共享、保護和保密問題緊密相關。

    七、裝置管理

  • 概述

  • 1.     裝置型別:計算機系統中,除了CPU及儲存器之外,還有一類比較重要的硬體資源——I/O裝置。I/O裝置是計算機與外界進行資訊交換的裝置。

    2.     裝置管理的任務                                                                                      

    3.     裝置管理的功能                                                                                                        

  • 資料傳送控制方式

  • 1.     程式直接控制方式                                                                                           

    2.     中斷方式                                                                                              

    3.     DMA方式——直接存取方式                                                                                     

    4.     通道控制方式                                                                                                  

  • 裝置分配技術

  • 1.     多道環境下的裝置分配,不只是對裝置進行分配,而且還要實現與裝置相關聯的通道及裝置控制器的分配。裝置的分配和管理中,常採用的資料結構主要有四張表:系統裝置表SDT、裝置控制表DCT、控制器控制表COCT、通道控制表CHCT。通道控制裝置控制器、裝置控制器控制裝置。                                                                                                            

                                      根據使用者請求的I/O裝置的邏輯名,查詢邏輯裝置和物理裝置的對映表;以物理裝置為索引,查詢SDT,找到該裝置所連線的DCT;繼續查詢與該裝置連線COCT和CHCT。                                                                                                                         一個程序只有獲得了通道、控制器和所需裝置三者之後,才具備了進行I/O操作的物理條件。

    2.     裝置分配的方式有兩種:靜態分配和動態分配                                                 

    3.     裝置獨立性:指應用程式獨立於具體使用的物理裝置,即使用者編制程式使用的裝置與實際使用的裝置無關。

    4.     裝置分配策略:先來先服務;優先順序高者優先。

    5.     裝置分配步驟:按照順序——分配裝置;分配控制器;分配通道。

  • I/O程序控制

  • 1.     I/O控制:指從使用者程序的I/O請求開始,給使用者程序分配裝置、啟動有關裝置進行I/O操作,以及在I/O操作完成之後響應中斷,進行善後處理為止的整個系統控制過程。

    2.     I/O控制的功能                                                                                          

    3.     I/O控制的實現方式                                                                                                    

  • 緩衝技術:可提高外設利用率

  • 1.     緩衝引入的主要目的:                                                                                                 

    2.     緩衝種類:單緩衝;雙緩衝;多緩衝;緩衝池。                                                    

  • 虛擬裝置與假離線技術

  • 1.     虛擬裝置:                                                                                                      

    2.     SPOOLING系統(同時聯機的外圍操作或者假離線操作):利用一