WindowsNT的設計目標①可擴充性 ②可移植性 ③可靠性 ④兼容性 ⑤性能
WindowsNT的結構①系統用戶態部分(WindowsNT保護子系統) ②系統核心態部分(NT執行體)
對象對象是個抽象數據結構在WindowsNT中用以表示所有資源對象用來表示資源
對象類具有相同特性的對象可歸為一個對象類對象是對象類中的一個實例對象類是描述資源類型的
對象的組成結構對象頭和對象體對象管理程序控制對象頭其他執行體部件控制它們自己創建的對象體
WindowsNT進程的定義一個程序的動態調用
WindowsNT進程的組成①一個可執行的程序②一個私用的地址空間③系統資源④至少有一個執行線程
WindowsNT進程的特點
④進程是作為對象來實現的⑤進程要求至少有一個執行線程⑥進程沒設進程控制塊PCB進程的控制和管理信息被放在進程對象的對象體中以及局限於進程的對象表中⑦WindowsNT中的進程不是處理機調度的基本單位所以沒有必要區分進程的狀態⑧當系統啟動時系統為每一環境子系統建立一個服務器進程每當用戶的應用程序啟動時相應的環境子系統進程調用執行體的進程管理程序為之建立一個進程然後進程管理程序又調用對象管理程序為之建立一個進程對象⑨進程管理程序不維護進程的父子或其他關系⑩進程有內含的同步機制
WindowsNT線程的定義進程內的一個可調度實體
線程的組成①一個唯一的標識符即客戶ID②描述處理機狀態的一組寄存器內容③兩個棧用戶棧和核心棧④一個私用存儲區
引進線程目的主要目的是要有效地實現並行性多進程的方式雖然也可以實現並行性但采用線程比采用進程實現並行性更方便更有效以UNIX為例當一個進程創建一個子進程時系統必須把父進程地址空間的所有內容拷貝到子進程的地址空間中去對大地址空間來說這樣的操作是很費時的更何況兩進程還要建立共享數據如果采用多線程要好得多因為這些線程共享進程的同一地址空間對象句柄及其他資源
進程和線程之間的區別和聯系
①線程是進程的一個組成部分每個NT進程在創建時只有一個線程需要時這個線程可以再創建其他線程②一個進程的多個線程都在這個進程的地址空間內活動③進程是資源的基本分配單位這就是資源是分配給進程的而不是分配給線程的並且系統還為分配給進程的資源規定了配額④處理機調度的基本單位是線程在線程之間競爭處理機真正在處理機上執行的是線程線程在執行中需要資源時系統從進程的配額中扣除並分配給它⑤線程在執行過程中需要同步在不同的進程的線程之間的同步要用消息傳遞機制消息傳遞要用到進程的資源——端口(端口也是對象端口上有消息隊列)因此可以這們說通信的是線程使用的資源卻是進程的(服務器進程可以創建多端口以利於多線程通信)
WindowsNT內核的特點WindowsNT內核的特點是采用微內核技術它提供了一組精心設計的操作系統原語和機制通過使用這些原語和機制執行體可以構造更多高級的操作系統功能內核與其它執行體不同的是內核永久駐留內存內核的執行是不可搶占的並總運行在核心態
內核的基本(主要)功能①調度線程的執行②中斷和異常的處理③完成低級的多處理機間的同步④電源故障的排除(實現系統的恢復過程)
線程調度采用的調度算法是什麼?
線程調度采用的調度算法是可搶占的動態優先級調度算法線程調度程序按線程的優先級進行調度高優先級的線程先被調度線程在執行過程中優先級可以變化調度程序調度時所依據的要主數據結構是多優先級就緒隊列
中斷是什麼?
WindowsNT中中斷是異步事件主要由硬件如I/O設備處理機時鐘或定時器引起的是隨機發生的中斷處理機的事件異常異常是同步事件是某些特定指令執行的結果如主存存取錯浮點數被零除等WindowsNT還把系統服務調用看作是異常
WindowsNT如何處理中斷與異常?
當中斷或異常發生被系統捕捉後系統將執行的線程從用戶態轉換到核心態將處理機的控制權轉交給其首地址存放在主存固定單元的陷阱處理程序陷阱處理程序被調用後它首先保護執行線程被中斷的斷點現場在此期間屏蔽中斷其次根據中斷/異常的原因決定將控制權交給相應的處理程序①如果是中斷根據中斷源將控制權轉交給相應的處理程序
[] [] []
From:http://tw.wingwit.com/Article/program/czxt/201311/24313.html