欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
Windows 管理: 了解 Windows Vista 內核:第 2 部分(轉與 TechNet)
上個(gè)月,我在這個(gè)由三部分構成的系列文章的第一部分,分析了 Windows Vista 內核在進(jìn)程和 I/O 方面的增強功能。
這一次,我將涵蓋到 Windows Vista 對內存管理方式的提升以及系統啟動(dòng)、關(guān)閉和電源管理方面的主要改進(jìn)(第 1 部分)。
Windows? 隨著(zhù)每個(gè)發(fā)行版本的問(wèn)世都在可伸縮性和性能方面進(jìn)行了改進(jìn),Windows Vista? 也不例外。Windows Vista 內存管理器包含了大量增強功能,例如,更大范圍地使用無(wú)鎖同步技術(shù)、鎖定粒度更細、數據結構包更緊密,分頁(yè) I/O 更大、增加了對現代 GPU 內存體系結構的支持,并更有效利用了硬件的轉換旁路緩沖器。另外,Windows Vista 內存管理如今還針對不同工作負荷的要求提供動(dòng)態(tài)地址空間分配。
以下四種采用新技術(shù)的性能增強型功能首次在 Windows Vista 操作系統上登臺亮相:SuperFetch、ReadyBoost、ReadyBoot 和 ReadyDrive。本文稍后將詳細討論這些功能。
動(dòng)態(tài)內核地址空間
Windows 以及其上所運行的應用程序占用的地址空間已經(jīng)達到了 32 位處理器的地址空間極限。默認情況下,Windows 內核被限制在 2GB,或者是 32 位虛擬地址空間總量的一半,另一半則預留給當前正在 CPU 中運行線(xiàn)程的進(jìn)程使用。在其自己的那一半虛擬地址空間中,內核必須映射其自身、設備驅動(dòng)程序、文件系統緩存、內核堆棧、每會(huì )話(huà)代碼數據結構,以及由設備驅動(dòng)程序分配的非分頁(yè)(鎖定的物理內存)緩沖區和分頁(yè)緩沖區。在 Windows Vista 推出之前,內存管理器在引導時(shí)確定針對這些用途分配多少地址空間,但這種不變性有時(shí)會(huì )造成其中某一區域空間被占滿(mǎn),而其他區域仍有大量可用空間的情況。區域空間被用盡會(huì )導致應用程序出現故障,并會(huì )妨礙設備驅動(dòng)程序完成 I/O 操作。
在 32 位 Windows Vista 中,內存管理器動(dòng)態(tài)管理內核的地址空間,根據工作負荷的具體需求為各種用途分配和釋放空間。這樣,用于存儲分頁(yè)緩沖區的虛擬內存量會(huì )隨著(zhù)設備驅動(dòng)程序需求量增加而增加,并會(huì )在驅動(dòng)程序釋放它時(shí)縮小。因此,Windows Vista 將能夠處理更大范圍的工作負荷,同樣,即將推出的代號為“Longhorn”的 32 位版本 Windows Server? 也將升級到可以處理更多的并行終端服務(wù)器用戶(hù)。
當然,在 64 位 Windows Vista 系統上,地址空間約束目前還不屬于實(shí)質(zhì)性的限制,因此,在將這些約束配置為相應最大值時(shí),不需要對其進(jìn)行任何特殊處理。
內存優(yōu)先級
就像 Windows Vista 添加 I/O 優(yōu)先級(如上一部分中所述)一樣,它還實(shí)現內存優(yōu)先級。要了解 Windows 如何使用內存優(yōu)先級,就需要掌握內存管理器如何實(shí)現其內存緩存(稱(chēng)為“待機列表”)。在 Windows Vista 之前的所有 Windows 版本中,當某個(gè)進(jìn)程所擁有的物理頁(yè)面(大小一般為 4KB)被系統回收時(shí),內存管理器通常將該頁(yè)面置于“待機列表”末尾。如果進(jìn)程想要再次訪(fǎng)問(wèn)該頁(yè)面,內存管理器會(huì )從“待機列表”獲取該頁(yè)面,然后將其重新分配給該進(jìn)程。如果進(jìn)程想要使用物理內存的新頁(yè)面,但沒(méi)有可用的內存,則內存管理器會(huì )為其提供“待機列表”前端的頁(yè)面。此方案基本上對待機列表中的所有頁(yè)面都同等對待,僅按頁(yè)面被置于列表中的時(shí)間來(lái)對它們進(jìn)行排序。
在 Windows Vista 上,內存的每個(gè)頁(yè)面都具有一個(gè)在 0 到 7 之間的優(yōu)先級,這樣,內存管理器會(huì )將“待機列表”劃分為八個(gè)列表,每一個(gè)都用來(lái)存儲具有特定優(yōu)先級的頁(yè)面。當內存管理器想要從“待機列表”中獲取某一頁(yè)面時(shí),它會(huì )先從低優(yōu)先級列表獲取頁(yè)面。頁(yè)面的優(yōu)先級通常反映的是第一個(gè)導致該頁(yè)面分配的線(xiàn)程的優(yōu)先級。(如果頁(yè)面是共享的,它反映的就是共享線(xiàn)程的最高內存優(yōu)先級。)線(xiàn)程會(huì )從其所屬的進(jìn)程繼承它的頁(yè)面優(yōu)先級值。當內存管理器預見(jiàn)到某一進(jìn)程要訪(fǎng)問(wèn)內存時(shí),會(huì )將低優(yōu)先級用于它從磁盤(pán)推測性讀取的頁(yè)面。
默認情況下,進(jìn)程的頁(yè)面優(yōu)先級值為 5,但應用程序和系統可通過(guò)函數更改進(jìn)程和線(xiàn)程的頁(yè)面優(yōu)先級值。只有從宏觀(guān)上理解頁(yè)面的相對優(yōu)先級時(shí),才能意識到內存優(yōu)先級的真正價(jià)值,也就是 SuperFetch 所發(fā)揮的作用。
SuperFetch
內存管理器的重大改變體現在它對物理內存的管理方式。先前版本 Windows 所使用的“待機列表”管理有兩個(gè)局限性。首先,頁(yè)面的優(yōu)先化僅取決于進(jìn)程最近過(guò)去的行為,而不會(huì )預見(jiàn)到它們未來(lái)的內存需求。其次,用于優(yōu)先化的數據僅限定于進(jìn)程在任意給定時(shí)刻所擁有的頁(yè)面列表。這兩個(gè)缺點(diǎn)會(huì )導致出現“午餐后綜合癥”之類(lèi)的狀況,即您離開(kāi)計算機一段時(shí)間,但需要內存密集型的系統應用程序在此期間一直都在運行(例如病毒掃描或磁盤(pán)碎片整理)。此應用程序會(huì )強制您的活動(dòng)應用程序已在內存中進(jìn)行緩存處理的代碼和數據由內存密集型活動(dòng)重寫(xiě)。等您回來(lái)后,就會(huì )發(fā)現性能變得非常緩慢,因為各應用程序必須從磁盤(pán)請求它們的數據和代碼。
Windows XP 采用了預取支持,該功能基于以前的引導和應用程序啟動(dòng)來(lái)執行大規模的磁盤(pán) I/O,以向內存預加載所預期到的代碼和文件系統數據,從而改進(jìn)了引導和應用程序啟動(dòng)性能。Windows Vista 憑借 SuperFetch 又向前邁進(jìn)了一大步,SuperFetch 是一種通過(guò)歷史信息和前瞻性?xún)却婀芾韥?lái)增強“l(fā)east-recently accessed”(最近最少訪(fǎng)問(wèn)的)方法的內存管理方案。
SuperFetch 作為在服務(wù)主機進(jìn)程 (%SystemRoot%\System32\Svchost.exe) 內運行的 Windows 服務(wù)在 %SystemRoot%\System32\Sysmain.dll 中實(shí)現。該方案依賴(lài)于內存管理器提供的支持,因此它可以檢索頁(yè)面使用歷史,以及引導內存管理器將來(lái)自磁盤(pán)文件或分頁(yè)文件的數據和代碼預加載到“待機列表”中,并為各頁(yè)面指定優(yōu)先級。SuperFetch 服務(wù)基本上是將頁(yè)面跟蹤擴展到曾經(jīng)存儲在內存中但已被內存管理器重新使用以為新數據和代碼讓出空間的數據和代碼。該服務(wù)會(huì )將這一信息存儲在 %SystemRoot%\Prefetch 目錄中擴展名為 .db 的場(chǎng)景文件中(位于用于優(yōu)化應用程序啟動(dòng)的標準預取文件旁邊)。在對內存使用情況的這種深入了解基礎上,SuperFetch 可在物理內存變?yōu)榭捎脮r(shí)預加載數據和代碼。
只要內存變?yōu)榭捎茫ɡ?,當某應用程序退出或釋放內存時(shí)),SuperFetch 便會(huì )要求內存管理器提取最近被驅出的數據和代碼。這將以每秒少數幾頁(yè)的速率完成,并且 I/O 的優(yōu)先級為“非常低”,以便預加載操作不會(huì )影響用戶(hù)或其他活動(dòng)應用程序。因此,如果您離開(kāi)計算機去享用午餐,并且某個(gè)內存密集型的后臺任務(wù)導致活動(dòng)應用程序的代碼和數據在您離開(kāi)期間被驅出內存,則 SuperFetch 通常會(huì )在您回來(lái)之前將所有或大多數代碼和數據返回到內存中。SuperFetch 還包含了對休眠、待機、快速用戶(hù)切換 (FUS) 和應用程序啟動(dòng)的特定場(chǎng)景支持。例如,當系統處于休眠狀態(tài)時(shí),SuperFetch 會(huì )將數據和代碼存儲在它預期(基于以前的休眠)將在后續恢復期間被訪(fǎng)問(wèn)的休眠文件中。相比之下,當您恢復 Windows XP 時(shí),先前緩存的數據在被引用時(shí)必須從磁盤(pán)重新讀取。
請參閱邊欄“觀(guān)察 SuperFetch”以簡(jiǎn)單了解 SuperFetch 如何影響可用內存。
觀(guān)察 SuperFetch
在您使用 Windows Vista 系統一段時(shí)間后,您會(huì )發(fā)現任務(wù)管理器“性能”頁(yè)面上的“可用物理內存”計數器的數值很低。這是因為 SuperFetch 和標準 Windows 緩存處理使用了所有可用物理內存來(lái)緩存磁盤(pán)數據。例如,在您首次引導時(shí),如果您立即運行任務(wù)管理器,則您會(huì )注意到,可用內存值會(huì )隨著(zhù)已緩存內存量的增加而減少。如果您運行一個(gè)內存需求很大的程序,然后退出該程序(分配大量?jì)却娌⒃谥筢尫艃却娴娜魏蚊赓M軟件“RAM 優(yōu)化程序”都適用),或者剛剛復制了一個(gè)非常大的文件,則在系統回收已釋放內存時(shí)可用內存量將增加,并且物理內存用量圖將下降。但隨著(zhù)時(shí)間的過(guò)去,SuperFetch 會(huì )用被強制離開(kāi)內存的數據重新填充緩存,這樣,已緩存內存量將增加,可用內存量將下降。
Watching memory  (單擊該圖像獲得較大視圖)
ReadyBoost
CPU 和內存的速度快到超越了硬盤(pán)的速度,因此磁盤(pán)是一個(gè)常見(jiàn)的系統性能瓶頸。隨機磁盤(pán) I/O 成本尤為高昂,因為磁頭尋道時(shí)間約為 10 毫秒,這對于現今的 3GHz 處理器來(lái)說(shuō)有些漫長(cháng)。盡管 RAM 是用于緩存磁盤(pán)數據的理想選擇,但它的成本也相對較高。不過(guò),閃存通常較為便宜,它隨機讀取的速度最高可比典型硬盤(pán)快 10 倍。因此,Windows Vista 中加入了一個(gè)名為 ReadyBoost 的功能來(lái)利用閃存存儲設備,方法是在這些設備上創(chuàng )建一個(gè)邏輯上介于內存和磁盤(pán)之間的中間緩存層。
ReadyBoost 由一個(gè)在 %SystemRoot%\System32\Emdmgmt.dll 中實(shí)現的運行于服務(wù)主機進(jìn)程中的服務(wù)和一個(gè)卷過(guò)濾器驅動(dòng)程序 (%SystemRoot%\System32\Drivers\Ecache.sys) 組成。(Emd 是“外部?jì)却嬖O備”的簡(jiǎn)稱(chēng),即 ReadyBoost 在開(kāi)發(fā)期間所使用的工作名稱(chēng)。)當您將 USB 密鑰之類(lèi)的閃存設備插入到系統中時(shí),ReadyBoost 服務(wù)會(huì )查看該設備以確定其性能特征并將測試結果存儲在 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\Currentversion\Emdmgmt 中(如圖 1 所示)。
Figure 1 ReadyBoost device test results in the registry (單擊該圖像獲得較大視圖)
如果您還未使用設備進(jìn)行緩存處理,并且新設備大小介于 256MB 和 32GB 之間、對于 4KB 隨機讀取的傳輸率為 2.5MB/s 或更高、對于 512KB 隨機寫(xiě)入的傳輸率為 1.75MB/s 或更高,則 ReadyBoost 將詢(xún)問(wèn)您是否想要將高達 4GB 的存儲空間專(zhuān)門(mén)用于進(jìn)行磁盤(pán)緩存。(盡管 ReadyBoost 可以使用 NTFS,它還是會(huì )將最大緩存大小限制在 4GB,以適應 FAT32 限制。)如果您同意,該服務(wù)便會(huì )在設備的根目錄下創(chuàng )建一個(gè)名為 ReadyBoost.sfcache 的緩存文件,并要求 SuperFetch 在后臺預先填充緩存。
在 ReadyBoost 服務(wù)對緩存進(jìn)行初始化之后,Ecache.sys 設備驅動(dòng)程序會(huì )將所有讀寫(xiě)數據截取到本地硬盤(pán)卷(例如 C:\),并將要寫(xiě)入的所有數據復制到該服務(wù)創(chuàng )建的緩存文件中。Ecache.sys 會(huì )將數據壓縮,壓縮比通常達到 2:1,這樣,4GB 的緩存文件通常將包含 8GB 數據。驅動(dòng)程序會(huì )聯(lián)合使用高級加密標準 (AES) 和一個(gè)隨機生成的每引導會(huì )話(huà)密鑰對其寫(xiě)入的每個(gè)塊進(jìn)行加密,以在將設備從系統移除的情況下保證緩存中數據的保密性。
當 ReadyBoost 確定可從緩存滿(mǎn)足隨機讀取需求時(shí),它便會(huì )從那里向隨機讀取提供服務(wù),但由于硬盤(pán)的有序讀取訪(fǎng)問(wèn)要勝過(guò)閃存,因此,它允許有序訪(fǎng)問(wèn)模式中的讀數據直接移至磁盤(pán),即使該數據位于緩存中。
ReadyBoot
如果系統的內存不到 512MB,則 Windows Vista 會(huì )使用與 Windows XP 一樣的引導時(shí)預取,但如果系統的 RAM 為 700MB 或以上,它便會(huì )使用 RAM 內緩存來(lái)優(yōu)化引導進(jìn)程。緩存的大小取決于可用 RAM 總量,但這足以創(chuàng )建適當的緩存,并還可以為系統留出要順利引導所需的內存。
在每一次引導后,ReadyBoost 服務(wù)(就是剛剛介紹的用于實(shí)現 ReadyBoost 功能的服務(wù))會(huì )使用空閑 CPU 時(shí)間來(lái)為下一次引導計算引導時(shí)緩存計劃。它會(huì )分析來(lái)自前五次引導的文件跟蹤信息,并標識出訪(fǎng)問(wèn)了哪些文件以及這些文件在磁盤(pán)上的位置。該服務(wù)將已處理的跟蹤信息以 .fx 文件形式存儲在 %SystemRoot%\Prefetch\Readyboot 中,并將緩存計劃保存在 HKLM\System\CurrentControlSet\Services\Ecache\Parameters 下的 REG_BINARY 值(這些值針對它們所引用的內部磁盤(pán)卷而命名)中。
緩存由實(shí)現 ReadyBoost 緩存處理的同一設備驅動(dòng)程序 (Ecache.sys) 實(shí)現,但緩存的填充則是由 ReadyBoost 服務(wù)在系統引導時(shí)帶領(lǐng)完成。盡管引導緩存像 ReadyBoost 緩存一樣進(jìn)行壓縮,但 ReadyBoost 和 ReadyBoot 緩存管理之間的另一個(gè)區別是,在 ReadyBoot 模式下,除了 ReadyBoost 服務(wù)的更新之外,緩存不會(huì )變?yōu)榉从吃谝龑陂g讀取或寫(xiě)入的數據。ReadyBoost 服務(wù)會(huì )在引導開(kāi)始后 90 秒時(shí)(或者在其他內存需求批準它的情況下)將緩存刪除,并將緩存的統計信息記錄在 HKLM\System\CurrentControlSet\Services\Ecache\Parameters\ReadyBootStats 中(如圖 2 所示)。Microsoft 性能測試表明,與舊有 Windows XP 預取器相比,ReadyBoot 使性能提高了約 20%。
Figure 2 ReadyBoot Performance statistics (單擊該圖像獲得較大視圖)
ReadyDrive
ReadyDrive 是一項利用了名為 H-HDD 的新型混合硬盤(pán)驅動(dòng)器的 Windows Vista 功能。H-HDD 是一種帶有嵌入式非易失性閃存(還稱(chēng)為 NVRAM)的磁盤(pán)。典型 H-HDD 所包含的緩存大小介于 50MB 和 512MB 之間,但 Windows Vista 緩存限制為 2TB。
Windows Vista 使用 ATA-8 命令來(lái)定義要在閃存中存放的磁盤(pán)數據。例如,Windows Vista 會(huì )在系統關(guān)閉時(shí)將引導數據保存到緩存,從而可以更快速地重新啟動(dòng)。它還會(huì )在系統處于休眠狀態(tài)時(shí)將某些部分的休眠文件數據存儲在緩存中,以便加速后來(lái)的恢復過(guò)程。即使在磁盤(pán)盤(pán)片降速時(shí)也會(huì )啟用緩存,因此,Windows 可以將閃存用作磁盤(pán)寫(xiě)入緩存,這樣可避免在系統靠電池電源運行時(shí)將磁盤(pán)盤(pán)片加速。使磁盤(pán)軸保持關(guān)閉狀態(tài)可以節省由磁盤(pán)驅動(dòng)器在正常使用期間所消耗的大量電源。
引導配置數據庫
Windows Vista 在啟動(dòng)和關(guān)閉方面增強了許多功能。隨著(zhù)“引導配置數據庫”(BCD) 的采用,啟動(dòng)功能在存儲系統和 OS 啟動(dòng)配置、系統啟動(dòng)進(jìn)程的新流程和組織、新登錄體系結構以及對延遲式自動(dòng)啟動(dòng)服務(wù)的支持方面都有所改進(jìn)。Windows Vista 關(guān)閉方面的變化包括 Windows 服務(wù)的預關(guān)閉通知、Windows 服務(wù)關(guān)閉排序以及 OS 對電源狀態(tài)轉換的管理方式的重大改變。
啟動(dòng)進(jìn)程的最明顯變化之一是,系統卷的根目錄中沒(méi)有了 Boot.ini。這是因為,引導配置現在存儲在 BCD 中(在先前版本的 Windows 上,它存儲在 Boot.ini 文本文件中)。Windows Vista 使用 BCD 的其中一個(gè)原因是,BCD 將 Windows 支持的兩個(gè)當前引導體系結構合為了一體:主引導記錄 (MBR) 和可擴展固件接口 (EFI)。MBR 通常由 x86 和 x64 桌面系統使用,而 EFI 則由基于 Itanium 的系統使用(但在不久的將來(lái),桌面 PC 很有可能會(huì )附帶 EFI 支持)。BCD 對固件進(jìn)行了抽象化,并具有超越 Boot.ini 的其他優(yōu)點(diǎn),例如,對 Unicode 字符串和備用預引導可執行文件的支持。
BCD 實(shí)際上存儲在磁盤(pán)上的某個(gè)加載到 Windows 注冊表中以通過(guò)注冊表 API 進(jìn)行訪(fǎng)問(wèn)的注冊表配置單元中。在 PC 上,Windows 將其存儲在系統卷上的 \Boot\Bcd 中。在 EFI 系統上,它位于 EFI 系統分區上。在加載了該配置單元后,它會(huì )在 HKLM\Bcd00000000 下顯示,但因其內部格式?jīng)]有文檔記錄,所以編輯它時(shí)需要使用 %SystemRoot%\System32\Bcdedit.exe 之類(lèi)的工具。也可通過(guò) Windows Management Instrumentation (WMI) 將用來(lái)操縱 BCD 的接口提供給腳本和自定義編輯器使用,并且可以使用“Windows 系統配置實(shí)用程序”(%SystemRoot%\System32\Msconfig.exe) 來(lái)編輯或添加基本參數(如內核調試選項)。
BCD 將平臺范圍的引導設置(例如,默認 OS 選擇和引導菜單超時(shí)時(shí)間)與 OS 特定的設置(例如,OS 引導選項和 OS 引導加載器的路徑)分割開(kāi)來(lái)。例如,圖 3 顯示了在您未使用命令行選項運行 Bcdedit 時(shí),BCD 會(huì )在輸出上部的“Windows 引導管理器”部分顯示平臺設置,接著(zhù)在“Windows 引導加載器”部分顯示 OS 特定的設置。
Figure 3 Settings displayed in BCDEdit (單擊該圖像獲得較大視圖)
當您引導 Windows Vista 安裝時(shí),這個(gè)新方案會(huì )將在先前版本 Windows 上由操作系統加載器 (Ntldr) 處理的任務(wù)劃分為兩種不同的可執行文件:\BootMgr 和 %SystemRoot%\System32\Winload.exe。Bootmgr 會(huì )讀取 BCD 并顯示 OS 引導菜單,而 Winload.exe 會(huì )處理操作系統加載。如果您要執行干凈引導,則 Winload.exe 會(huì )加載引導啟動(dòng)設備驅動(dòng)程序和核心操作系統文件(包括 Ntoskrnl.exe),并將控制權移交給操作系統;如果系統要從休眠狀態(tài)恢復,則 Winload.exe 會(huì )通過(guò)執行 %SystemRoot%\System32\Winresume.exe 將休眠數據加載到內存中并恢復 OS。
Bootmgr 還包含對其他預引導可執行文件的支持。Windows Vista 還隨帶了 Windows 內存診斷 (\Boot\Memtest.exe),該工具已被預配置為用于檢查 RAM 性能狀況的選項,但第三方可以添加其自己的預引導可執行文件,以作為將在 Bootmgr 的引導菜單中顯示的選項使用。
啟動(dòng)進(jìn)程
在先前版本的 Windows 中,各種系統進(jìn)程之間的關(guān)系并不直觀(guān)。例如,在系統引導時(shí),交互登錄管理器 (%SystemRoot%\System32\Winlogon.exe) 會(huì )啟動(dòng)“本地安全機構子系統服務(wù)”(Lsass.exe) 和“服務(wù)控制管理器”(Services.exe)。此外,Windows 會(huì )使用一個(gè)名為 Session 的命名空間容器來(lái)隔離在不同登錄會(huì )話(huà)中運行的進(jìn)程。但在推出 Windows Vista 之前,登錄到控制臺的用戶(hù)共享的是 Session 0(即,由系統進(jìn)程使用的會(huì )話(huà)),這就造成了潛在的安全問(wèn)題。例如,如果某個(gè)運行于 Session 0 中的編寫(xiě)拙劣的 Windows 服務(wù)在交互式控制臺上顯示一個(gè)用戶(hù)界面,從而允許惡意軟件通過(guò)粉碎攻擊之類(lèi)的方法來(lái)攻擊窗口并有可能獲得管理特權,就會(huì )引發(fā)此類(lèi)安全問(wèn)題。
為解決這些問(wèn)題,若干個(gè)系統進(jìn)程都針對 Windows Vista 進(jìn)行了重新設計。會(huì )話(huà)管理器 (Smss.exe) 是在使用先前版本的 Windows 時(shí)在引導期間創(chuàng )建的第一個(gè)用戶(hù)模式進(jìn)程,但在 Windows Vista 上,會(huì )話(huà)管理器會(huì )啟動(dòng)自己的另一個(gè)實(shí)例來(lái)配置 Session 0,該會(huì )話(huà)將獨自供系統進(jìn)程專(zhuān)用。用于 Session 0 的會(huì )話(huà)管理器進(jìn)程將啟動(dòng)“Windows 啟動(dòng)應用程序”(Wininit.exe)(一個(gè)用于 Session 0 的 Windows 子系統進(jìn)程 (Csrss.exe)),然后退出?!癢indows 啟動(dòng)應用程序”會(huì )通過(guò)啟動(dòng)“服務(wù)控制管理器”、“本地安全機構子系統”和一個(gè)用來(lái)管理計算機的終端服務(wù)器連接的新進(jìn)程(即“本地會(huì )話(huà)管理器”(Lsm.exe))持續運行。
當用戶(hù)登錄到系統上時(shí),初始的會(huì )話(huà)管理器會(huì )創(chuàng )建其自己的一個(gè)新實(shí)例來(lái)配置新會(huì )話(huà)。新的 Smss.exe 進(jìn)程會(huì )為這個(gè)新會(huì )話(huà)啟動(dòng) Windows 子系統進(jìn)程和 Winlogon 進(jìn)程。讓主會(huì )話(huà)管理器使用自己的副本初始化新會(huì )話(huà)并不會(huì )為客戶(hù)端系統帶來(lái)任何有利條件,但在充當終端服務(wù)器的 Windows Server“Longhorn”系統上,可以并行運行多個(gè)副本以提高多個(gè)用戶(hù)的登錄速度。
在這個(gè)新的體系結構下,各系統進(jìn)程(包括 Windows 服務(wù))在 Session 0 中進(jìn)行了隔離。如果運行于 Session 0 中的某個(gè) Windows 服務(wù)顯示一個(gè)用戶(hù)界面,則“交互服務(wù)檢測”服務(wù) (%SystemRoot%\System32\UI0Detect.exe) 會(huì )通過(guò)在用戶(hù)的安全上下文中啟動(dòng)自己的實(shí)例并顯示圖 4 中所示的消息來(lái)通知所有登錄的管理員。如果用戶(hù)選擇“顯示消息”按鈕,該服務(wù)會(huì )將桌面切換到 Windows 服務(wù)桌面,用戶(hù)可在這里與服務(wù)的用戶(hù)界面交互,然后再切換回自己的桌面。有關(guān)啟動(dòng)時(shí)會(huì )出現哪些情況的詳細信息,請參閱邊欄“查看啟動(dòng)進(jìn)程關(guān)系”。
Figure 4 Service has displayed a window (單擊該圖像獲得較大視圖)
查看啟動(dòng)進(jìn)程關(guān)系
可使用 Sysinternals (microsoft.com/technet/sysinternals) 提供的 Process Explorer 來(lái)查看 Windows Vista 的進(jìn)程啟動(dòng)樹(shù)。
屏幕快照包括“會(huì )話(huà)”列,您可通過(guò) Process Explorer 的列對話(huà)框添加它。突出顯示的進(jìn)程是初始的 Smss.exe。位于它下面的是 Session 0 的 Csrss.exe 和 Wininit.exe,由于這兩個(gè)進(jìn)程的父進(jìn)程(用于配置 Session 0 的 Smss.exe 實(shí)例)已經(jīng)退出,因此它們左對齊。Wininit 的三個(gè)子進(jìn)程分別是 Services.exe、Lsass.exe 和 Lsm.exe。
Process Explorer 將一組進(jìn)程標識為在 Session 1 中運行,也就是我通過(guò)遠程桌面連接登錄到的會(huì )話(huà)。Process Explorer 用藍色突出色來(lái)顯示與自身使用相同帳戶(hù)運行的進(jìn)程。最后,將 Session 2 初始化,以為登錄到控制臺并創(chuàng )建新登錄會(huì )話(huà)的用戶(hù)做好準備。就是在該會(huì )話(huà)中,Winlogon 將運行并使用 LogonUI 要求新的控制臺用戶(hù)“按 Ctrl+Alt+DELETE 進(jìn)行登錄”,而且在該會(huì )話(huà)中,Logonui.exe 將要求用戶(hù)提供其憑據。
Startup process and session information  (單擊該圖像獲得較大視圖)
憑據提供程序
即使是登錄體系結構也在 Windows Vista 上發(fā)生了變化。在先前版本的 Windows 上,Winlogon 進(jìn)程會(huì )加載在注冊表中指定的“圖形識別與認證”(GINA) DLL 來(lái)顯示要求用戶(hù)提供其憑據的登錄 UI。遺憾的是,GINA 模式受到了許多限制,包括只能配置一個(gè) GINA、第三方很難編寫(xiě)完整的 GINA,以及具有非標準用戶(hù)界面的自定義 GINA 會(huì )改變 Windows 用戶(hù)體驗。
而 Windows Vista 使用了新的“憑據提供程序”體系結構來(lái)代替 GINA。Winlogon 會(huì )啟動(dòng)一個(gè)單獨的進(jìn)程,即“登錄用戶(hù)界面主機”(Logonui.exe),該進(jìn)程將加載在 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\Currentversion\Authentication\Credential Providers 中配置的憑據提供程序。Logonui 可以并行托管多個(gè)憑據提供程序;實(shí)際上,Windows Vista 隨帶了交互式 (Authui.dll) 提供程序和智能卡式 (Smart-cardcredentialprovider.dll) 提供程序。為確保統一的用戶(hù)體驗,LogonUI 會(huì )管理對最終用戶(hù)顯示的用戶(hù)界面,但它還會(huì )允許憑據提供程序指定文本、圖標和編輯控件之類(lèi)的自定義元素。
延遲式自動(dòng)啟動(dòng)服務(wù)
如果您曾經(jīng)在 Windows 系統啟動(dòng)后立即登錄到系統上,您或許在桌面被完全配置并且您可以與外殼和所啟動(dòng)的任何應用程序進(jìn)行交互之前經(jīng)歷了一些延遲。在您登錄時(shí),“服務(wù)控制管理器”會(huì )啟動(dòng)多個(gè)被配置為自動(dòng)啟動(dòng)服務(wù)并因此在引導時(shí)激活的 Windows 服務(wù)。許多服務(wù)都會(huì )執行與登錄活動(dòng)爭用資源的 CPU 密集型初始化和磁盤(pán)密集型初始化。為解決此問(wèn)題,Windows Vista 采用了一個(gè)被稱(chēng)為延遲式自動(dòng)啟動(dòng)的新服務(wù)啟動(dòng)類(lèi)型,如果服務(wù)不必在 Windows 引導后立即激活,便可使用該類(lèi)型。
“服務(wù)控制管理器”會(huì )在自動(dòng)啟動(dòng)服務(wù)完成啟動(dòng)后再啟動(dòng)配置為延遲式自動(dòng)啟動(dòng)的服務(wù),并將這些服務(wù)的初始線(xiàn)程優(yōu)先級設置為 THREAD_PRIORITY_LOWEST。此優(yōu)先級別會(huì )使線(xiàn)程執行的所有磁盤(pán) I/O 都采用“非常低”I/O 優(yōu)先級。在服務(wù)完成初始化后,“服務(wù)控制管理器”會(huì )將其優(yōu)先級設置為普通。將延遲式啟動(dòng)、較低的 CPU 和內存優(yōu)先級與后臺磁盤(pán)優(yōu)先級結合后,大大減少了與用戶(hù)登錄間的相互沖突。許多 Windows 服務(wù)(包括后臺智能傳輸、Windows Update 客戶(hù)端和 Windows Media? Center)都使用這個(gè)新啟動(dòng)類(lèi)型來(lái)幫助提升引導后的登錄性能。
關(guān)閉
困擾著(zhù) Windows 服務(wù)編寫(xiě)人員的一個(gè)問(wèn)題是,在 Windows 關(guān)閉過(guò)程中,默認情況下他們最多只有二十秒鐘的時(shí)間來(lái)執行清理。Windows Vista 之前的 Windows 版本一直不支持等待所有服務(wù)都退出的干凈關(guān)閉,因為存在程序錯誤的服務(wù)可能會(huì )無(wú)限期地阻止關(guān)閉。有些服務(wù)(例如那些具有與網(wǎng)絡(luò )相關(guān)的關(guān)閉操作或必須將大量數據保存到磁盤(pán)的服務(wù))可能需要更多的時(shí)間,因此 Windows Vista 允許服務(wù)請求預關(guān)閉通知。
在 Windows Vista 關(guān)閉時(shí),“服務(wù)控制管理器”會(huì )首先通知那些要求預關(guān)閉通知的服務(wù)。它將無(wú)限期地等待這些服務(wù)退出,但如果這些服務(wù)存在程序錯誤且沒(méi)有響應查詢(xún),則“服務(wù)控制管理器”會(huì )在三分鐘后放棄并繼續前進(jìn)。一旦所有這些服務(wù)都已退出或超時(shí)時(shí)間已滿(mǎn),“服務(wù)控制管理器”就會(huì )接著(zhù)對剩余的服務(wù)執行舊有形式的服務(wù)關(guān)閉。組策略和 Windows Update 服務(wù)會(huì )在全新的 Windows Vista 安裝中注冊預關(guān)閉通知。
組策略和 Windows Update 服務(wù)還會(huì )使用另一個(gè) Windows Vista 服務(wù)功能:關(guān)閉排序。各服務(wù)始終都可以指定啟動(dòng)依存性,“服務(wù)控制管理器”要服從這些依存性以按照滿(mǎn)足這些依存性的順序來(lái)啟動(dòng)服務(wù),但在 Windows Vista 之前,各服務(wù)還無(wú)法指定關(guān)閉依存性?,F在,注冊預關(guān)閉通知的服務(wù)也可以將其自己插入到存儲在 HKLM\System\CurrentControlSet\Control\PreshutdownOrder 的列表中,“服務(wù)控制管理器”將根據它們的相應順序將其關(guān)閉。有關(guān)這些服務(wù)的詳細信息,請參閱邊欄“標識延遲式自動(dòng)啟動(dòng)和預關(guān)閉服務(wù)”。
電源管理
睡眠和休眠屬于其他形式的關(guān)閉,自 Windows 2000 將電源管理引入到 Windows NT? 系列的 Windows 操作系統后,驅動(dòng)程序和應用程序方面的問(wèn)題重重的電源管理一直都是令商務(wù)旅行人士苦惱的一件事情。當許多用戶(hù)在踏上旅途前合上自己的便攜式計算機外蓋時(shí),都期望計算機系統處于掛起或休眠狀態(tài),但沒(méi)想到在到達目的地時(shí),手提箱已經(jīng)變得灼熱,電池也被用盡,而且還丟失了數據。這是因為 Windows 始終都會(huì )詢(xún)問(wèn)設備驅動(dòng)程序和應用程序是否允許更改電源狀態(tài),只要有一個(gè)驅動(dòng)程序或應用程序未響應,就可能會(huì )阻止轉換。
在 Windows Vista 中,內核的電源管理器仍會(huì )通知驅動(dòng)程序和應用程序要更改電源狀態(tài)以便它們可以為這些更改做好準備,但不會(huì )再請求許可。此外,電源管理器最多會(huì )留出 20 秒來(lái)等待應用程序對更改通知做出響應,而不是像在先前版本的 Windows 上那樣等待 2 分鐘。因此,Windows Vista 用戶(hù)可以更加確信自己的系統會(huì )執行休眠和掛起。
預告
正如我先前所說(shuō)的,這是由三部分組成的系列文章中的第二部分。第一部分介紹了 Windows Vista 內核在 I/O 和進(jìn)程方面的改進(jìn)。這一次,我分析了 Windows Vista 在內存管理、啟動(dòng)和關(guān)閉方面的增強。下一次,我將通過(guò)介紹內核在可靠性和安全性方面的改變來(lái)結束本系列文章。
標識延遲式自動(dòng)啟動(dòng)和預關(guān)閉服務(wù)
內置的 SC 命令在 Windows Vista 得到了更新,以顯示配置為延遲式自動(dòng)啟動(dòng)服務(wù)的服務(wù):
Using SC to display start type  (單擊該圖像獲得較大視圖)
遺憾的是,SC 命令不會(huì )報告已請求預關(guān)閉通知的服務(wù),但您可以使用 Sysinternals 提供的 PsService 實(shí)用程序來(lái)確保服務(wù)接受預關(guān)閉通知:
Viewing pre-shutdown status  (單擊該圖像獲得較大視圖)
Mark Russinovich 是 Microsoft 的“平臺和服務(wù)部”的一名技術(shù)人員。他是《Microsoft Windows Internals》(Microsoft Windows 內部結構)(Microsoft Press, 2004) 的合著(zhù)者之一,并經(jīng)常在 IT 和開(kāi)發(fā)人員會(huì )議上演講。在 Microsoft 最近收購了 Mark Russinovich 與其他人創(chuàng )辦的 Winternals Software 之后,Mark Russinovich 也隨之加入了 Microsoft。他還創(chuàng )辦了 Sysinternals,在那里他發(fā)布了 Process Explorer、Filemon 和 Regmon 實(shí)用程序。
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
Windows NT 和 VMS: 其余的故事 (The Rest of the Story)
【ITECN技術(shù)專(zhuān)欄】之 512MB內存的Windows Vista照樣跑得歡
驚天秘密 window7不加內存就可給自己的電腦提速<轉> - 操作系統專(zhuān)區 - 軟件交流...
關(guān)閉Superfetch和prefetch提升Vista開(kāi)機速度
使用U盤(pán)作為系統內存補充
妙用ReadyBoost 加快Vista開(kāi)關(guān)機速度
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久