操作系統期末復習材料(操作系統-精髓與設計原理(第五版))_第1頁
操作系統期末復習材料(操作系統-精髓與設計原理(第五版))_第2頁
操作系統期末復習材料(操作系統-精髓與設計原理(第五版))_第3頁
操作系統期末復習材料(操作系統-精髓與設計原理(第五版))_第4頁
操作系統期末復習材料(操作系統-精髓與設計原理(第五版))_第5頁
已閱讀5頁,還剩6頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第一章:計算機系統概述計算機系統基本組成I.處理器:控制計算機的操作,執行數據處理功能。當只有一個處理器時,它通常指中央處理器(CPU)。II.主存儲器:存儲數據和程序。iii.輸入/輸出模塊:在計算機和外部環境之間移動數據。iv.系統總線:為處理器、主存儲器和輸入輸出模塊提供通信的設施。什么是中斷\中斷是指計算機的處理機用來處理外來請求或內部錯誤的一種機制,該機制軟硬件結合,使得計算機的處理機能夠暫停當前指令系列的執行而轉向請求指令系列的執行。將計算機的處理機正在執行的指令系列稱為當前指令系列,當前指令系列通常是用戶程序。將計算機為處理各類突發(非預期)事件請求(I/O請求,時鐘請求,程序錯誤,硬件錯誤)而有待執行的指令系列稱為請求指令系列,通常稱為中斷處理程序,是操作系統的一部分。請求指令系列執行期間,可以被其它事件中斷(在允許多重中斷的情況下)。執行請求指令系列完畢后,可以返回被暫停的原始指令系列,也可以不返回(在多道程序設計環境中)。中斷處理程序與社會事務中的應急事件的預案類似。進程與程序的區別:\進程程序1.進程是執行中的程序,還涉及數據和上下文環境,因而有動態性。1.程序具有穩健性。2.一個進程可包含多個程序段。2.一個程序可對應多個進程(不同時間,不同機器,不同數據,不同上下文)。3.進程中的程序是指可執行程序。3.廣泛意義下的程序可以是任何意義上的程序。)4.進程中的數據是“值”。4.程序中的數據是指數據結構,是“型”,“名”,聯系。5.進程中涉及上下文(基本性質是與進程本身以及資源有關的狀態信息)。5.程序不涉及上下文。6.進程失去邏輯封閉性(原因是多個進程間是異步,并發或并行的),需要一定的互斥機制才能保證邏輯封閉性。6.程序具有邏輯封閉性,輸入決定輸出。中斷處理—中斷的發生激活了很多事情,包括處理器硬件中的事件及軟件中的事件。設備給處理器發出一個中斷信號。處理器在響應中斷前結束指令系列的執行。處理器對中斷進行測定,確定存在未響應的中斷,并給提交中斷的設備發送確認信號,確認信號允許該設備取消它的中斷信號。處理器需要把處理權轉移到中斷程序中去做準備。首先,需要保存從中斷點恢復當前程序所需要的信息,要求的最少信息包括程序狀態字(PSW)和保存在程序計數器中的下一條執行的指令地址,它們被壓入系統控制棧中(參見附錄1B)。處理器把響應此中斷的中斷處理器入口地址裝入程序的計數器中。在這一點,與被中斷程序相關的程序計數器和PSW被保存到系統棧中。此外,還有一些其他信息被當作正在執行程序的狀態的一部分。中斷處理器現在可以開始處理中斷,其中包括檢查與I/O操作相關的信息或其他引起中斷的事件,還可能包括給I/O設備發送附加命令或應答。?當中斷處理結束后,被保存的寄存器值從棧中釋放并恢復到寄存器中。最后的操作是從棧中恢復PSW和程序計數器的值,其結果是下一條要執行的指令來自被中斷的程序。處理多重中斷的方法: 處理多重中斷有兩中方法:當正在處理一個中斷時,禁止再發生中斷。禁止中斷的意思是處理器將對任何新的中斷請求信號不予理睬。定義中斷優先級,允許高優先級的中斷打斷優先級低的中斷處理器的運行。"第二章:操作系統概述操作系統通常提供的服務:程序開發程序運行I/O設備訪問文件訪問控制系統訪問)錯誤檢測和響應審計作為資源管理器的操作系統操作系統與普通的計算機軟件作用相同,也就是說,它由處理器執行的一段程序或一組程序。操作系統經常會釋放可控制,而且必須以來處理器才能恢復。操作系統開發中的五個主要理論成就—進程內存管理信息保護和安全調度和資源管理系統結構 進程 進程的概念是操作系統結構的基礎。$一個正在執行的程序計算機中正在運行的程序的一個實例可分配給處理器并由處理器執行的一個實體由單一的順序的執行線索、一個當前狀態和一組相關的系統資源所描述的活動單元計算機系統發展的三條主線: 多道程序批處理操作、分時和實時事務系統,它們在時間和同步中所產生的問題推動了進程概念的發展。多道程序設計是為了讓處理器和I/O設備(包括存儲設備)同時保持忙狀態,以實現最大效率。其關鍵機制是,在響應表示I/O事務結束的信號時,操作系統將對主存中駐留的不同程序進行處理器切換。*通用的分時。其主要設計目標是能及時響應單個用戶的要求,但是由于成本原因,又要可以同時支持多個用戶。由于用戶反應時間相對較慢,因此這兩個目標是可以同時實現的。實時事務處理系統。在這種情況下,很多用戶都在對數據庫進行查詢或修改,此時系統響應時間是最終要的。進程的組成:一段可執行的程序程序所需要的相關數據(變量、工作空間、緩沖區等)程序的執行上下文最后一部分是根本?!绦猩舷挛挠址Q為進程狀態,是操作系統用來管理和控制進程所需的內部數據。這種內部信息是分開的,因為操作系統信息不允許被進程直接訪問。上下文包括操作系統管理進程以及處理器正確執行進程所需要的所有信息,包括處理器的內容,如程序計數器和數據寄存器。他還包括操作系統使用的信息,如進程優先級以及進程是否在等待特定I/O事件的完成。操作系統擔負的五個基本的存儲器管理責任:進程隔離:操作系統必須保護獨立的進程,防止互相干涉數據和存儲空間。自動分配和管理:程序應該根據需要在存儲層間動態地分配,分配對程序員來說是透明的。支持模塊化程序設計:程序員應該能夠定義程序模塊,并且動態地創建、銷毀模塊,改變模塊大小。保護和訪問控制`長期存儲操作系統的幾種不同方法和設計要素:微內核體系結構多線程對稱多處理分布式操作系統面向對象設計,多線程 多線程技術是指把執行一個應用程序的進程劃分程可以同時執行的多個線程。線程和進程的區別:線程: 可分派的工作單元。它包括處理器上下文(包括程序計數器和棧指針,)和棧中自己的數據區域(為允許子程序分支)。線程順序執行,并且是可中斷的,這樣處理器就可以轉到另一線程。進程: 一個或多個線程和相關系統資源(如包含相互據和代碼的存儲器空間、打開的文件和設備)的集合。這緊密對應于一個正在執行的程序的概念。通過把一個應用程序分解成多個線程,程序員可以在很大程度上控制應用程序的模塊性和應用程序相關事件的時間安排?!獙ΨQ多處理(SymmetricMultiProcessing,SMP):對稱多處理可定義為具有以下特征的一個獨立的計算機系統:有多個處理器。這些處理器共享同一個主存儲器和I/O設備,它們之間通過通信總線或其他內部連接方案互相連接。所有處理器都可以執行相同的功能(因此稱為對稱)。對稱多處理操作系統可以調度進程或線程得到所有的處理器運行。對稱多處理器結構比單處理器結構具有更多的潛在優勢。|第三章進程描述和控制在進程執行時,任意給定一個時間,進程都可以唯一地表征為以下元素:標識符:跟這個進程相關的唯一標識符,用來區別其他進程。狀態:如果進程正在執行,那么進程處于執行態。優先級:相對于其他進程的優先級。程序計數器:程序中即將被執行的下一條指令的地址。內存指針:包括程序代碼和進程相關數據的指針,還有其他進程共享內存塊的指針。上下文數據:進程執行的處理器的寄存器中的數據。;I/O狀態信息:包括顯示的I/O請求、分配給進程的I/O設備(例如磁帶驅動器)和被進程使用的文件列表等。審計信息:可包括處理器時間總和、使用的時鐘數總和、時間限制、審計號等。導致進程創建的原因:新的批處理作業:通常位于磁帶或磁盤中的批處理作業控制流被提供給操作系統。當操作系統準備接納新工作是,它將讀取下一個作業控制命令。交互登錄:終端用戶登錄到系統。操作系統因為提供一項服務而創建:操作系統可以創建也個進程,代表用戶程序執行一個功能,使用戶無需等待(如控制打印的任務)。由現有的進程派生:基于模塊化的考慮,或者為了開發并行性,用戶程序可以指示創建多個進程。進程派生< 當操作系統為另一個進程的顯示請求創建一個進程時,這個動作稱為進程派生。 當一個進程派生另一個進程時,前一個進程稱為父進程,被派生的進程稱為子進程。在典型情況下,相關進程需要相互之間的通訊和合作。導致進程終止的原因:正常完成:進程自行執行一個操作系統服務調用,表示它已經結束運行超過時限:進程運行時間超過規定的時限。無可用內存:系統無法滿足系統需要的內存空間越界:進程試圖訪問不允許訪問的內存單元。】保護錯誤:進程試圖使用不允許使用的資源或文件,或者試圖以一種不正確的方式使用,如:往制度文件中寫。算術錯誤:進程試圖進行被禁止的計算,如除以零或者存儲大于硬件可以接納的數字時間超出:進程等待某一事件發生的時間超過了規定的最大值。I/O失?。涸谳斎牖蜉敵銎陂g發生錯誤,如找不到文件、在超出規定的最多努力次數后仍然讀寫失敗。無效指令:進程試圖執行一個不存在的指令。特權指令:進程試圖使用為操作系統保留的指令。數據誤用:錯誤類型或未初始化的一塊數據。操作員或操作系統干涉:由于某些原因,操作員或操作系統終止進程(例如,如果存在死鎖)。,父進程終止:當一個父進程終止時,操作系統可自動終止該進程的所有后代進程。父進程請求:父進程通常具有終止其任何后代進程的權利。進程狀態轉換圖掛起狀態進程:( 掛起狀態進程的概念與不再主存中的進程概念是等價的。 掛起狀態進程的特點如下所示:進程不能立即執行。進程可能是或不是正在等待一個事件。如果是,阻塞條件不依賴于掛起條件,阻塞事件的發生不會使進程立即被執行。為阻止進程執行,可以通過代理把這個進程至于掛起狀態,代理可以是進程自己,也可以是父進程或操作系統。除非代理顯示地命令系統進行狀態轉換,否則進程無法從這個狀態中轉移。進程掛起的原因:&交換:操作系統需要釋放足夠的主存空間,以調入并執行處于就緒態的進程。其他OS原因:操作系統可能掛起后臺進程或工具程序進程,或者被懷疑導致問題的進程。交互式用戶請求:用戶可能希望掛起一個程序的執行,目的是為了調試或者與一個資源的使用進行連接。定時:一個進程可能會周期性地執行(例如審計或系統監視進程),而且可能在等待下一個時間間隔時被掛起。父進程請求:父進程可能會希望掛起后代進程的執行,以檢查或修改掛起的進程,或者協調不同后代進程之間的行為。進程控制塊PCB(ProcessControlBlock):存放進程的管理和控制信息的數據結構稱為進程控制塊。它是進程管理和控制的最重要的數據結構,每一個進程均有一個PCB,在創建進程時,建立PCB,伴隨進程運行的全過程,直到進程撤消而撤消。]在不同的操作系統中對進程的控制和管理機制不同,PCB中的信息多少也不一樣,通常PCB應包含如下一些信息。1、進程標識符name:每個進程都必須有一個唯一的標識符,可以是字符串,也可以是一個數字。UNIX系統中就是一個整型數。在進程創建時由系統賦予。2、進程當前狀態status:說明進程當前所處的狀態。為了管理的方便,系統設計時會將相同的狀態的進程組成一個隊列,如就緒進程隊列,等待進程則要根據等待的事件組成多個等待隊列,如等待打印機隊列、等待磁盤I/O完成隊列等等。3、進程相應的程序和數據地址,以便把PCB與其程序和數據聯系起來。4、進程資源清單。列出所擁有的除CPU外的資源記錄,如擁有的I/O設備,打開的文件列表等。5、進程優先級priority:%進程的優先級反映進程的緊迫程序,通常由用戶指定和系統設置。UNIX系統采用用戶設置和系統計算相結合的方式確定進程的優先級。6、CPU現場保護區cpustatus:當進程因某種原因不能繼續占用CPU時(等待打印機),釋放CPU,這時就要將CPU的各種狀態信息保護起來,為將來再次得到處理機恢復CPU的各種狀態,繼續運行。7、進程同步與通信機制用于實現進程間互斥、同步和通信所需的信號量等。8、進程所在隊列PCB的鏈接字根據進程所處的現行狀態,進程相應的PCB參加到不同隊列中。PCB鏈接字指出該進程所在隊列中下一個進程PCB的首地址。9、與進程有關的其他信息。如進程記賬信息,進程占用CPU的時間等。進程執行模式:} 非特權模式通常稱為用戶模式,這是因為用戶程序通常在該模式下運行;特權模式可稱為系統模式、控制模式或內核模式,內核模式指的是操作系統的內核,這是操作系統中包含重要系統功能的部分。操作系統內核的典型功能:進程管理:進程的創建和終止。進程的調度和分配。進程切換。進程同步以及對進程間通信的支持。:進程控制塊的管理。內存管理:給進程分配地址空間。交換。頁和段的管理。I/O管理:緩沖區管理。給進程分配I/O通道和設備。;支持功能:中斷處理審計監視進程的創建:給新進程分配一個唯一的進程標識號。給進程分配空間。—初始化進程控制塊。設置正確的連接。創建或擴充其他數據結構。UNIX下進程創建的方法:(摘自:)在UNIX系統中,用戶創建一個新進程的唯一方法就是調用系統調用fork。調用fork的進程稱為父進程,而新創建的進程叫做子進程。系統調用的語法格式: pid=fork();在從系統調用fork中返回時,兩個進程除了返回值pid不同外,具有完全一樣的用戶級上下文。在子進程中,pid的值為零。在系統啟動時由核心內部地創建的進程0是唯一不通過系統調用fork而創建的進程?!泛诵臑橄到y調用fork完成下列操作:為新進程在進程表中分配一個空項。為子進程賦一個唯一的進程標識號(PID)。做一個父進程上下文的邏輯副本。由于進程的某些部分,如正文區,可能被幾個進程所共享,所以核心有時只要增加某個區的引用數即可,而不是真的將該區拷貝到一個新的內存物理區。增加與該進程相關聯的文件表和索引節點表的引用數。對父進程返回子進程的進程號,對子進程返回零。理解系統調用fork的實現是十分重要的,因為子進程就象從天而降一樣地開始它的執行序列。)下面是系統調用fork的算法。核心首先確信有足夠的資源來成功完成fork。如果資源不滿足要求,則系統調用fork失敗。如果資源滿足要求,核心在進程表中找一個空項,并開始構造子進程的上下文。算法:fork輸入:無輸出:對父進程是子進程的PID 對子進程是0{ 檢查可用的核心資源】 取一個空閑的進程表項和唯一的PID號 檢查用戶沒有過多的運行進程 將子進程的狀態設置為“創建”狀態 將父進程的進程表中的數據拷貝到子進程表中 當前目錄的索引節點和改變的根目錄(如果可以)的引用數加1 文件表中的打開文件的引用數加1 在內存中作父進程上下文的拷貝 在子進程的系統級上下文中壓入虛設系統級上下文層( /*虛設上下文層中含有使子進程能 *識別自己的數據,并使子進程被調度時 *從這里開始運行 */ if(正在執行的進程是父進程){ 將子進程的狀

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論