国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Windows 管理: 了解 Windows Vista 內(nèi)核:第一部分(轉(zhuǎn)與 TechNet )
這是系列文章的第一部分,探討的是 Windows Vista 內(nèi)核中的新增內(nèi)容。在這一期中,我將著重說明在進(jìn)程、線程和 I/O 方面的更改;在將來幾期內(nèi)容中將涉及到內(nèi)存管理、啟動和關(guān)閉、可靠性和恢復(fù)以及安全性方面的內(nèi)容。
本文的范圍僅限于對 Windows Vista? 內(nèi)核的更改,尤其是對 Ntoskrnl.exe 和與其緊密關(guān)聯(lián)的組件的更改。請記住,在 Windows Vista 中還存在許多其他重大更改,但這些卻超出了內(nèi)核的范圍,因此本文將不予以說明。其中包括對外殼(如集成的桌面搜索)、網(wǎng)絡(luò)(如新的 IPv6 堆棧和雙向防火墻)和下一代圖形模型(如 Aero? Glass、Windows? Presentation Foundation、桌面窗口管理器和新圖形驅(qū)動程序模型)的改進(jìn)。而且未涉及的內(nèi)容還包括新的 Windows 用戶模式和內(nèi)核模式驅(qū)動程序框架(UMDF 和 KMDF),因為在較早的 Windows 版本上它們在后級別才是可安裝的。
CPU 時鐘周期計數(shù)
Windows Vista 包含了進(jìn)程和線程方面的大量增強功能,其中包括使用 CPU 時鐘周期計數(shù)器以較公平地進(jìn)行 CPU 分配,以及使用新的多媒體類計劃程序服務(wù) (MMCSS),它有助于媒體應(yīng)用程序提供穩(wěn)定的播放。
所有 Windows NT? 版本,包括 Windows Vista 程序在內(nèi),大約在每 10 ms 或 15 ms(毫秒)執(zhí)行一次間隔計時器中斷例程,間隔取決于硬件平臺。該例程查看它所中斷的線程并更新線程的 CPU 使用統(tǒng)計數(shù)據(jù),就好像該線程在整個間隔期間都在運行,而事實上,線程可能僅在間隔就要結(jié)束前才開始執(zhí)行。而且,從技術(shù)上講,可能已經(jīng)為線程分配了 CPU,但卻一直沒有機會運行,因為執(zhí)行的是硬件和軟件中斷例程。
雖然對于報告線程和進(jìn)程 CPU 使用情況的診斷工具來說,基于時鐘的時間計算是一個好方法,但是,若由線程計劃程序使用該方法將導(dǎo)致不公平的 CPU 分配。默認(rèn)情況下,Windows 客戶端版本上的線程最多可運行 2 個時鐘節(jié)拍(如果是在前臺中運行則為 6 個時鐘節(jié)拍)。然而,根據(jù)線程在系統(tǒng)上的行為和其他活動,線程實際上可能在 CPU 上根本沒有時間或是最多得到 6 個時鐘節(jié)拍(如果是在前臺中運行則為 18 個時鐘節(jié)拍)。
圖 1 顯示了兩個具有相同優(yōu)先級的線程同時準(zhǔn)備好運行時發(fā)生的不公平情況。計劃程序假定線程 A 在整個間隔期間內(nèi)運行時,線程 A 一直運行到下一時間片間隔過期,因此也就可以確定線程 A 已運行完畢。而且,在線程 A 運行期間發(fā)生的中斷應(yīng)由線程 A 完全負(fù)責(zé)。在下一間隔內(nèi),計劃程序挑選線程 B 來接續(xù),并且要在整個間隔內(nèi)運行。
圖 1 不公平的線程計劃
在 Windows Vista 中,計劃程序使用現(xiàn)代處理器的時鐘周期計數(shù)器寄存器精確地跟蹤線程所執(zhí)行的 CPU 時鐘周期數(shù)。通過估計 CPU 在一個時鐘間隔內(nèi)能夠執(zhí)行的時鐘周期數(shù),它可以更準(zhǔn)確地在 CPU 上布置輪循。另外,Windows Vista 計劃程序不會根據(jù)線程的輪循計數(shù)中斷執(zhí)行。這就意味著,在 Windows Vista 上,線程始終會得到至少一次在 CPU 上運行的機會,而且永遠(yuǎn)不會執(zhí)行多個額外時鐘間隔,這使應(yīng)用程序的行為更公平,也更具確定性。圖 2 顯示了 Windows Vista 如何響應(yīng)圖 1 中所示的情況,方法是為兩個線程提供至少一個時間片的執(zhí)行間隔。
圖 2 Windows Vista 基于時鐘周期的計劃
查看進(jìn)程的 CPU 使用情況”邊欄說明了用戶如何通過使用 Process Explorer 實用工具監(jiān)視進(jìn)程的 CPU 時鐘周期使用情況。
多媒體類計劃程序服務(wù)
用戶期望多媒體應(yīng)用程序(包括音樂和視頻播放器)能夠提供無縫的播放體驗。然而,其他同時運行的應(yīng)用程序(如防病毒、內(nèi)容索引甚至是郵件客戶端)對 CPU 的要求會帶來不和諧的因素。為了提供更佳的播放體驗,Windows Vista 引入 MMCSS 來管理多媒體線程的 CPU 優(yōu)先級。
像 Windows Media? Player 11 這樣的多媒體應(yīng)用程序使用能夠表明其多媒體特性的新 API,通過 MMCSS 進(jìn)行注冊,它必須與下列按名稱排列的注冊表項之一匹配:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\Currentversion\Multimedia\SystemProfile\Tasks
各種任務(wù)注冊表項可指定與不同多媒體類型相關(guān)聯(lián)的線程為 CPU 和圖形處理器資源獲取的首選級別(盡管在 Windows Vista 中未實現(xiàn)圖形處理器資源管理)。圖 3 顯示了在干凈安裝 Windows Vista 后其中一個任務(wù)注冊表項的內(nèi)容,盡管第三方開發(fā)人員能夠添加自己的任務(wù)定義。
圖 3 多媒體類計劃程序音頻任務(wù)定義 (單擊該圖像獲得較大視圖)
在 %SystemRoot%\System32\Mmcss.dll 中實現(xiàn)且在服務(wù)主機 (Svchost.exe) 進(jìn)程中運行的 MMCSS 具有可在優(yōu)先級 27 運行的優(yōu)先級管理線程。(Windows 中線程優(yōu)先級的范圍是從 0 到 31。)此線程將已注冊的多媒體線程的優(yōu)先級推進(jìn)到另一個范圍內(nèi),該范圍與任務(wù)注冊表項(如圖 4 所示)的計劃類別值相關(guān)聯(lián)。在 Windows 中,線程優(yōu)先級 16 及更高級別處在實時優(yōu)先級范圍內(nèi)并且高于系統(tǒng)上的其他所有線程(除了內(nèi)核的內(nèi)存管理器工作線程,該線程在優(yōu)先級 28 和 29 運行)。僅管理帳戶(如執(zhí)行 MMCSS 的“本地系統(tǒng)”帳戶)具有設(shè)置實時線程優(yōu)先級所需的提升優(yōu)先級權(quán)限。
在播放音頻文件時,Windows Media Player 注冊音頻任務(wù)線程;在播放視頻時,Windows Media Player 注冊播放任務(wù)線程。對于已經(jīng)指明它們在擁有前臺窗口的進(jìn)程中運行時并且在將任務(wù)的定義注冊表項中的 BackgroundOnly 值設(shè)置為 True 時將同時傳遞流的所有線程,MMCSS 服務(wù)會對其進(jìn)行提升。
但是在 MMCSS 想要幫助多媒體線程獲得所需的 CPU 時間的同時,它還想確保其他線程至少也能獲得一些 CPU 時間,這樣,系統(tǒng)和其他應(yīng)用程序才能保持響應(yīng)能力。因此,MMCSS 為其他活動保留了一定百分比的 CPU 時間,并在以下注冊表值中進(jìn)行指定:
HKLM\Software\Microsoft\Windows NT\Currentversion\Multimedia\SystemProfile\SystemResponsiveness
默認(rèn)情況下,此比例為 20%;MMCSS 監(jiān)視 CPU 的使用情況,以確保在其他線程需要 CPU 時,在 10 ms 期間內(nèi)提升多媒體線程所占的時間不超過 8 ms。為了使多媒體線程不占用剩下的 2 ms,計劃程序?qū)⑵鋬?yōu)先級設(shè)置在 1-7 級的范圍內(nèi)。
您可以通過閱讀“查看 MMCSS 優(yōu)先級提升”邊欄了解 MMCSS 是如何提升線程優(yōu)先級的。
基于文件的符號鏈接
Windows Vista I/O 的相關(guān)更改包括基于文件的符號鏈接、更有效的 I/O 完成處理、對 I/O 取消的全面支持以及優(yōu)先 I/O。
終于在 Windows Vista 中見到符號文件鏈接(或如在 UNIX 中那樣稱作軟鏈接)了,許多人認(rèn)為它是 NTFS 中缺少的文件系統(tǒng)功能。NTFS 的 Windows 2000 版本引入了符號目錄鏈接(稱為目錄接合),允許用戶創(chuàng)建指向其他目錄的目錄,但是在 Windows Vista 版本發(fā)布之前,NTFS 僅支持文件的硬鏈接。
Windows 解決符號鏈接和目錄接合所采用的方式的最大區(qū)別在于處理所發(fā)生的位置。Windows 在本地系統(tǒng)上處理符號鏈接,即使它們引用遠(yuǎn)程文件服務(wù)器上的位置。Windows 在服務(wù)器本身上處理引用遠(yuǎn)程文件服務(wù)器的目錄接合。因此,服務(wù)器上的符號鏈接可以引用僅從客戶端才能訪問的位置(如其他客戶端卷),而目錄接合則做不到。為了解決這個問題,Windows Vista 支持適用于文件和目錄的新符號鏈接類型。
已經(jīng)對許多文件系統(tǒng)命令進(jìn)行了更新,以了解符號鏈接的含義。例如,Delete 命令知道不要跟隨鏈接(這樣會導(dǎo)致目標(biāo)的刪除),而是要刪除鏈接。然而,由于不是所有的應(yīng)用程序都能正確地處理符號鏈接,因此,創(chuàng)建符號鏈接需要新的創(chuàng)建符號鏈接權(quán)限,而默認(rèn)情況下,僅有管理員才具有該權(quán)限。
您可以在命令提示符下使用 Mklink 命令創(chuàng)建符號鏈接。命令提示符的內(nèi)置目錄命令通過用 <SYMLINK> 標(biāo)記符號鏈接并在括號中顯示目標(biāo)的方式標(biāo)識符號鏈接,如圖 5 中所示。Windows 資源管理器也可識別符號鏈接,并使用快捷方式箭頭顯示。可以通過將“鏈接目標(biāo)”列添加到瀏覽窗口中來查看資源管理器中的鏈接目標(biāo)。
圖 5 使用 Mklink 創(chuàng)建符號鏈接 (單擊該圖像獲得較大視圖)
I/O 完成和取消
對 I/O 系統(tǒng)所做的大量更改可改進(jìn)服務(wù)器應(yīng)用程序的性能。這些應(yīng)用程序通常使用稱為完成端口的同步對象來等待異步 I/O 請求的完成。在 Windows Vista 之前,當(dāng)此類 I/O 完成時,已發(fā)布 I/O 的線程將執(zhí)行 I/O 完成工作,這可切換到線程所屬的進(jìn)程并中斷所有正在進(jìn)行的其他工作。然后,I/O 系統(tǒng)將更新完成端口的狀態(tài),以喚醒正在等待完成端口進(jìn)行狀態(tài)更改的線程。
在 Windows Vista 上,I/O 完成處理不必非由已發(fā)布 I/O 的線程執(zhí)行,但是必須由等待完成端口將其喚醒的線程來執(zhí)行。這個相對較小的更改避免了不必要的線程計劃以及可能造成應(yīng)用程序和系統(tǒng)整體性能下降的上下文切換。為了進(jìn)一步提高性能,服務(wù)器可以從一個請求的完成中檢索多個 I/O 操作的結(jié)果,避免轉(zhuǎn)換到內(nèi)核模式。
從最終用戶的角度來看,I/O 系統(tǒng)中最可見的更改可能是 Windows Vista 所支持的取消同步 I/O 操作。如果曾經(jīng)執(zhí)行過 net view 命令或試圖使用 Windows XP 或 Windows Server? 2003 訪問過脫機遠(yuǎn)程系統(tǒng)的共享,您就已經(jīng)體驗到了無法取消的 I/O 操作問題:直到網(wǎng)絡(luò)超時過期后,命令或文件瀏覽器才能響應(yīng)。應(yīng)用程序沒有選擇,只能等待,直至操作失敗,因為它沒有辦法告知正在執(zhí)行 I/O 的設(shè)備驅(qū)動程序不需再理會 I/O 了。
在 Windows Vista 中,大多數(shù) I/O 操作都可以取消,包括 Net View 和資源管理器使用的打開文件 I/O。然而,必須更新應(yīng)用程序以響應(yīng)最終用戶的取消 I/O 請求,而且許多與具有超時設(shè)置的設(shè)備進(jìn)行交互的 Windows Vista 實用工具已得到必要的支持。例如,實際上由每個 Windows 應(yīng)用程序(包括第三方應(yīng)用程序)使用的文件打開和保存對話框現(xiàn)在允許在試圖顯示文件夾內(nèi)容時啟用“取消”按鈕。在按 Ctrl+C 時,Net 命令也可取消其同步 I/O。
可以通過在 Windows Vista 上打開命令提示符并鍵入以下內(nèi)容來查看 I/O 取消所帶來的好處:
net view (\\nonexistentmachine)
在 Windows 試圖聯(lián)系不存在的系統(tǒng)時該命令將掛起,但可以通過鍵入 Ctrl+C 來終止該命令。在 Windows XP 中,Ctrl+C 不會產(chǎn)生影響,并且直到網(wǎng)絡(luò)操作超時后命令才會返回。
在 Windows 以前的版本中會引發(fā)用戶問題的另一類 I/O 就是設(shè)備驅(qū)動程序不能正確取消的 I/O,因為設(shè)備驅(qū)動程序輕易不會知道它們應(yīng)該這樣做。如果曾經(jīng)終止過進(jìn)程,但隨后發(fā)現(xiàn)它在進(jìn)程查看工具中有所延遲,那么,您已經(jīng)親眼目睹了設(shè)備驅(qū)動程序無法對進(jìn)程終止做出響應(yīng),并且取消由未完成進(jìn)程發(fā)布的 I/O 這兩個過程。直到所有進(jìn)程的 I/O 已經(jīng)完成或已被取消,Windows 才能執(zhí)行最終進(jìn)程清理。在 Windows Vista 中,設(shè)備驅(qū)動程序能夠很容易地注冊進(jìn)程終止的通知,因此,大多數(shù)無法終止的進(jìn)程問題也就迎刃而解了。
I/O 優(yōu)先級
雖然 Windows 始終支持 CPU 使用情況的排列優(yōu)先級,但是卻未包括 I/O 優(yōu)先級這一概念。如果沒有 I/O 優(yōu)先級,搜索索引、病毒掃描和磁盤碎片整理等后臺活動會對前臺操作的響應(yīng)性帶來嚴(yán)重的影響。例如,用戶在另一進(jìn)程正在執(zhí)行磁盤 I/O 時啟動應(yīng)用程序或打開文檔,則該用戶將體驗到延遲,因為前臺任務(wù)要等待磁盤訪問。同樣的干擾也會影響到多媒體內(nèi)容(如硬盤上的歌曲)流播放的質(zhì)量。
為了有助于前臺 I/O 操作獲取首選項,Windows Vista 引入了兩個全新類型的 I/O 優(yōu)先級排列:單獨 I/O 操作的優(yōu)先級和 I/O 帶寬保留。Windows Vista I/O 系統(tǒng)內(nèi)部包括對五個 I/O 優(yōu)先級的支持,如圖 6 所示,但是僅使用了四個優(yōu)先級(Windows 的未來版本可能支持“高”優(yōu)先級)。
I/O 具有“中等”默認(rèn)優(yōu)先級,內(nèi)存管理器想要在低內(nèi)存情況下將臟內(nèi)存數(shù)據(jù)寫到磁盤中從而為其他數(shù)據(jù)和代碼在 RAM 中留出空間時,將使用“關(guān)鍵”優(yōu)先級。Windows Task Scheduler 將具有默認(rèn)任務(wù)優(yōu)先級的任務(wù) I/O 優(yōu)先級設(shè)置為“低”,并將由執(zhí)行后臺處理的應(yīng)用程序(為 Windows Vista 而編寫)指定的優(yōu)先級設(shè)置為“非常低”。所有 Windows Vista 后臺操作(包括 Windows Defender 掃描和桌面搜索索引)均使用“非常低”I/O 優(yōu)先級。
系統(tǒng)存儲類設(shè)備驅(qū)動程序 (%SystemRoot%\System32\Classpnp.sys) 強制使用 I/O 優(yōu)先級,因此也就自動應(yīng)用于指向大多數(shù)存儲設(shè)備的 I/O。類和其他存儲驅(qū)動程序?qū)ⅰ爸械取盜/O 插入到隊列內(nèi)優(yōu)先級為“低”和“非常低”的 I/O 之前,但是至少應(yīng)每秒發(fā)布一個等待“低”或“非常低”I/O 的操作,這樣后臺進(jìn)程才可以向前進(jìn)行。使用“非常低”I/O 讀取數(shù)據(jù)還會使緩存管理器立刻將修改寫入磁盤,并繞過讀取操作的預(yù)讀邏輯,否則它會優(yōu)先從正在訪問的文件中進(jìn)行讀取。請將邊欄“查看“非常低”I/O 優(yōu)先級”作為使用 Process Monitor 實用工具的“非常低”I/O 優(yōu)先級的示例了解一下。
Windows Vista 帶寬保留支持對于媒體播放機應(yīng)用程序非常有用,Windows Media Player 將其連同 MMCSS 優(yōu)先級提升一起使用,以提供對本機內(nèi)容近乎穩(wěn)定的播放體驗。媒體播放機應(yīng)用程序要求 I/O 系統(tǒng)確保它能夠以指定速率讀取數(shù)據(jù),如果設(shè)備能夠以請求的速率傳遞數(shù)據(jù)而且現(xiàn)有保留也允許的情況下,它將針對發(fā)布 I/O 的頻率以及 I/O 應(yīng)具有的大小兩方面為應(yīng)用程序提供指導(dǎo)。I/O 系統(tǒng)不會為其他 I/O 提供服務(wù),除非它能夠滿足在目標(biāo)存儲設(shè)備上做出保留的應(yīng)用程序的要求。
在 I/O 系統(tǒng)中值得一提的一個最終更改與 I/O 操作的大小有關(guān)。因為第一版 Windows NT、內(nèi)存管理器和 I/O 系統(tǒng)已將單獨存儲 I/O 請求所處理的數(shù)據(jù)數(shù)量限制為 64KB。因此,即使應(yīng)用程序發(fā)布了一個更大的 I/O 請求,也會被分解為最大大小為 64KB 的多個請求。每個 I/O 都導(dǎo)致了轉(zhuǎn)換到內(nèi)核模式的開銷并在存儲設(shè)備上啟動 I/O 傳輸,因此在 Windows Vista 中,存儲 I/O 請求大小將不再受限。已對一些 Windows Vista 用戶模式組件進(jìn)行了修改,以利用對更大 I/O 的支持,包括資源管理器的復(fù)制功能和命令提示符的 Copy 命令(現(xiàn)在發(fā)布 1MB 的 I/O)。
預(yù)告
現(xiàn)在,您已經(jīng)了解了 Windows Vista 內(nèi)核功能增強的兩個方面。預(yù)期您可以在《Windows Internals》(Windows 內(nèi)部結(jié)構(gòu))(與 David Solomon 共同執(zhí)筆)一書的下一版本中了解到更詳細(xì)的信息,計劃與 Windows Server 的下一版本(代碼名為“Longhorn”)同時推出。在下期內(nèi)容中,我將繼續(xù)通過探討內(nèi)存管理以及系統(tǒng)的啟動和關(guān)閉來為您介紹新的內(nèi)核。
Mark Russinovich 是 Microsoft 平臺和服務(wù)部門的技術(shù)人員。他是《Microsoft Windows Internals》(Microsoft Windows 內(nèi)部結(jié)構(gòu))(Microsoft Press, 2004) 的合著者之一,并經(jīng)常在 IT 和開發(fā)人員會議上演講。作為 Winternals Software 的創(chuàng)辦者之一,他隨著 Microsoft 對該公司最近的收購加入到了 Microsoft。他還創(chuàng)建了 Sysinternals,在這里他發(fā)布了 Process Explorer、Filemon 和 Regmon 實用工具。
摘自 February 2007 期刊 TechNet Magazine.
歡迎您提出寶貴意見。歡迎您給我們發(fā)送反饋.
 Top of page
? 2006 Microsoft Corporation 與 CMP Media, LLC.保留所有權(quán)利;不得對全文或部分內(nèi)容進(jìn)行復(fù)制.
TechNet 雜志的相關(guān)文章:
Windows Vista: Enterprise Networking with Windows Vista by Jason Leznek (11/2006)
Windows Vista: Getting Ready for Windows PE 2.0 by Wes Miller (11/2006)
Windows Administration: Inside the Windows Vista Kernel: Part 3 by Mark Russinovich (04/2007)
Security: First Look: New Security Features in Windows Vista by Chris Corio (05/2006)
Windows Vista: 10 Things You Need to Know about Deploying Windows Vista by Michael Niehaus (11/2006)
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Windows CE 進(jìn)程、線程和內(nèi)存管理
Windows NT 和 VMS: 其余的故事 (The Rest of the Story)
[CLR via C#]25. 線程基礎(chǔ)
提高實時操作系統(tǒng)的實時性能和可靠性策略 -- 中國科技網(wǎng)(21AW.com)
您何時需要實時操作系統(tǒng)?
什么時候需要用RTOS?
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服