版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
操作系統(tǒng)實(shí)驗(yàn)報(bào)告
(windows部分)
班級(jí):
姓名:
學(xué)號(hào):
3.1Windows”任務(wù)管理器”的進(jìn)程管理
(實(shí)驗(yàn)估計(jì)時(shí)間:60分鐘)
>>背景知識(shí)
>>實(shí)驗(yàn)?zāi)康?/p>
>>工具/準(zhǔn)備工作
>>實(shí)驗(yàn)內(nèi)容與環(huán)節(jié)
背景知識(shí)
Windows2023的任務(wù)管理器提供了用戶(hù)計(jì)算機(jī)上正在運(yùn)營(yíng)的程序和進(jìn)程的相關(guān)信
息,也顯示了最常用的度量進(jìn)程性能的單位。使用任務(wù)管理器,可以打開(kāi)監(jiān)視計(jì)算機(jī)性能的
關(guān)鍵指示器,快速查看正在運(yùn)營(yíng)的程序的狀態(tài),或者終止己停止響應(yīng)的程序。也可以使用多個(gè)
參數(shù)評(píng)估正在運(yùn)營(yíng)的進(jìn)程的活動(dòng),以及查看CPU和內(nèi)存使用情況的圖形和數(shù)據(jù)。其中:
1)“應(yīng)用程序”選項(xiàng)卡顯示正在運(yùn)營(yíng)程序的狀態(tài),用戶(hù)可以結(jié)束、切換或者啟動(dòng)程序。
2)“進(jìn)程”選項(xiàng)卡顯示正在運(yùn)營(yíng)的進(jìn)程信息。例如,可以顯示關(guān)于CPU和內(nèi)存使用
情況、頁(yè)面錯(cuò)誤、句柄計(jì)數(shù)以及許多其他參數(shù)的信息。
3)“性能”選項(xiàng)卡顯示計(jì)算機(jī)動(dòng)態(tài)性能,涉及CPU和內(nèi)存使用情況的圖表,正在運(yùn)營(yíng)
的句柄、線程和進(jìn)程的總數(shù),物理、核心和認(rèn)可的內(nèi)存總數(shù)(KB)等。
實(shí)驗(yàn)?zāi)康?/p>
通過(guò)在Windows任務(wù)管理器中對(duì)程序進(jìn)程進(jìn)行響應(yīng)的管理操作,熟悉操作系統(tǒng)進(jìn)程
管理的概念,學(xué)習(xí)觀測(cè)操作系統(tǒng)運(yùn)營(yíng)的動(dòng)態(tài)性能。
工具/準(zhǔn)備工作
在開(kāi)始本實(shí)驗(yàn)之前,請(qǐng)回顧教科書(shū)的相關(guān)內(nèi)容。
需要準(zhǔn)備一臺(tái)運(yùn)營(yíng)Windows2023Professional操作系統(tǒng)的計(jì)算機(jī)。
實(shí)驗(yàn)內(nèi)容與環(huán)節(jié)
1.使用任務(wù)管理器終止進(jìn)程
2.顯示其他進(jìn)程計(jì)數(shù)器
3.更改正在運(yùn)營(yíng)的程序的優(yōu)先級(jí)
啟動(dòng)并進(jìn)入Windows環(huán)境,單擊Ctrl+Alt+De1鍵,或者右鍵單擊任務(wù)欄,在
快捷菜單中單擊“任務(wù)管理器”命令,打開(kāi)“任務(wù)管理器”窗口。
在本次實(shí)驗(yàn)中,你使用的操作系統(tǒng)版本是:
MicrosoftWindow20235.00.2195ServicePack4
當(dāng)前機(jī)器中由你打開(kāi),正在運(yùn)營(yíng)的應(yīng)用程序有:
3.1Windows“任務(wù)管理器”的進(jìn)程管理,Windows部分
Windows”任務(wù)管理器”的窗口由3個(gè)選項(xiàng)卡組成,分別是:
應(yīng)用程序,進(jìn)程,性能
當(dāng)前“進(jìn)程”選項(xiàng)卡顯示的欄目分別是(可移動(dòng)窗口下方的游標(biāo)/箭頭,或使窗口最
大化進(jìn)行觀測(cè)):
映像名稱(chēng),PID,CPUCPU時(shí)間,內(nèi)存使用
1.使用任務(wù)管理器終止進(jìn)程
環(huán)節(jié)1:?jiǎn)螕簟斑M(jìn)程”選項(xiàng)卡,一共顯示了_22一個(gè)進(jìn)程。請(qǐng)?jiān)囍鴧^(qū)分一下,其中:
系統(tǒng)(SYSTEM)進(jìn)程有_13—個(gè),填入表3-1中。
表3—1實(shí)驗(yàn)記錄
映像名稱(chēng)用戶(hù)名CPU內(nèi)存使用
MDM.exeSYSTEM002448K
spoolsv.exeSYSTEM001968K
Isass.exeSYSTEM001568K
services.exeSYSTEM003460K
winlogon.exeSYSTEM001436K
csrss.exeSYSTEM003556K
smss.exeSYSTEM00384K
nutsrv4.exeSYSTEM001036K
systemSYSTEM00180K
Systemidlepro
SYSTEM9716K
cess
svchost.exeSYSTEM002036K
inetinfo.exeSYSTEM001756K
smss.exeSYSTEM0052K
服務(wù)(SERVICE)進(jìn)程有_3_個(gè),填入表3-2中?
表3-2實(shí)驗(yàn)記錄
映像名稱(chēng)用戶(hù)名CPU內(nèi)存使用
LOCALSERV
svchost.exe001676K
ICE
NETWORK
svchost.exe003124K
SERVICE
NETWORK
00svchost.exe003744K
SERVICE
用戶(hù)進(jìn)程有_6_個(gè),填入表3-3中。
表3-3實(shí)驗(yàn)記錄
映像名稱(chēng)用戶(hù)名CPU內(nèi)存使用
360tray.exestudents0015K
ctfmon.exestudents002204K
iexp1ore.exestudents0433244K
Explorer.exestudents008524K
taskmgr.exestudents0025OOK
WINWORD.EXEstudents0326984K
提醒:在WindowsXP的“任務(wù)管理器”中,“進(jìn)程”選項(xiàng)卡增長(zhǎng)了一個(gè)“用戶(hù)名”欄目,
其中區(qū)分了SYSTEM、NETWORKSERVICE、LOCALSERVICE和用戶(hù)的不同進(jìn)程
類(lèi)別。
環(huán)節(jié)2:單擊要終止的進(jìn)程,然后單擊“結(jié)束進(jìn)程”按鈕。
注意:終止進(jìn)程時(shí)要小心。終止進(jìn)程有也許導(dǎo)致不希望發(fā)生的結(jié)果,涉及數(shù)據(jù)丟失和系統(tǒng)不
穩(wěn)定等。由于在被終止前,進(jìn)程將沒(méi)有機(jī)會(huì)保存其狀態(tài)和數(shù)據(jù)。假如結(jié)束應(yīng)用程序,您將丟失未
保存的數(shù)據(jù)。假如結(jié)束系統(tǒng)服務(wù),系統(tǒng)的某些部分也許無(wú)法正常工作。
終止進(jìn)程,將結(jié)束它直接或間接創(chuàng)建的所有子進(jìn)程。例如,假如終止了電子郵件程序(如
Outlook98)的進(jìn)程樹(shù),那么同時(shí)也終止了相關(guān)的進(jìn)程,如MAPI后臺(tái)解決程序mapi
sp32.exe。
請(qǐng)將終止某進(jìn)程后的操作結(jié)果與原記錄數(shù)據(jù)對(duì)比,發(fā)生了什么:
結(jié)束進(jìn)程WINWORD.EXE,MicrosoftWord關(guān)閉了
2.顯示其他進(jìn)程記數(shù)器
在“進(jìn)程”選項(xiàng)卡上單擊“查看”菜單,然后單擊“選擇列”命令。單擊要增長(zhǎng)顯示為
列標(biāo)題的項(xiàng)目,然后單擊“擬定”。
為對(duì)進(jìn)程列表進(jìn)行排序,可在''進(jìn)程”選項(xiàng)卡上單擊要根據(jù)其進(jìn)行排序的列標(biāo)題。而為
了要反轉(zhuǎn)排序順序,可再次單擊列標(biāo)題。
通過(guò)調(diào)整,“進(jìn)程”選項(xiàng)卡現(xiàn)在顯示的項(xiàng)目分別是:
映像名稱(chēng),PID,CPU時(shí)間,內(nèi)存使用,1/()寫(xiě)入,線程計(jì)數(shù)。
通過(guò)對(duì)“查看”菜單的選擇操作,可以在“任務(wù)管理器”中更改顯示選項(xiàng):
?在“應(yīng)用程序”選項(xiàng)卡上,可以按具體信息、大圖標(biāo)或小圖標(biāo)查看。
?在“性能”選項(xiàng)卡上,可以更改CPU記錄圖,并顯示內(nèi)核時(shí)間。”顯示內(nèi)核時(shí)間”選
項(xiàng)在“CPU使用”和“CPU使用記錄”圖表上添加紅線。紅線指示內(nèi)核操作占用的CPU
資源數(shù)量。
3.更改正在運(yùn)營(yíng)的程序的優(yōu)先級(jí)
要查看正在運(yùn)營(yíng)的程序的優(yōu)先級(jí),可單擊“進(jìn)程”選項(xiàng)卡,單擊“查看”菜單,單擊“選
擇列”-“基本優(yōu)先級(jí)”命令,然后單擊“擬定”按鈕。
為更改正在運(yùn)營(yíng)的程序的優(yōu)先級(jí),可在“進(jìn)程”選項(xiàng)卡上右鍵單擊您要更改的程序,指向
“設(shè)立優(yōu)先級(jí)”,然后單擊所需的選項(xiàng)。
更改善程的優(yōu)先級(jí)可以使其運(yùn)營(yíng)更快或更慢(取決于是提高還是減少了優(yōu)先級(jí)),但也
也許對(duì)其他進(jìn)程的性能有相反的影響。
記錄操作后所體會(huì)的結(jié)果:
更改后速度略微加快,但效果并不明顯,由于Systemid1eprocess代表系
統(tǒng)空閑進(jìn)程,CPU顯示為97,證明計(jì)算機(jī)基本處在空閑狀態(tài),但假如太多的進(jìn)程同時(shí)占用
CPU和內(nèi)存的話(huà),調(diào)整優(yōu)先級(jí)會(huì)有效的提高或減少速度。
在多解決器計(jì)算機(jī)上,用戶(hù)還可以給解決器指派進(jìn)程,將程序或進(jìn)程的執(zhí)行限制在選定
的解決器上,但這有也許導(dǎo)致總體性能的下降。
3.1提高Windows2023內(nèi)存性能
(實(shí)驗(yàn)估計(jì)時(shí)間:60分鐘)
背景知識(shí)
1.分頁(yè)過(guò)程
2.內(nèi)存共享
3.未分頁(yè)合并內(nèi)存與分頁(yè)合并內(nèi)存
4提高分頁(yè)性能
耗盡內(nèi)存是Windows2023系統(tǒng)中最常見(jiàn)的問(wèn)題之一。當(dāng)系統(tǒng)耗盡內(nèi)存時(shí),所有進(jìn)程對(duì)
內(nèi)存的總需求超過(guò)了系統(tǒng)的物理內(nèi)存總量。隨后,Windows2023必須借助它的虛擬內(nèi)存來(lái)維
持系統(tǒng)和進(jìn)程的運(yùn)營(yíng)。虛擬內(nèi)存機(jī)制是Windows2023操作系統(tǒng)的重要組成部分,但它
的速度比物理內(nèi)存慢得多,因此,應(yīng)當(dāng)盡量避免耗盡物理內(nèi)存資源,以免導(dǎo)致性能下降。
解決內(nèi)存局限性問(wèn)題的一個(gè)有效的方法就是添加更多的內(nèi)存。但是,一旦提供了更多的
內(nèi)存,Windows2023很可以會(huì)立即“吞食”。而事實(shí)上,添加更多的內(nèi)存并非總是可行的,
也也許只是推遲了實(shí)際問(wèn)題的發(fā)生。因此,應(yīng)當(dāng)相信,優(yōu)化所擁有的內(nèi)存是非常關(guān)鍵的。
4.分頁(yè)過(guò)程
當(dāng)Windows2023求助于硬盤(pán)以獲得虛擬內(nèi)存時(shí),這個(gè)過(guò)程被稱(chēng)為分頁(yè)(paging)。
分頁(yè)就是將信息從主內(nèi)存移動(dòng)到磁盤(pán)進(jìn)行臨時(shí)存儲(chǔ)的過(guò)程。應(yīng)用程序?qū)⑽锢韮?nèi)存和虛擬內(nèi)存
視為一個(gè)獨(dú)立的實(shí)體,甚至不知道Windows2023使用了兩種內(nèi)存方案,而認(rèn)為系統(tǒng)擁有
比實(shí)際內(nèi)存更多的內(nèi)存。例如,系統(tǒng)的內(nèi)存數(shù)量也許只有16MB,但每一個(gè)應(yīng)用程序仍然認(rèn)為
有4GB內(nèi)存可供使用。
使用分頁(yè)方案帶來(lái)了很多好處,但是這是有代價(jià)的。當(dāng)進(jìn)程需要已經(jīng)互換到硬盤(pán)上的代
碼或數(shù)據(jù)時(shí),系統(tǒng)要將數(shù)據(jù)送回物理內(nèi)存,并在必要時(shí)將其他信息傳輸?shù)接脖P(pán)上,而硬盤(pán)與
物理內(nèi)存在性能上的差異極大。例如,硬盤(pán)的訪問(wèn)時(shí)間通常大約為4-10毫秒,而物理內(nèi)存的
訪問(wèn)時(shí)間為60us,甚至更快。
?2.內(nèi)存共享
應(yīng)用程序經(jīng)常需要彼此通信和共享信息。為了提供這種能力,Windows2023必須允許
訪問(wèn)某些內(nèi)存空間而不危及它和其他應(yīng)用程序的安全性和完整性。從性能的角度來(lái)看,共享
內(nèi)存的能力大大減少了應(yīng)用程序使用的內(nèi)存數(shù)量。運(yùn)營(yíng)一個(gè)應(yīng)用程序的多個(gè)副本時(shí),每一個(gè)
實(shí)例都可以使用相同的代碼和數(shù)據(jù),這意味著不必維護(hù)所加載應(yīng)用程序代碼的單獨(dú)副本并使
用相同的內(nèi)存資源。無(wú)論正在運(yùn)營(yíng)多少個(gè)應(yīng)用程序?qū)嵗?,充足支持?yīng)用程序代碼所需求的內(nèi)
存數(shù)量都相對(duì)保持不變。
3.未分頁(yè)合并內(nèi)存與分頁(yè)合并內(nèi)存
Windows2023決定了系統(tǒng)內(nèi)存組件哪些可以以及哪些不可以互換到磁盤(pán)上。顯然,
不應(yīng)當(dāng)將某些代碼(例如內(nèi)核)互換出主內(nèi)存。因此,Windows2023將系統(tǒng)使用的內(nèi)存
進(jìn)一步劃分為未分頁(yè)合并內(nèi)存和分頁(yè)合并內(nèi)存。
分頁(yè)合并內(nèi)存是存儲(chǔ)遲早需要的可分頁(yè)代碼或數(shù)據(jù)的內(nèi)存部分。雖然可以將分頁(yè)合并內(nèi)
存中的任何系統(tǒng)進(jìn)程互換到磁盤(pán)上,但是它臨時(shí)存儲(chǔ)在主內(nèi)存的這一部分,以防系統(tǒng)立刻需要
它。在將系統(tǒng)進(jìn)程互換到磁盤(pán)上之前,Wind。ws2023會(huì)互換其他進(jìn)程。
未分頁(yè)合并內(nèi)存包含必須駐留在內(nèi)存中的占用代碼或數(shù)據(jù)。這種結(jié)構(gòu)類(lèi)似于初期的
MS-DOS程序使用的結(jié)構(gòu),在MS-DOS中,相對(duì)較小的終止并駐留程序(Terminateand
StayResident,TSR)在啟動(dòng)時(shí)加載到內(nèi)存中。這些程序在系統(tǒng)重新啟動(dòng)或關(guān)閉之前
一直駐留在內(nèi)存的特定部分中。例如,防病毒程序?qū)⒓虞d為T(mén)SR程序,以防止也許的病毒
襲擊。
未分頁(yè)合并內(nèi)存中包含的進(jìn)程保存在主內(nèi)存中,并且不能互換到磁盤(pán)上。物理內(nèi)存的這
個(gè)部分用于內(nèi)核模式操作(例如,驅(qū)動(dòng)程序)和必須保存在主內(nèi)存中才干有效工作的其他進(jìn)
程。沒(méi)有主內(nèi)存的這個(gè)部分,內(nèi)核組件就將是可分頁(yè)的,系統(tǒng)自身就有變得不穩(wěn)定的危險(xiǎn)。
分派到未分頁(yè)內(nèi)存池的主內(nèi)存數(shù)量取決于服務(wù)器擁有的物理內(nèi)存數(shù)量以及進(jìn)程對(duì)系統(tǒng)
上的內(nèi)存地空間的需求。但是,Windows2023將未分頁(yè)合并內(nèi)存限制為256MB(在Wi
ndowsNT4中的限制為128MB)。根據(jù)系統(tǒng)中的物理內(nèi)存數(shù)量,復(fù)雜的算法在啟動(dòng)
時(shí)動(dòng)態(tài)擬定Wind。ws2023系統(tǒng)上的未分頁(yè)合并內(nèi)存的最大數(shù)量。Windows2023內(nèi)
部的這一自我調(diào)節(jié)機(jī)制可以根據(jù)當(dāng)前的內(nèi)存配置自動(dòng)調(diào)整大小。例如,假如增長(zhǎng)或減少系統(tǒng)
中的內(nèi)存數(shù)量,那么Windows2023將自動(dòng)調(diào)整未分頁(yè)合并內(nèi)存的大小,以反映這一更改。
4.提高分頁(yè)性能
只有一個(gè)物理硬盤(pán)驅(qū)動(dòng)器的系統(tǒng)限制了優(yōu)化分頁(yè)性能的能力。驅(qū)動(dòng)器必須解決系統(tǒng)和應(yīng)
用程序的請(qǐng)求以及對(duì)分頁(yè)文獻(xiàn)的訪問(wèn)。雖然物理驅(qū)動(dòng)器也許有多個(gè)分區(qū),但是將分頁(yè)文獻(xiàn)分
布到多個(gè)分區(qū)的分頁(yè)文獻(xiàn)并不能提高硬盤(pán)驅(qū)動(dòng)器的能力。只有當(dāng)一個(gè)分區(qū)沒(méi)有足夠的空間來(lái)
包含整個(gè)分頁(yè)文獻(xiàn)時(shí),才將分頁(yè)文獻(xiàn)放在同一個(gè)硬盤(pán)的多個(gè)分區(qū)上。
擁有多個(gè)物理驅(qū)動(dòng)器的服務(wù)器可以使用多個(gè)分頁(yè)文獻(xiàn)來(lái)提高分頁(yè)性能。關(guān)鍵是將分頁(yè)請(qǐng)
求的負(fù)載分布到多個(gè)物理硬盤(pán)上。事實(shí)上,使用獨(dú)立物理驅(qū)動(dòng)器上的分頁(yè)文獻(xiàn),系統(tǒng)可以同
時(shí)解決多個(gè)分頁(yè)請(qǐng)求。各個(gè)物理驅(qū)動(dòng)器可以同時(shí)訪問(wèn)它自己的分頁(yè)文獻(xiàn)并寫(xiě)入信息,這將增
長(zhǎng)可以傳輸?shù)男畔⒘?。多個(gè)分頁(yè)文獻(xiàn)的最佳配置是將各個(gè)分頁(yè)文獻(xiàn)放在擁有自己的控制器的
獨(dú)立驅(qū)動(dòng)器上。但是,由于額外的費(fèi)用并且系統(tǒng)上的可用中斷很有限,因此對(duì)于大多數(shù)基于
服務(wù)器的配置來(lái)說(shuō),這也許是不切實(shí)際的解決方案。
分頁(yè)文獻(xiàn)最重要的配置參數(shù)是大小。無(wú)論系統(tǒng)中有多少個(gè)分頁(yè)文獻(xiàn),假如它們的大小不
合適,那么系統(tǒng)就也許碰到性能問(wèn)題。
假如初始值太小,那么系統(tǒng)也許必須擴(kuò)大分頁(yè)文獻(xiàn),以補(bǔ)償額外的分頁(yè)活動(dòng)。當(dāng)系統(tǒng)臨
時(shí)增長(zhǎng)分頁(yè)文獻(xiàn)時(shí),它必須在解決分頁(yè)請(qǐng)求的同時(shí)創(chuàng)建新的空間。這時(shí),系統(tǒng)將出現(xiàn)大量的
頁(yè)面錯(cuò)誤,甚至也許出現(xiàn)系統(tǒng)失效。當(dāng)系統(tǒng)必須在進(jìn)程的工作區(qū)外部(在物理內(nèi)存或分頁(yè)文
獻(xiàn)中的其他位置)查找信息時(shí),就會(huì)出現(xiàn)頁(yè)面錯(cuò)誤。當(dāng)系統(tǒng)缺少存儲(chǔ)資源(物理內(nèi)存及虛
擬內(nèi)存)來(lái)滿(mǎn)足使用需求,從而碰到過(guò)多的分頁(yè)時(shí),就會(huì)出現(xiàn)系統(tǒng)失效。系統(tǒng)將花更多的時(shí)
間來(lái)分頁(yè)而不是執(zhí)行應(yīng)用程序。當(dāng)系統(tǒng)失效時(shí),Memory:Pages/see計(jì)數(shù)器將連續(xù)高于每秒
100頁(yè)。系統(tǒng)失效嚴(yán)重減少了系統(tǒng)的性能。此外,動(dòng)態(tài)擴(kuò)展分頁(yè)文獻(xiàn)將導(dǎo)致碎片化。分頁(yè)文
獻(xiàn)將散布在整個(gè)磁盤(pán)上而不是在啟動(dòng)時(shí)的連續(xù)空間中創(chuàng)建,從而增長(zhǎng)了系統(tǒng)的開(kāi)銷(xiāo),并導(dǎo)致
系統(tǒng)性能減少。因此,應(yīng)當(dāng)盡量避免系統(tǒng)增長(zhǎng)分頁(yè)文獻(xiàn)的大小。
提醒:
1)在NTFS驅(qū)動(dòng)器上,總是至少保存25%的空閑驅(qū)動(dòng)器空間,以保證可以在連續(xù)的空間
中創(chuàng)建分頁(yè)文獻(xiàn)。
2)Windows2023使用內(nèi)存數(shù)量的1.5倍作為分頁(yè)文獻(xiàn)的最小容量,這個(gè)最小容量的兩倍
作為最大容量。它減少了系統(tǒng)由于錯(cuò)誤配置的分頁(yè)文獻(xiàn)而崩潰的也許性。系統(tǒng)在崩潰之后可以
將內(nèi)存轉(zhuǎn)儲(chǔ)寫(xiě)入磁盤(pán),所以系統(tǒng)分區(qū)必須有一個(gè)至少等于物理內(nèi)存數(shù)量加上】的分頁(yè)文獻(xiàn)。
實(shí)驗(yàn)?zāi)康?/p>
通過(guò)對(duì)Windows2023”任務(wù)管理器”、“計(jì)算機(jī)管理”、“我的電腦”屬性、“系統(tǒng)信
息”、“系統(tǒng)監(jiān)視器”等程序的應(yīng)用,學(xué)習(xí)提高Windows內(nèi)存的性能,,加深理解Wind
。ws操作系統(tǒng)的內(nèi)存管理功能,理解操作系統(tǒng)存儲(chǔ)管理、虛擬存儲(chǔ)管理的知識(shí)。
工具/準(zhǔn)備工作
在開(kāi)始本實(shí)驗(yàn)之前,請(qǐng)回顧教科書(shū)的相關(guān)內(nèi)容。
需要準(zhǔn)備一臺(tái)運(yùn)營(yíng)Windows2023Professiona1操作系統(tǒng)的計(jì)算機(jī)。
實(shí)驗(yàn)內(nèi)容與環(huán)節(jié)
判斷和維護(hù)Windows2023的內(nèi)存性能有許多方法。
環(huán)節(jié)1:閱讀“背景知識(shí)”,請(qǐng)回答:
1)什么是“分頁(yè)過(guò)程”?
當(dāng)Windows2023求助于硬盤(pán)以獲得虛擬內(nèi)存時(shí),這個(gè)過(guò)程被稱(chēng)為分頁(yè)(pagin
g)。分頁(yè)就是將信息從主內(nèi)存移動(dòng)到磁盤(pán)進(jìn)行臨時(shí)存儲(chǔ)的過(guò)程。
2)什么是“內(nèi)存共享”?
是指兩個(gè)或多個(gè)進(jìn)程共用內(nèi)存中的相同區(qū)域,其目的是節(jié)省內(nèi)存空間,實(shí)現(xiàn)進(jìn)程間通信,
提高內(nèi)存空間的運(yùn)用率。
3)什么是“未分頁(yè)合并內(nèi)存”和“分頁(yè)合并內(nèi)存”?
Windows2023中,未分頁(yè)合并內(nèi)存的最大限制是多少?
分頁(yè)合并內(nèi)存是存儲(chǔ)遲早需要的可分頁(yè)代碼或數(shù)據(jù)的內(nèi)存部分。
未分頁(yè)合并內(nèi)存包含必須駐留在內(nèi)存中的占用代碼或數(shù)據(jù)。
Windows2023將未分頁(yè)合并內(nèi)存限制為256MB
4)Windows2023分頁(yè)文獻(xiàn)默認(rèn)設(shè)立的最小容量和最大容量是多少?
Windows2023使用內(nèi)存數(shù)量的1.5倍作為分頁(yè)文獻(xiàn)的最小容量,這個(gè)最小
容量的兩倍作為最大容量。
環(huán)節(jié)2:登錄進(jìn)入Windows2023Professiona1(.
環(huán)節(jié)3:查看包含多個(gè)實(shí)例的應(yīng)用程序的內(nèi)存需求。
1)啟動(dòng)想要監(jiān)視的應(yīng)用程序,例如Word。
2)右鍵單擊任務(wù)欄以啟動(dòng)“任務(wù)管理器”。
3)在“Windows任務(wù)管理器”對(duì)話(huà)框中選定“進(jìn)程”選項(xiàng)卡。
4)向下滾動(dòng)在系統(tǒng)上運(yùn)營(yíng)的進(jìn)程列表,查找想要監(jiān)視的應(yīng)用程序。
請(qǐng)?jiān)诒?-1中記錄:
表5-1實(shí)驗(yàn)記錄
映像名稱(chēng)P1DCPUCPU時(shí)間內(nèi)存使用
WINWORD.EXE820060:00:1034848K
“內(nèi)存使用”列顯示了該應(yīng)用程序的一個(gè)實(shí)例正在使用的內(nèi)存數(shù)量。
5)啟動(dòng)應(yīng)用程序的另一個(gè)實(shí)例并觀測(cè)它的內(nèi)存需求。
請(qǐng)描述使用第二個(gè)實(shí)例占用的內(nèi)存與使用第一個(gè)實(shí)例時(shí)的內(nèi)存對(duì)比情況:
啟動(dòng)360安全衛(wèi)士,內(nèi)存使用量為2264K,遠(yuǎn)小于MicrosoftWord的內(nèi)容使用量。
環(huán)節(jié)4:未分頁(yè)合并內(nèi)存。
估算未分頁(yè)合并內(nèi)存大小的最簡(jiǎn)樸方法是使用“任務(wù)管理器”。未分頁(yè)合并內(nèi)存的估計(jì)
值顯示在“任務(wù)管理器”的“性能”選項(xiàng)卡的“核心內(nèi)存”部分。
總數(shù)(K):56552
分頁(yè)數(shù):45828
。未分頁(yè)(K):10724
還可以使用“任務(wù)管理器”查看一個(gè)獨(dú)立進(jìn)程正在使用的未分頁(yè)合并內(nèi)存數(shù)量和分頁(yè)合
并內(nèi)存數(shù)量。操作環(huán)節(jié)如下:
I)單擊“Windows任務(wù)管理器”的“進(jìn)程”選項(xiàng)卡,然后從“查看”菜單中選擇
“選擇列”命令,顯示“進(jìn)程”選項(xiàng)卡的可查看選項(xiàng)。
2)在“選擇列”對(duì)話(huà)框中,選定“頁(yè)面緩沖池”選項(xiàng)和“非頁(yè)面緩沖池”選項(xiàng)旁邊的
復(fù)選框,然后單擊“擬定”按鈕。
返回Windows2023“任務(wù)管理器”的“進(jìn)程”選項(xiàng)卡時(shí),將看到其中增長(zhǎng)顯示了各個(gè)
進(jìn)程占用的分頁(yè)合并內(nèi)存數(shù)量和未分頁(yè)合并內(nèi)存數(shù)量。
仍以剛才打開(kāi)觀測(cè)的應(yīng)用程序(例如Word)為例,請(qǐng)?jiān)诒?-2中記錄:
表5-2實(shí)驗(yàn)記錄
映像名稱(chēng)PID內(nèi)存使用頁(yè)面緩沖池非頁(yè)面緩沖池
WINWORD.EXE82032276K241K24K
從性能的角度來(lái)看,未分頁(yè)合并內(nèi)存越多,可以加載到這個(gè)空間的數(shù)據(jù)就越多。擁有的
物理內(nèi)存越多,未分頁(yè)合并內(nèi)存就越多。但未分頁(yè)合并內(nèi)存被限制為256MB,因此添加超
過(guò)這個(gè)限制的內(nèi)存對(duì)未分頁(yè)合并內(nèi)存沒(méi)有影響。
環(huán)節(jié)5:提高分頁(yè)性能。
在Windows2023的安裝過(guò)程中,將使用連續(xù)的磁盤(pán)空間自動(dòng)創(chuàng)建分頁(yè)文獻(xiàn)(pag
efile.sys)o用戶(hù)可以事先監(jiān)視變化的內(nèi)存需求并對(duì)的配置分頁(yè)文獻(xiàn),使得當(dāng)系統(tǒng)必須借助
于分頁(yè)時(shí)的性能達(dá)成最高。
雖然分頁(yè)文獻(xiàn)一般都放在系統(tǒng)分區(qū)的根目錄下面,但這并不總是該文獻(xiàn)的最佳位置。要
想從分頁(yè)獲得最佳性能,應(yīng)當(dāng)一方面檢查系統(tǒng)的磁盤(pán)子系統(tǒng)的配置,以了解它是否有多個(gè)物
理硬盤(pán)驅(qū)動(dòng)器。
1)在“開(kāi)始”菜單中單擊“設(shè)立”-“控制面板”命令,雙擊“管理工具”圖標(biāo),再雙
擊“計(jì)算機(jī)管理”圖標(biāo).
2)在“計(jì)算機(jī)管理”窗口的左格選擇“磁盤(pán)管理”管理單元來(lái)查看系統(tǒng)的磁盤(pán)配置。
請(qǐng)?jiān)诒?-3中記錄:
表5-3實(shí)驗(yàn)記錄
卷布局類(lèi)型文獻(xiàn)系統(tǒng)容量狀態(tài)
狀態(tài)良好(系
C:磁盤(pán)分區(qū)基本FAT3219.52G
統(tǒng))
D:磁盤(pán)分區(qū)基本FAT493M狀態(tài)良好
E:磁盤(pán)分區(qū)基本FAT3210.29G狀態(tài)良好
假如系統(tǒng)只有一個(gè)硬盤(pán),那么建議應(yīng)當(dāng)盡也許為系統(tǒng)配置額外的驅(qū)動(dòng)器。這是由于:W
indows2023最多可以支持在多個(gè)驅(qū)動(dòng)器上分布的16個(gè)獨(dú)立的分頁(yè)文獻(xiàn)。為系統(tǒng)配置多
個(gè)分頁(yè)文獻(xiàn)可以實(shí)現(xiàn)對(duì)不同磁盤(pán)I/O請(qǐng)求的并行解決,這將大大提高I/0請(qǐng)求的分頁(yè)文獻(xiàn)
性能。
環(huán)節(jié)6:計(jì)算分頁(yè)文獻(xiàn)的大小。
要想更改分頁(yè)文獻(xiàn)的位置或大小配置參數(shù),可按以下環(huán)節(jié)進(jìn)行:
1)右鍵單擊桌面上的“我的電腦”圖標(biāo)并選定“屬性”。
2)在“高級(jí)”選項(xiàng)卡上單擊“性能選項(xiàng)”按鈕。
3)單擊對(duì)話(huà)框中的“虛擬內(nèi)存”區(qū)域中的“更改”按鈕。
請(qǐng)記錄:
所選驅(qū)動(dòng)器(C:)的頁(yè)面文獻(xiàn)大?。?/p>
。驅(qū)動(dòng)器:C
,可用空間:8160MB
。初始大?。∕B);384MB
。最大值(MB):768MB
所有驅(qū)動(dòng)器頁(yè)面文獻(xiàn)大小的總數(shù):
允許的最小值:2MB
?推薦:382MB
當(dāng)前已分派:384MB
4)要想將另一個(gè)分頁(yè)文獻(xiàn)添加到現(xiàn)有配置,在“虛擬內(nèi)存”對(duì)話(huà)框中選定一個(gè)還沒(méi)有
分頁(yè)文獻(xiàn)的驅(qū)動(dòng)器,然后指定分頁(yè)文獻(xiàn)的初始值和最大值(以兆字節(jié)表達(dá)),單擊“設(shè)立”,
然后單擊“擬定”。
5)要想更改現(xiàn)有分頁(yè)文獻(xiàn)的最大值和最小值,可選定分頁(yè)文獻(xiàn)所在的驅(qū)動(dòng)器。然后指
定分頁(yè)文獻(xiàn)的初始值和最大值,單擊“設(shè)立”按鈕,然后單擊“擬定”按鈕。
6)在“性能選項(xiàng)”對(duì)話(huà)框中單擊“擬定”按鈕。
7)單擊“擬定”按鈕以關(guān)閉“系統(tǒng)特性”對(duì)話(huà)框。
環(huán)節(jié)7:使用任務(wù)管理器。
可以使用“任務(wù)管理器”來(lái)簡(jiǎn)樸地檢查分頁(yè)文獻(xiàn)是否配置了對(duì)的容量。這樣可以實(shí)時(shí)提
供系統(tǒng)正在使用分頁(yè)文獻(xiàn)的方式以及其他重要系統(tǒng)信息的準(zhǔn)確描述。
通過(guò)右鍵單擊任務(wù)欄運(yùn)營(yíng)“任務(wù)管理器”,選定“性能”選項(xiàng)卡查看實(shí)時(shí)的系統(tǒng)記錄數(shù)
據(jù)。與分頁(yè)文獻(xiàn)大小最有關(guān)的信息位于“認(rèn)可用量”區(qū)域。這一區(qū)域顯示了認(rèn)可“峰值”是
否達(dá)成或超過(guò)了認(rèn)可“限制”,以及它是否超過(guò)了系統(tǒng)上的物理內(nèi)存數(shù)量。認(rèn)可“峰值”是
指系統(tǒng)迄今為止向進(jìn)程分派的最大物理內(nèi)存和虛擬內(nèi)存數(shù)量。
請(qǐng)記錄:
物理內(nèi)存(K)
總數(shù):261616K_______________________
可用數(shù):__________38304K_______________________
,系統(tǒng)緩存:_______66840K_______________________
認(rèn)可用量(K)
總數(shù):______________367380K______________________
。限制:________________632708K____________________
峰值:_____________425612K_______________
當(dāng)系統(tǒng)碰到分頁(yè)活動(dòng)增長(zhǎng)的情況時(shí),提交的內(nèi)存數(shù)量(“認(rèn)可總數(shù)”)就會(huì)增長(zhǎng)。一旦
它達(dá)成了“認(rèn)可限制”值,系統(tǒng)就需要擴(kuò)展分頁(yè)文獻(xiàn)。''認(rèn)可限制”值指出在不必?cái)U(kuò)展分頁(yè)文
獻(xiàn)的情況下可以向內(nèi)存提交的虛擬內(nèi)存數(shù)量。由于目的是避免擴(kuò)展分頁(yè)文獻(xiàn),所以必須保持
“認(rèn)可總數(shù)”和“認(rèn)可限制”值相差較大。假如這兩個(gè)值接近了,那么系統(tǒng)必須動(dòng)態(tài)增長(zhǎng)分
頁(yè)文獻(xiàn)的大小。
“任務(wù)管理器”的“認(rèn)可用量”區(qū)域顯示的信息還說(shuō)明了系統(tǒng)的主內(nèi)存是否足以滿(mǎn)足系
統(tǒng)執(zhí)行的任務(wù)。假如認(rèn)可''總數(shù)”值經(jīng)常超過(guò)系統(tǒng)中的內(nèi)存數(shù)量,那么系統(tǒng)的物理內(nèi)存也許
局限性。
3.2Windows2023編程
(實(shí)驗(yàn)估計(jì)時(shí)間:120分鐘)
>>背景知識(shí)
>>實(shí)驗(yàn)?zāi)康?/p>
>>工具/準(zhǔn)備工作
>>實(shí)驗(yàn)內(nèi)容與環(huán)節(jié)
背景知識(shí)
Windows2023可以辨認(rèn)的應(yīng)用程序涉及控制臺(tái)應(yīng)用程序、GUI應(yīng)用程序和服
務(wù)應(yīng)用程序??刂婆_(tái)應(yīng)用程序可以創(chuàng)建GUI,GUI應(yīng)用程序可以作為服務(wù)來(lái)運(yùn)營(yíng),服務(wù)也可
以向標(biāo)準(zhǔn)的輸出流寫(xiě)入數(shù)據(jù)。不同類(lèi)型應(yīng)用程序間的惟一重要區(qū)別是其啟動(dòng)方法。
Windows2023是以NT的技術(shù)構(gòu)建的,它提供了創(chuàng)建控制臺(tái)應(yīng)用程序的能力,使用戶(hù)
可以運(yùn)用標(biāo)準(zhǔn)的C++工具,如iostream庫(kù)中的c。ut和cin對(duì)象,來(lái)創(chuàng)建小型應(yīng)用程序。當(dāng)
系統(tǒng)運(yùn)營(yíng)時(shí),Windows2023的服務(wù)通常要向系統(tǒng)用戶(hù)提供所需功能。
服務(wù)應(yīng)用程序類(lèi)型需要ServiceMail()函數(shù),由服務(wù)控制管理器(SCM)加以調(diào)用。
SCM是操作系統(tǒng)的集成部分,負(fù)責(zé)響應(yīng)系統(tǒng)啟動(dòng)以開(kāi)始服務(wù)、指導(dǎo)用戶(hù)控制或從另一個(gè)服
務(wù)中來(lái)的請(qǐng)求。其自身負(fù)責(zé)使應(yīng)用程序的行為像一個(gè)服務(wù)。通常,服務(wù)登錄到特殊的Local
System賬號(hào)下,此賬號(hào)具有與開(kāi)發(fā)人員創(chuàng)建的服務(wù)不同的權(quán)限。
當(dāng)令C++編譯器創(chuàng)建可執(zhí)行程序時(shí),編譯器將源代碼編譯成OBJ文獻(xiàn),然后將其與標(biāo)
準(zhǔn)庫(kù)相鏈接。產(chǎn)生的EXE文獻(xiàn)是裝載器指令、機(jī)器指令和應(yīng)用程序的數(shù)據(jù)的集合。裝載器
指令告訴系統(tǒng)從哪里裝載機(jī)器代碼。另一個(gè)裝載器指令告訴系統(tǒng)從哪里開(kāi)始執(zhí)行進(jìn)程的主線
程。在進(jìn)行某些設(shè)立后,進(jìn)入開(kāi)發(fā)者提供的main。、ServiceMain()或WinMain()函
數(shù)的低檔入口點(diǎn)。機(jī)器代碼中涉及有控制邏輯,它所做的事涉及跳轉(zhuǎn)到WindowsAPI函數(shù),
進(jìn)行計(jì)算或向磁盤(pán)寫(xiě)入數(shù)據(jù)等。
Windows允許開(kāi)發(fā)人員將大型應(yīng)用程序分為較小的、互相有關(guān)系的服務(wù)模塊,即動(dòng)態(tài)
鏈接庫(kù)(DLL)代碼塊,在其中包含應(yīng)用程序所使用的機(jī)器代碼和應(yīng)用程序的數(shù)據(jù)。
實(shí)驗(yàn)?zāi)康?/p>
通過(guò)對(duì)Windows2023編程,進(jìn)一步熟悉操作系統(tǒng)的基本概念,較好地理解Windows
2023的結(jié)構(gòu)。
工具/準(zhǔn)備工作
在開(kāi)始本實(shí)驗(yàn)之前,請(qǐng)回顧教科書(shū)的相關(guān)內(nèi)容。
需要做以下準(zhǔn)備:
1)一臺(tái)運(yùn)營(yíng)Windows2023Professional操作系統(tǒng)的計(jì)算機(jī)。
2)計(jì)算機(jī)中需安裝VisualC++6.0專(zhuān)業(yè)版或公司版。
實(shí)驗(yàn)內(nèi)容與環(huán)節(jié)
1.簡(jiǎn)樸的控制臺(tái)應(yīng)用程序
2.GUI應(yīng)用程序
3.進(jìn)程對(duì)象
1.簡(jiǎn)樸的控制臺(tái)應(yīng)用程序
我們先來(lái)創(chuàng)建一個(gè)名為“He1Io,World"的應(yīng)用程序。
環(huán)節(jié)1:登錄進(jìn)入Windows2023ProfessionaL
環(huán)節(jié)2:在“開(kāi)始”菜單中單擊“程序”一“附件”-“記事本”命令,將清單3-1中的程
序鍵入記事本中,并把代碼保存為Hello.cppo
清單3-1一個(gè)簡(jiǎn)樸的Windows2023控制臺(tái)應(yīng)用程序
//hello項(xiàng)目
#inelude<iostream>
voidmain()
(
std::cout<<"Hello,Windows2023,J?std::endl;
)
環(huán)節(jié)3:在“開(kāi)始”菜單中單擊“程序”-“附件”-“命令提醒符”命令,進(jìn)入Window
s“命令提醒符”窗口,并運(yùn)用簡(jiǎn)樸的標(biāo)準(zhǔn)命令行:
C:\>CLHei1o.cpp
來(lái)創(chuàng)建可執(zhí)行的Hei1o.EXEo
操作能否正常進(jìn)行?假如不行,則也許的因素是什么?
運(yùn)營(yíng)不正常。缺少M(fèi)SPDB6O.dll文獻(xiàn)
環(huán)節(jié)4:運(yùn)營(yíng)He11o.EXE程序,產(chǎn)生用戶(hù)鍵入的一行文字。
運(yùn)營(yíng)結(jié)果(假如運(yùn)營(yíng)不成功,則也許的因素是什么?):
運(yùn)營(yíng)不成功,connotexecute"clxx”.
2.GUI應(yīng)用程序
在下面的實(shí)驗(yàn)中,C++編譯器創(chuàng)建一個(gè)GUI應(yīng)用程序,代碼中涉及了WinMa
in()方法,這是GUI類(lèi)型的應(yīng)用程序的標(biāo)準(zhǔn)入口點(diǎn).
環(huán)節(jié)5:在“開(kāi)始”菜單中單擊“程序”-“附件”-“記事本”命令,將清單3-2中的程序
鍵入記事本中,并把代碼保存為3-2.cppo
清單3-2Windows2023的GUI應(yīng)用程序
IImsgbox項(xiàng)目
#include<windows.h>。//標(biāo)準(zhǔn)的inc1ude
//告訴連接器與涉及MessageBoxAPI函數(shù)的user32庫(kù)進(jìn)行連接
#pragmacomment(lib,“user32.lib")
//這是一個(gè)可以彈出信息框然后退出的筒單的應(yīng)用程序
intAPIENTRYWinMain(HINSTANCE/*hlnstance*/,
HINSTANCE?/*hPrevInstance*/,
LPSTR。/*IpCmdLine*/,
int/*nCmdShow*/)
(
::MessageBox(
NULL,a.//沒(méi)有父窗口
“Hello,Windows2023”,。。//消息框中的文本
"Greetings",??//消息框標(biāo)題
MB_OK);?a//其中只有一個(gè)OK按鈕
//返回0以便告知系統(tǒng)不進(jìn)入消息循環(huán)
return(0);
也可以運(yùn)用任何其他文本編輯器鍵入程序代碼,假如這樣,例如使用WORD來(lái)鍵入和
編輯程序,則應(yīng)當(dāng)注意什么問(wèn)題?
標(biāo)點(diǎn)符號(hào)的中英文切換。
環(huán)節(jié)6:在“命令提醒符”窗口運(yùn)營(yíng)CL.EXE,產(chǎn)生3-2.EXE文獻(xiàn):
C:\>CL3-2.cpp
在清單3-2的GUI應(yīng)用程序中,一方面需要Windows.h頭文獻(xiàn),以便獲得傳送給Wi
nMain()和MessageBox()API函數(shù)的數(shù)據(jù)類(lèi)型定義。
接著的pragma指令指示編譯器/連接器找到User32.LIB庫(kù)文獻(xiàn)并將其與產(chǎn)生的E
XE文獻(xiàn)連接起來(lái)。這樣就可以運(yùn)營(yíng)簡(jiǎn)樸的命令行命令CLMsgBox.CPP來(lái)創(chuàng)建這一應(yīng)
用程序,假如沒(méi)有Pragma指令,則MessageBox()API函數(shù)就成為未定義的了。這一
指令是VisualStudioC++編譯器特有的。
接下來(lái)是WinMain()方法。其中有四個(gè)由實(shí)際的低檔入口點(diǎn)傳遞來(lái)的參數(shù)。hInst
ance參數(shù)用來(lái)裝入與代碼相連的圖標(biāo)或位圖一類(lèi)的資源,無(wú)論何時(shí),都可用GetModuleH
and1e()API函數(shù)將這些資源提取出來(lái)。系統(tǒng)運(yùn)用實(shí)例句柄來(lái)指明代碼和初始的數(shù)據(jù)裝在
內(nèi)存的何處。句柄的數(shù)值事實(shí)上是EXE文獻(xiàn)映像的基地址,通常為0x00400000。下一個(gè)
參數(shù)hPrevInstance是為向后兼容而設(shè)的,現(xiàn)在系統(tǒng)將其設(shè)為NULL。應(yīng)用程序的命令
行(不涉及程序的名稱(chēng))是IpCmdLine參數(shù)。此外,系統(tǒng)運(yùn)用nCmdShow參數(shù)告訴應(yīng)用
程序如何顯示它的主窗口(選項(xiàng)涉及最小化、最大化和正常)。
最后,程序調(diào)用MessageBox。API函數(shù)并退出。假如在進(jìn)入消息循環(huán)之前就結(jié)束運(yùn)營(yíng)
的話(huà),最后必須返回0。
運(yùn)營(yíng)結(jié)果(試將其中的信息與清單3-1程序的運(yùn)營(yíng)結(jié)果進(jìn)行比較):
Hello,Windows2023Greetings
3.進(jìn)程對(duì)象
操作系統(tǒng)將當(dāng)前運(yùn)營(yíng)的應(yīng)用程序看作是進(jìn)程對(duì)象。運(yùn)用系統(tǒng)提供的惟一的稱(chēng)為句柄(H
ANDLE)的號(hào)碼,就可與進(jìn)程對(duì)象交互。這一號(hào)碼只對(duì)當(dāng)前進(jìn)程有效。
本實(shí)驗(yàn)表達(dá)了一個(gè)簡(jiǎn)樸的進(jìn)程句柄的應(yīng)用。在系統(tǒng)中運(yùn)營(yíng)的任何進(jìn)程都可調(diào)用GetCur
rentProcess()API函數(shù),此函數(shù)可返回標(biāo)記進(jìn)程自身的句柄。然后就可在Windows需要該
進(jìn)程的有關(guān)情況時(shí),運(yùn)用這一句柄來(lái)提供。
環(huán)節(jié)7:將清單3-3.cpp程序鍵入記事本中,并把代碼保存為3-3.cpp。
清單3-3獲得和使用進(jìn)程的句柄
//prochandle項(xiàng)目
#include<windows.h>
#include<iostream>
//擬定自己的優(yōu)先權(quán)的簡(jiǎn)樸應(yīng)用程序
voidmain()
(
//從當(dāng)前進(jìn)程中提取句柄
HANDLEhProcessThis=::GetCurrentProcess();
〃請(qǐng)求內(nèi)核提供該進(jìn)程所屬的優(yōu)先權(quán)類(lèi)
DWORDdwPriority=::GetPriorityClass(hProcessThis);
//發(fā)出消息,為用戶(hù)描述該類(lèi)
std::cout<<"Currentprocesspriority:";
switch(dwPriority)
(
caseHIGH_PRIORITY_CLASS:
std::cout?"High”;
break;
caseNORMAL_PRIORITY_CLASS:
std::cout?44Normal”;
break;
caseIDLE_PRIORITY_CLASS:
std::cout?“Idie”;
break;
caseREALTIME_PRI0RITY_CLASS:
std::cout<<"ReaItime”;
break;
defau1t:
std::cout?44<unknown>”;
break;
)
std::cout?std::endl;
}
清單3-3中列出的是一種獲得進(jìn)程句柄的方法。對(duì)于進(jìn)程句柄可進(jìn)行的惟一有用的操作
是在API調(diào)用時(shí),將其作為參數(shù)傳送給系統(tǒng),正如清單3-3中對(duì)GetPriorityClass()API函
數(shù)的調(diào)用那樣。在這種情況下,系統(tǒng)向進(jìn)程對(duì)象內(nèi)“窺視”,以決定其優(yōu)先級(jí),然后將此優(yōu)先級(jí)
返回給應(yīng)用程序。
OpenProcess()和CreateProcess()API函數(shù)也可以用于提取進(jìn)程句柄。前者提
取的是已經(jīng)存在的進(jìn)程的句柄,而后者創(chuàng)建一個(gè)新進(jìn)程,并將其句柄提供出來(lái)。
環(huán)節(jié)8:在“命令提醒符”窗口運(yùn)營(yíng)CL.EXE,產(chǎn)生3-3.EXE文獻(xiàn):
C:\>CL3-3.cpp
運(yùn)營(yíng)結(jié)果:HighMormalIdleRealtimeunknown____________________
環(huán)節(jié)9:將清單3-4.cpP程序鍵入記事本中,并把代碼保存為3-4.cpp。
清單3-4顯示如何找出系統(tǒng)中正在運(yùn)營(yíng)的所有進(jìn)程,如何運(yùn)用OpenProcess()API
函數(shù)來(lái)獲得每一個(gè)訪問(wèn)進(jìn)程的進(jìn)一步信息。
清單3-4運(yùn)用句柄查出進(jìn)程的具體信息
//proclist項(xiàng)目
#inc1ude<windows.h>
#include<tlhelp32.h>
#include<iostream>
//當(dāng)在用戶(hù)模式機(jī)內(nèi)核模式下都提供所耗時(shí)間時(shí),在內(nèi)核模式下進(jìn)行所耗時(shí)間的64位計(jì)算的幫
助方法
DWORDGetKerne1ModePercentage(constFILETIME&ftKemel,
constFILETIME&ftUser)
(
//將FILETIME結(jié)構(gòu)轉(zhuǎn)化為64位整數(shù)
ULONGLONGqwKcrnel=
(((ULONGLONG)ftKernel.dwHighDateTime)?32)+
ftKernel.dwLowDateTime;
ULONGLONGqwUser=
(((ULONGLONG)ftUser.dwHighDateTime)?32)+
ftUser.dwLowDateTime;
//將消耗時(shí)間相加,然后計(jì)算消耗在內(nèi)核模式下的時(shí)間比例
ULONGLONGqwTotal=qwKernel+qwUser;
DWORDdwPct=
(DWORD)(((ULONGLONG)100*qwKernel)/qwTotal);
return(dwPct);
)
//以下是將當(dāng)前運(yùn)營(yíng)進(jìn)程名和消耗在內(nèi)核模式下的時(shí)間百分?jǐn)?shù)都顯示出來(lái)的應(yīng)用程序
voidmain()
(
//對(duì)當(dāng)前系統(tǒng)中運(yùn)營(yíng)的進(jìn)程拍取“快照”
HANDLEhSnapshot=::CreateTooIhelp32Snapshot(
TH32CS-SNAPPROCESS,〃提取當(dāng)前進(jìn)程
0)產(chǎn)。假如是當(dāng)前進(jìn)程,就將其忽略
//初始化進(jìn)程入口
PROCESSENTRY32pe;
::ZeroMemory(&pe,sizeof(pe));
Pe.dwSize=sizeof(pe);
//按所有進(jìn)程循環(huán)
BOOLbMore=::Process32First(hSnapshot,&pe);
while(bMore)
(
//打開(kāi)用于讀取的進(jìn)程
HANDLEhProcess=::OpenProcess(
PROCESS_QUERY_INFORMATION,。。//指明要得至信息
FALSE,。。//不必繼承這一句柄
pe.th32ProcessID);。。//要打開(kāi)的進(jìn)程
if(hProcess!=NULL)
//找出進(jìn)程的時(shí)間
FILETIMEftCreation,f(Exit,ftKernelMode,ftUserMode;
::GetProcessTimes(
hProcess,???!ㄋ袗?ài)好的進(jìn)程
&ftCreation,。//進(jìn)程的啟動(dòng)時(shí)間(絕對(duì)的)
&ftExit,。g//結(jié)束時(shí)間(假如有的話(huà))
&ftKerneIMode,。//在內(nèi)核模式下消耗的時(shí)間
&ftUserMode);。。。?!ㄔ谟脩?hù)模式下消耗的時(shí)間
//計(jì)算內(nèi)核模式消耗的時(shí)間比例
DWORDdwPclKeme1=::GetKerne1ModePercentage(
ftKemclMode,。。。//在內(nèi)核模式上消耗的時(shí)間
ftUserMode)。。?//在用戶(hù)模式下消耗的時(shí)間
//向用戶(hù)顯示進(jìn)程的某些信息
std::cout?44ProcessID:"v<pe.th32ProcessID
vv",EXEfi1e:“?pe.szExeFile
?”,%inkernelmode:"<<dwPctKernel
?std::endl;
//消除句柄
::CloseHandIe(hProcess);
)
//轉(zhuǎn)向下一個(gè)進(jìn)程
bMore=::Process32Next(hSnapshot5&pe);
)
)
清單3-4程序一方面運(yùn)用Windows2023的新特性,即工具幫助庫(kù)來(lái)獲得當(dāng)前運(yùn)營(yíng)的所
有進(jìn)程的快照。然后應(yīng)用程序進(jìn)入快照中的每一個(gè)進(jìn)程,得到其以PROCESSENTRY32結(jié)
構(gòu)表達(dá)的屬性。這一結(jié)構(gòu)用來(lái)向0penProcess()API函數(shù)提供進(jìn)程的ID。Windows
跟蹤每一進(jìn)程的有關(guān)時(shí)間,示例中是通過(guò)打開(kāi)的進(jìn)程句柄和GetProcessTimes()AP
I來(lái)直詢(xún)得到有關(guān)時(shí)間的。接下來(lái),一個(gè)定制的幫助函數(shù)取得了幾個(gè)返回的數(shù)值,然后計(jì)算進(jìn)
程在內(nèi)核模式下消耗的時(shí)間占總時(shí)間的比例。程序的其余部分比較簡(jiǎn)樸,只是將有關(guān)信息顯
示給用戶(hù),清除進(jìn)程句柄,然后繼續(xù)循環(huán),直到所有進(jìn)程都計(jì)算過(guò)為止。
環(huán)節(jié)10:在“命令提醒符”窗口運(yùn)營(yíng)CL.EXE,產(chǎn)生3-4.EXE文獻(xiàn):
C:\>CL3-4.Cpp
運(yùn)營(yíng)結(jié)果:
ProcessID:
,EXEfile:
,%inkemelmode:
3.2Windows2023內(nèi)存結(jié)構(gòu)
(實(shí)驗(yàn)估計(jì)時(shí)間:120分鐘)
>背景知識(shí)
>實(shí)驗(yàn)?zāi)康?/p>
>工具/準(zhǔn)備工作
>實(shí)驗(yàn)內(nèi)容與環(huán)節(jié)
背景知識(shí)
Windows2023是32位的操作系統(tǒng),它使計(jì)算機(jī)CPU可以用32位地址對(duì)32位內(nèi)
存塊進(jìn)行操作。內(nèi)存中的每一個(gè)字節(jié)都可以用一個(gè)32位的指針來(lái)尋址。這樣,最大的存儲(chǔ)空
間就是232字節(jié)或4000兆字節(jié)(4GB)。這樣,在Windows下運(yùn)營(yíng)的每一個(gè)應(yīng)用程序都
認(rèn)為能獨(dú)占也許的4GB大小的空間。
而另一方面,事實(shí)上沒(méi)有幾臺(tái)機(jī)器的RAM能達(dá)成4GB,更不必說(shuō)讓每個(gè)進(jìn)程都獨(dú)享
4GB內(nèi)存了。Windows在幕后將虛擬內(nèi)存(virtualmemory,VM)地址映射到了各進(jìn)
程的物理內(nèi)存地址上。而所謂物理內(nèi)存是指計(jì)算機(jī)的RAM和由Windows分派到用戶(hù)驅(qū)
動(dòng)器根目錄上的換頁(yè)文獻(xiàn)。物理內(nèi)存完全由系統(tǒng)管理。
實(shí)驗(yàn)?zāi)康?/p>
1)通過(guò)實(shí)驗(yàn)了解Windows2023內(nèi)存的使用,學(xué)習(xí)如何在應(yīng)用程序中管理內(nèi)存,體會(huì)
Windows應(yīng)用程序內(nèi)存的簡(jiǎn)樸性和自我防護(hù)能力。
2)了解Windows2023的內(nèi)存結(jié)構(gòu)和虛擬內(nèi)存的管理,進(jìn)而了解進(jìn)程堆和Windows
為使用內(nèi)存而提供的一些擴(kuò)展功能。
工具/準(zhǔn)備工作
在開(kāi)始本實(shí)驗(yàn)之前,請(qǐng)回顧教科書(shū)的相關(guān)內(nèi)容。
您需要做以下準(zhǔn)備:
1)一臺(tái)運(yùn)營(yíng)Windows2023Professiona1操作系統(tǒng)的計(jì)算機(jī)。
2)計(jì)算機(jī)中需安裝VisualC++6.0專(zhuān)業(yè)版或公司版。
實(shí)驗(yàn)內(nèi)容與環(huán)節(jié)
Windows提供了一個(gè)API即GetSysteminfo(),以便用戶(hù)能檢查系統(tǒng)中虛擬內(nèi)存
的一些特性。清單5-1顯示了如何調(diào)用該函數(shù)以及顯示系統(tǒng)中當(dāng)前內(nèi)存的參數(shù)。
環(huán)節(jié)1:登錄進(jìn)入Windows2023Professionah
環(huán)節(jié)2:在“開(kāi)始”菜單中單擊“程序一MicrosoftVisua1Studio6.0-Microso
ftVisualC++6.0”命令,進(jìn)入VisualC++窗口。
環(huán)節(jié)3:在工具欄單擊“打開(kāi)”按鈕,在“打開(kāi)”對(duì)話(huà)框中找到并打開(kāi)實(shí)驗(yàn)源程序5-1.c
PP。
清單
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 威視行業(yè)測(cè)繪培訓(xùn)
- 《淘寶營(yíng)銷(xiāo)活動(dòng)技巧》課件
- 《房地產(chǎn)人職業(yè)規(guī)劃》課件
- 《課件視覺(jué)設(shè)計(jì)》課件
- 2024年四川省德陽(yáng)市公開(kāi)招聘警務(wù)輔助人員輔警筆試自考題1卷含答案
- 2023年陜西省漢中市公開(kāi)招聘警務(wù)輔助人員輔警筆試自考題1卷含答案
- 2024年甘肅省平?jīng)鍪泄_(kāi)招聘警務(wù)輔助人員輔警筆試自考題2卷含答案
- 2021年黑龍江省鶴崗市公開(kāi)招聘警務(wù)輔助人員輔警筆試自考題2卷含答案
- 2021年遼寧省沈陽(yáng)市公開(kāi)招聘警務(wù)輔助人員輔警筆試自考題1卷含答案
- 2022年黑龍江省大興安嶺地區(qū)公開(kāi)招聘警務(wù)輔助人員輔警筆試自考題2卷含答案
- 湖北第二師范學(xué)院《操作系統(tǒng)》2023-2024學(xué)年期末試卷
- 2021-2022學(xué)年河北省唐山市高一上學(xué)期期末語(yǔ)文試題
- 舒適化醫(yī)療麻醉
- 南寧二中、柳州高中2025屆高一上數(shù)學(xué)期末聯(lián)考試題含解析
- 吃動(dòng)平衡健康體重 課件 2024-2025學(xué)年人教版(2024)初中體育與健康七年級(jí)全一冊(cè)
- 高效能人士的七個(gè)習(xí)慣(課件)
- 2024年秋季學(xué)期新魯教版(54制)6年級(jí)上冊(cè)英語(yǔ)課件 Unit6 Section A (3a-3c)(第3課時(shí))
- 福建省泉州市2023-2024學(xué)年高一上學(xué)期1月教學(xué)質(zhì)量檢測(cè)(期末考試)地理試題 附答案
- 2024年廣東石油化工學(xué)院公開(kāi)招聘部分新機(jī)制合同工20名歷年高頻難、易錯(cuò)點(diǎn)500題模擬試題附帶答案詳解
- 青年產(chǎn)業(yè)園鋁灰和廢酸資源化綜合利用試驗(yàn)項(xiàng)目環(huán)評(píng)報(bào)告表
- 部編版六年級(jí)下冊(cè)道德與法治全冊(cè)教案教學(xué)設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論