版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
操作系統(tǒng)實驗?zāi)昙?014級專業(yè)學(xué)號姓名指導(dǎo)教師實驗一Windows任務(wù)管理器的使用一、實驗?zāi)康耐ㄟ^在Windows任務(wù)管理器中對程序進程進行響應(yīng)的管理操作,熟悉操作系統(tǒng)進程管理的概念,學(xué)習(xí)觀察操作系統(tǒng)運行的動態(tài)性能.二、實驗內(nèi)容啟動并進入Windows環(huán)境,單擊Ctrl+Alt+Del鍵,或者右鍵單擊任務(wù)欄,在快捷菜單中單擊“任務(wù)管理器”命令,打開“任務(wù)管理器”窗口.分別查看每個選項卡的內(nèi)容,了解相關(guān)參數(shù)的含義及其當(dāng)前內(nèi)容在“進程”選項卡上單擊“查看”菜單,然后單擊“選擇列”命令單擊要增加顯示為列標(biāo)題的項目,然后單擊“確定”.分別了解“進程”選項卡各列的含義及其當(dāng)前內(nèi)容.旦¥indoTS任務(wù)管理器|T||B|,X文件?選項敏查看如其機?幫助如應(yīng)用程月透擇列應(yīng)用程月透擇列詰選擇部任③管理器"進程頁上埒顯示的列口SVCHBkbMCTFMepZkMuLMSCABmspaSPOOEXFLSVCHBkbMCTFMepZkMuLMSCABmspaSPOOEXFLpkHHHH£KLsffrl;rcrc匚AleaIVVVV£■1+-mnsEssB<映像名稱隹)3FID逆程標(biāo)識符)(D可匚FU使用舊)0CF1T時間?0內(nèi)存使用(W口內(nèi)存便用增量?口內(nèi)存便用高峰值兇口頁面錯誤低)□user對象(U)I/O讀取I/O讀收字節(jié)會話1C①用F名但)□頁面錯誤增最(A)可虛擬內(nèi)存大小凹□頁面緩沖池國□本頁面最沖池W0基本憂先綴(K)口句柄計數(shù)也〕回張程計數(shù)(I〕gbi對象①I/O寫入I/O與入字節(jié)I/O其他I/O其他字節(jié)取消也進程數(shù):24CFU使用:2%提交更K:L285O8K/&33&44:為更改正在運行的程序的優(yōu)先級,可在“進程”選項卡上右鍵單擊您要更改的程序,指向“設(shè)置優(yōu)先級”,然后單擊所需的選項.更改進程的優(yōu)先級可以使其運行更快或更慢(取決于是提升還是降低了優(yōu)先級),但也可能對其他進程的性能有相反的影響.(查看進程管理器,說明按照名字序號前5個進程的主要用途和功能.)4、修改windows服務(wù)選項,將windows的遠程用戶修改注冊表的服務(wù)設(shè)置成禁止.:打開控制面板一管理工具一服務(wù)一找到"RemoteRegistry",雙擊,啟動類型設(shè)置為禁用.5、修改windows的磁盤管理并設(shè)定配額選項。設(shè)定配額的磁盤格式必須是NTFS,如果你的硬盤是FAT32格式;可通過以下命令:convert盤符:/fs:ntfs將某一磁盤分區(qū)轉(zhuǎn)為NTFS。6、修改windows啟動選項,將其中的前三個自動啟動的選項去掉.:開始一運行一輸入msconfig,到啟動頁.7、修改windows的虛擬內(nèi)存交換空間.8、修改windows使得windows啟動時,顯示操作系統(tǒng)列表時間為5秒,并寫出啟動文件的具體內(nèi)容.:右鍵我的電腦一屬性一高級一啟動和故障恢復(fù)的設(shè)置一顯示列表時間設(shè)為5,一點擊編輯一列出具體內(nèi)容,一般是:[bootloader]timeout=0default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS[operatingsystems]multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="MicrosoftWindowsXPProfessional"/noexecute=optin/fastdetect9、查看windows本地安全策略,并修改為定期強制修改密碼.寫出本地安全策略的審核的內(nèi)容.:開始一運行一輸入gpedit.msc一計算機設(shè)置一Windows設(shè)置一安全設(shè)置一賬戶策略一密碼策略一密碼最長存留期設(shè)置為需要的天數(shù)即可.10、獲得此計算機網(wǎng)卡的網(wǎng)絡(luò)配置及mac地址.開始一運行一輸入cmd回車一輸入ipconfig/all回車即是.11、在D盤新建一個文件夾,以自己的拼音縮寫命名,并利用命令將其映射為I盤,例如為aaa,命令:substI:d:\aaa.即將c:\aaa映射為I盤.(注:I盤是虛擬盤,不是實際的硬盤)語法subst[drive1:[drive2:}Path}substdrive1:/d參數(shù)drive1:指定要為其指派路徑的虛擬驅(qū)動器.drive2:指定包含指定路徑的物理驅(qū)動器(如果不是當(dāng)前的驅(qū)動器).Path指定要指派給虛擬驅(qū)動器的路徑./d刪除虛擬驅(qū)動器./?在命令提示符顯示幫助.注釋以下命令在subst命令中使用的驅(qū)動器上無法工作(或不應(yīng)使用):chkdskDiskcompDiskcopyformatlabelrecoverdrivel參數(shù)必須在lastdrive命令指定的范圍之內(nèi).如果沒有,subst將顯示下列錯誤消息:Invalidparameter-drivel:范例若要為路徑B:\User\Betty\Forms創(chuàng)建虛擬驅(qū)動器Z,請鍵入:substz:b:\user\betty\forms現(xiàn)在,不用鍵入完整路徑,而是通過鍵入虛擬驅(qū)動器號,后跟冒號,即可到達該目錄,如下所示:z:winxp中的映射盤符命令:subst另附上軟件extrasubst.zip(創(chuàng)建虛擬驅(qū)動器)12、通過設(shè)備管理器查看系統(tǒng)所有組件配置.包括驅(qū)動程序,裝載的所有程序,windows組件,硬件組件的IRQ等.13、查看windows的版本及注冊信息.:開始一運行一輸入winver回車14、利用windows自帶的聊天工具,進行局域網(wǎng)內(nèi)的聊天,并寫出詳細步驟首先啟動服務(wù)中的Messager服務(wù),Sp2以后版本默認為禁止的,將其設(shè)為自動,然后要發(fā)消息就開始一運行一輸入netsend對方IP地址信息內(nèi)容.回車即可15、利用命令查看windows進程中每個進程所提供的服務(wù).命令:tasklist/SVC(注:查看svchost進程情況)實驗二Windows進程觀測一、背景知識Windows提供了創(chuàng)建控制臺應(yīng)用程序的能力,使用戶可以利用標(biāo)準(zhǔn)的C++工具,如iostream庫中的cout和cin對象,來創(chuàng)建小型應(yīng)用程序。當(dāng)系統(tǒng)運行時,Windows7的服務(wù)通常要向系統(tǒng)用戶提供所需功能。服務(wù)應(yīng)用程序類型需要ServiceMail()函數(shù),由服務(wù)控制管理器(SCM)加以調(diào)用°SCM是操作系統(tǒng)的集成部分,負責(zé)響應(yīng)系統(tǒng)啟動以開始服務(wù)、指導(dǎo)用戶控制或從另一個服務(wù)中來的請求。其本身負責(zé)使應(yīng)用程序的行為像一個服務(wù)。通常,服務(wù)登錄到特殊的LocalSystem賬號下,此賬號具有與開發(fā)人員創(chuàng)建的服務(wù)不同的權(quán)限。當(dāng)令C++編譯器創(chuàng)建可執(zhí)行程序時,編譯器將源代碼編譯成OBJ文件,然后將其與標(biāo)準(zhǔn)庫相鏈接。產(chǎn)生的EXE文件是裝載器指令、機器指令和應(yīng)用程序的數(shù)據(jù)的集合。裝載器指令告訴系統(tǒng)從哪里裝載機器代碼。另一個裝載器指令告訴系統(tǒng)從哪里開始執(zhí)行進程的主線程。在進行某些設(shè)置后,進入開發(fā)者提供的main()、ServiceMain()或WinMain()函數(shù)的低級入口點。機器代碼中包括有控制邏輯,它所做的事包括跳轉(zhuǎn)到WindowsAPI函數(shù),進行計算或向磁盤寫入數(shù)據(jù)等。Windows允許開發(fā)人員將大型應(yīng)用程序分為較小的、互相有關(guān)系的服務(wù)模塊,即動態(tài)鏈接庫(DLL)代碼塊,在其中包含應(yīng)用程序所使用的機器代碼和應(yīng)用程序的數(shù)據(jù)。二、實驗?zāi)康耐ㄟ^對Windows編程,進一步熟悉操作系統(tǒng)的基本概念,較好地理解Windows的結(jié)構(gòu)。三、實驗內(nèi)容與步驟簡單的控制臺應(yīng)用程序我們先來創(chuàng)建一個名為“Hello,World”的應(yīng)用程序。步驟1:登錄進入Windows。步驟2:在“開始”菜單中單擊“程序”-“附件”-“記事本”命令,將清單1-l中的程序鍵入記事本中,并把代碼保存為Hello.cpp。清單1-1一個簡單的Windows控制臺應(yīng)用程序//hello項目#include<iostream>voidmain(){std::cout<<“Hello,Windows7”<<std::endl;}步驟3:在“開始”菜單中單擊“程序”-“附件”-“命令提示符”命令,進入Windows“命令提示符”窗口,并利用簡單的標(biāo)準(zhǔn)命令行:C:\>CLHello.cpp來創(chuàng)建可執(zhí)行的Hello.EXE。操作能否正常進行?如果不行,則可能的原因是什么?步驟4:運行Hello.EXE程序,產(chǎn)生用戶鍵入的一行文字。運行結(jié)果(如果運行不成功,則可能的原因是什么?):GUI應(yīng)用程序在下面的實驗中,C++編譯器創(chuàng)建一個GUI應(yīng)用程序,代碼中包括7WinMain()方法,這是GUI類型的應(yīng)用程序的標(biāo)準(zhǔn)入口點。步驟5:在“開始”菜單中單擊“程序”-“附件”-“記事本”命令,將清單1-2中的程序鍵入記事本中,并把代碼保存為1-2.cpp。清單1-2Windows7的GUI應(yīng)用程序//msgbox項目#include<windows.h>//標(biāo)準(zhǔn)的include//告訴連接器與包括MessageBoxAPI函數(shù)的user32庫進行連接#pragmacomment(lib,“user32.lib”)//這是一個可以彈出信息框然后退出的筒單的應(yīng)用程序intAPIENTRYWinMain(HINSTANCE/*hInstance*/,HINSTANCE/*hPrevInstance*/,LPSTR/*IpCmdLine*/,int/*nCmdShow*/){::MessageBox(NULL,//沒有父窗口“Hello,Windows”,//消息框中的文本“Greetings”,//消息框標(biāo)題MB_OK);//其中只有一個OK按鈕//返回0以便通知系統(tǒng)不進入消息循環(huán)return(0);}也可以利用任何其他文本編輯器鍵入程序代碼,如果這樣,例如使用WORD來鍵入和編輯程序,則應(yīng)該注意什么問題?步驟6:在“命令提示符”窗口運行CL.EXE,產(chǎn)生1-2.EXE文件:C:\>CL1-2.cpp在清單1-2的GUI應(yīng)用程序中,首先需要Windows.h頭文件,以便獲得傳送給WinMain()和MessageBox()API函數(shù)的數(shù)據(jù)類型定義。接著的pragma指令指示編譯器/連接器找到User32.LIB庫文件并將其與產(chǎn)生的EXE文件連接起來。這樣就可以運行簡單的命令行命令CLMsgBox.CPP來創(chuàng)建這一應(yīng)用程序,如果沒有pragma指令,則MessageBox()API函數(shù)就成為未定義的了。這一指令是VisualStudioC++編譯器特有的。接下來是WinMain()方法。其中有四個由實際的低級入口點傳遞來的參數(shù)°hInstance參數(shù)用來裝入與代碼相連的圖標(biāo)或位圖一類的資源,無論何時,都可用GetModuleHandle()API函數(shù)將這些資源提取出來。系統(tǒng)利用實例句柄來指明代碼和初始的數(shù)據(jù)裝在內(nèi)存的何處。句柄的數(shù)值實際上是EXE文件映像的基地址,通常為0x00400000。下一個參數(shù)hPrevInstance是為向后兼容而設(shè)的,現(xiàn)在系統(tǒng)將其設(shè)為NULL。應(yīng)用程序的命令行(不包括程序的名稱)是lpCmdLine參數(shù)。另外,系統(tǒng)利用nCmdShow參數(shù)告訴應(yīng)用程序如何顯示它的主窗口(選項包括最小化、最大化和正常)。最后,程序調(diào)用MessageBox()API函數(shù)并退出。如果在進入消息循環(huán)之前就結(jié)束運行的話,最后必須返回0。1-2.EXE運行結(jié)果(試將其中的信息與清單1-1程序的運行結(jié)果進行比較):進程對象操作系統(tǒng)將當(dāng)前運行的應(yīng)用程序看作是進程對象。利用系統(tǒng)提供的惟一的稱為句柄(HANDLE)的號碼,就可與進程對象交互。這一號碼只對當(dāng)前進程有效。本實驗表示了一個簡單的進程句柄的應(yīng)用。在系統(tǒng)中運行的任何進程都可調(diào)用GetCurrentProcess()API函數(shù),此函數(shù)可返回標(biāo)識進程本身的句柄。然后就可在Windows需要該進程的有關(guān)情況時,利用這一句柄來提供。步驟7:將清單1-3.cpp程序鍵入記事本中,并把代碼保存為1-3.cpp。清單1-3獲得和使用進程的句柄//prochandle項目include<windows.h>include<iostream.h>//確定自己的優(yōu)先權(quán)的簡單應(yīng)用程序voidmain(){//從當(dāng)前進程中提取句柄HANDLEhProcessThis=::GetCurrentProcess();//請求內(nèi)核提供該進程的優(yōu)先權(quán)DWORDdwPriority=::GetPriorityClass(hProcessThis);//發(fā)出消息,為用戶描述該類std::cout<<“Currentprocesspriority:”;switch(dwPriority){caseHIGH_PRIORITY_CLASS:std::cout<<"High”;break;caseNORMAL_PRIORITY_CLASS:std::cout<<"Normal”;break;caseIDLE_PRIORITY_CLASS:std::cout<<"Idle”;break;caseREALTIME_PRIORITY_CLASS:std::cout<<"Realtime”;break;default:std::cout<<"<unknown>”;break;}std::cout<<std::endl;}清單1-3中列出的是一種獲得進程句柄的方法。對于進程句柄可進行的惟一有用的操作是在API調(diào)用時,將其作為參數(shù)傳送給系統(tǒng),正如清單1-3中對GetPriorityClass()API函數(shù)的調(diào)用那樣。在這種情況下,系統(tǒng)向進程對象內(nèi)“窺視”,以決定其優(yōu)先級,然后將此優(yōu)先級返回給應(yīng)用程序。OpenProcess()和CreateProcess()API函數(shù)也可以用于提取進程句柄。前者提取的是已經(jīng)存在的進程的句柄,而后者創(chuàng)建一個新進程,并將其句柄提供出來。步驟8:在“命令提示符”窗口運行CL.EXE,產(chǎn)生1-3.EXE文件:C:\>CL1-3.cpp1-3.EXE運行結(jié)果:步驟9:將清單1-4.cpp程序鍵入記事本中,并把代碼保存為1-4.cpp。清單1-4顯示如何找出系統(tǒng)中正在運行的所有進程,如何利用OpenProcess()API函數(shù)來獲得每一個訪問進程的進一步信息。清單1-4利用句柄查出進程的詳細信息//proclist項目include<windows.h>include<tlhelp32.h>include<iostream.h>//當(dāng)在用戶模式及內(nèi)核模式下都提供所耗時間時,在內(nèi)核模式下進行所耗時間的64位計算的幫助方法DWORDGetKernelModePercentage(constFILETIME&ftKernel,constFILETIME&ftUser){//將FILETIME結(jié)構(gòu)轉(zhuǎn)化為64位整數(shù)ULONGLONGqwKernel=(((ULONGLONG)ftKernel.dwHighDateTime)<<32)+ftKernel.dwLowDateTime;ULONGLONGqwUser=(((ULONGLONG)ftUser.dwHighDateTime)<<32)+ftUser.dwLowDateTime;//將消耗時間相加,然后計算消耗在內(nèi)核模式下的時間百分比ULONGLONGqwTotal=qwKernel+qwUser;DWORDdwPct=(DWORD)(((ULONGLONG)100*qwKernel)/qwTotal);return(dwPct);}//以下是將當(dāng)前運行進程名和消耗在內(nèi)核模式下的時間百分數(shù)都顯示出來的應(yīng)用程序voidmain(){//對當(dāng)前系統(tǒng)中運行的所有進程拍取“快照”HANDLEhSnapshot=::CreateToolhelp32Snapshot(TH32CS-SNAPPROCESS,//提取當(dāng)前進程0);//如果是當(dāng)前進程,就將其忽略
//初始化進程入口PROCESSENTRY32pe;::ZeroMemory(&pe,sizeof(pe));pe.dwSize=sizeof(pe);//按所有進程循環(huán)BOOLbMore=::Process32First(hSnapshot,&pe);while(bMore){//打開用于讀取的進程HANDLEhProcess=::OpenProcess(PROCESS_QUERY_INFORMATION,//指明要得到信息FALSE,//不必繼承這一句柄pe.th32ProcessID);//要打開的進程if(hProcess!=NULL){//找出進程的時間FILETIMEftCreation,ftExit,ftKernelMode,ftUserMode;::GetProcessTimes(hProcess,//所感興趣的進程
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 裝修合同范本柜子
- 城市商品房屋出租合同范本
- 齊齊哈爾大學(xué)《機械設(shè)計基礎(chǔ)》2022-2023學(xué)年第一學(xué)期期末試卷
- 2024屆廣東省東莞中學(xué)高三下學(xué)期第二次模擬考試數(shù)學(xué)試題理試卷
- 工地刷墻合同范本
- 定稿版 天津分公司90萬噸年催化汽油吸附脫硫裝置標(biāo)書2014.5.6
- 翻譯勞務(wù)合同范本
- 沙子購進合同范本
- 時尚簽約合同范本
- 齊齊哈爾大學(xué)《材料力學(xué)》2022-2023學(xué)年第一學(xué)期期末試卷
- 定制酒合同協(xié)議書
- 船舶安全培訓(xùn)課件
- 2024年上海社區(qū)工作者考試題及完整答案1套
- 醫(yī)院科室評優(yōu)評先方案
- 川芎茶調(diào)顆粒的安全性評價研究
- 手術(shù)室銳器刺傷
- 中國食物成分表2018年(標(biāo)準(zhǔn)版)第6版
- 科普類公園設(shè)計方案
- 小學(xué)英語就業(yè)能力展示
- 心肌病和心肌炎課件
- 《艾滋病毒》課件
評論
0/150
提交評論