計算機操作系統教程_第四版_第7章 Windows的進程與內存管理_第1頁
計算機操作系統教程_第四版_第7章 Windows的進程與內存管理_第2頁
計算機操作系統教程_第四版_第7章 Windows的進程與內存管理_第3頁
計算機操作系統教程_第四版_第7章 Windows的進程與內存管理_第4頁
計算機操作系統教程_第四版_第7章 Windows的進程與內存管理_第5頁
已閱讀5頁,還剩26頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、第7章Windows的進程與內存管理 7.1Windows NT的特點及相關的概念7.1.1Windows NT體系結構的特點7.1.2Windows的管理機制1. 核心態(kernel mode)和用戶態(user mode)2. Windows操作系統的體系結構3. 系統調用、中斷和陷阱陷阱是由程序造成的,并且與程序同步。如果程序一而再的被運行,陷阱將總在指令流中相同位置的精確發生。而中斷則是由外部事件和其時鐘造成的,不具有重復性 中斷、異常、陷阱 1、三者的關系 陷阱這個說法其實不確切,應該說是陷阱門。中斷包含中斷門和陷阱門,當然還有其他。2、中斷和異常的區別 中斷和異常,都是程序執行過

2、程中的強制性轉移。異常,是處理器執行指令過程中監測到錯誤時發生;中斷,通常在程序執行時因硬件而隨機發生(如外圍設備的請求),軟件通過int指令也可以產生中斷。3、中斷門和陷阱門的區別 他們的區別很微小,即執行時是否影響中斷允許標志IF。中斷門會在執行前前將IF設為0,完事后iret指令會從堆棧上恢復IF的原值,這樣可以避免其他中斷干擾當前中斷的處理;而陷阱門不會。因此,中斷門最適宜于處理中斷,而陷阱門適宜于處理異常。 4、中斷的分類 中斷分內部和外部中斷兩種。 內部中斷,即軟件調用int n產生。 外部中斷,由硬件產生,其又分不可屏蔽和可屏蔽兩種,分別有CPU的引腳NMI和INTR接收。NMI

3、中斷對應中斷向量號2;INTR中斷可通過控制器8259A設置其運行。此兩者的區別是,是否收到IF位的影響,顯然,NMI中斷他老人家不會理會IF位的值。4. 利用對象來共享系統資源5. 本地過程調用7.2Windows進程和線程7.2.1Windows的進程和線程的定義7.2.2進程和線程的關聯圖7.1Windows進程和線程的關聯 7.2.3Windows進程的結構 Windows將表示進程的數據結構統稱為執行進程塊,它提供了操作系統管理進程所需要的基本信息。7.2.4Windows線程的結構 7.2.5Windows進程和線程的創建1. 進程的創建過程2. Windows線程的創建過程 (1

4、)在進程的地址空間中為線程創建用戶棧,并初始化運行上下文環境。(2)初始化線程的線程環境塊(3)創建執行線程對象(4)通知Windows子系統新線程已被創建,子系統將新線程的線程插入到相應進程的線程列表中。(5)新線程的句柄和標志被返回給調用的線程(6)線程進入調度隊列等待執行7.3Windows處理器調度機制7.3.1調度優先級圖7.3應用優先級別和系統的優先級別的對應關系 在Windows中,每個線程都被賦予了優先級的概念,線程總共有32個優先級數從0(最低)到31(最高)。從前面的章節我們知道,線程是從屬于某個進程的,那么對于某個具體進程的某個線程的優先級是怎么確定的呢?這得從幾個優先級

5、概念說起。一個線程的優先級是由進程的基本優先級(或者叫優先級類)和線程的相對優先級決定的。因為我們無法直接設置一個線程的優先級數,比如2或29。 進程的基本優先級:他是通過調用系統API-SetPriorityClass來設置,運行中的進程的優先級可以通過任務管理器查看。基本優先級是針對進程來講的,基本優先級有8個類別,分別是: ABOVE_NORMAL_PRIORITY_CLASS,高于一般BELOW_NORMAL_PRIORITY_CLASS,低于一般HIGH_PRIORITY_CLASS, 高 IDLE_PRIORITY_CLASS, 空閑 NORMAL_PRIORITY_CLASS,

6、一般PROCESS_MODE_BACKGROUND_BEGIN,PROCESS_MODE_BACKGROUND_END,REALTIME_PRIORITY_CLASS. 實時 如果程序沒有進行特別設置,那么進程的基本優先級將會設置為NORMAL_PRIORITY_CLASS這個級別。先對來說,使用高于正常的優先級需要特別小心,特別是REALTIME_PRIORITY_CLASS.他表示進程中線程必須立即對事件作出響應,以便執行關鍵時間的任務.該進程中的線程還會搶先于操作系統組件之前運行.使用本優先級類時必須極端小心.線程相對優先級:相對優先級是針對線程的,他是通過調用SetThreadPrio

7、rity函數設置的。具體參數可以參考MSDN.那么線程的優先級到底是怎么確定的呢?基本優先級和相對優先級如何結合的呢?下表就是他們的對應關系 7.3.2線程狀態 圖7.4Windows線程狀態轉換圖 7.3.3線程調度機制1. 調度數據庫 圖7.5調度數據庫的不同優先級就緒線程隊列 2. 時間配額3. 調度算法 采用基于優先級的搶占式調度算法。4. 上下文切換 線程的核心棧用來完成上下文切換7.4Windows的內存管理7.4.1內存管理器進程一般只有一部分虛擬地址空間中的數據是駐留在物理內存中,這一部分虛擬地址空間被稱為工作集。7.4.2內存管理的機制1. 頁2. 共享內存3. 堆管理4. 系統內存池7.5虛擬地址空間7.5.1虛擬地址空間布局圖7.8 32位Windows的虛擬地址空間布局 7.5.2虛擬地址轉換圖7.

溫馨提示

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

評論

0/150

提交評論