




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、操作系統(tǒng)實(shí)驗(yàn)報(bào)告課程名稱操作系統(tǒng)實(shí)驗(yàn)實(shí)驗(yàn)項(xiàng)目名稱進(jìn)程的創(chuàng)建學(xué)號(hào)班級(jí)20100612姓名專業(yè)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)生所在學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)指導(dǎo)教師實(shí)驗(yàn)室名稱地點(diǎn)計(jì)算機(jī)基礎(chǔ)第七實(shí)驗(yàn)室21B475哈爾濱工程大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院、實(shí)驗(yàn)概述實(shí)驗(yàn)名稱進(jìn)程的創(chuàng)建實(shí)驗(yàn)?zāi)康木毩?xí)使用EOSAPI函數(shù)CreateProcess創(chuàng)建一個(gè)進(jìn)程,掌握創(chuàng)建進(jìn)程的方法,理解進(jìn)程和程序的區(qū)別。(2)調(diào)試跟蹤C(jī)reateProcess函數(shù)的執(zhí)行過(guò)程,了解進(jìn)程的創(chuàng)建過(guò)程,理解進(jìn)程是資源分配的單位。實(shí)驗(yàn)類型驗(yàn)證性實(shí)驗(yàn)實(shí)驗(yàn)內(nèi)容準(zhǔn)備實(shí)驗(yàn)練習(xí)使用控制臺(tái)命令創(chuàng)建EOS應(yīng)練習(xí)的方式讓應(yīng)用程序創(chuàng)建另一個(gè)應(yīng)用程序的進(jìn)程調(diào)試Create調(diào)試Cre
2、atecess函數(shù)二、實(shí)驗(yàn)環(huán)境E0操作系統(tǒng)三、實(shí)驗(yàn)過(guò)程調(diào)試PsCreateProcess函數(shù):調(diào)試進(jìn)程控制塊的創(chuàng)建過(guò)程調(diào)試初始化進(jìn)程控制塊中各個(gè)成員變量的過(guò)程設(shè)計(jì)思路和流稈圖算法實(shí)現(xiàn)需要解決的問(wèn)題及解答(1)在源代碼文件NewTwoProc.c提供的源代碼基礎(chǔ)上進(jìn)行修改,要求使用hello.exe同時(shí)創(chuàng)建10個(gè)進(jìn)程。提示:可以使用PROCESS_INFORMA類型定義一個(gè)有10個(gè)元素的數(shù)組,每一個(gè)元素對(duì)應(yīng)一個(gè)進(jìn)程。使用一個(gè)循環(huán)創(chuàng)建10個(gè)子進(jìn)程,然后再使用一個(gè)循環(huán)等待10個(gè)子進(jìn)程結(jié)束,得到退出碼后關(guān)閉句柄。答:后文中,有此題解決方案。嘗試根據(jù)之前對(duì)PsCreateProcess函數(shù)和PspCre
3、ateProcessEnvironment函數(shù)執(zhí)行過(guò)程的跟蹤調(diào)試,繪制一幅進(jìn)程創(chuàng)建過(guò)程的流程圖。在PsCreateProcess函數(shù)中調(diào)用了PspCreateProcessEnvironment函數(shù)后又先后調(diào)用了PspLoadProcessImage和PspCreateThread函數(shù),學(xué)習(xí)這些函數(shù)的主要功能。能夠交換這些函數(shù)被調(diào)用的順序嗎?思考其中的原因。答:PspCreateProcessEnvironment的主要功能是創(chuàng)建進(jìn)程控制塊并且為進(jìn)程創(chuàng)建了地址空間和分配了句柄表。PspLoadProcessImage是將進(jìn)程的可執(zhí)行映像加載到了進(jìn)程的地址空間中。PspCreateThread創(chuàng)
4、建了進(jìn)程的主線程。這三個(gè)函數(shù)被調(diào)用的順序是不能夠改變的就向上面描述的加載可執(zhí)行映像之前必須已經(jīng)為進(jìn)程創(chuàng)建了地址空間這樣才能夠確定可執(zhí)行映像可以被加載到內(nèi)存的什么位置在創(chuàng)建主線程之前必須已經(jīng)加載了可執(zhí)行映像這樣主線程才能夠知道自己要從哪里開(kāi)始執(zhí)行,執(zhí)行哪些指令。因此不能交換他們的順序。主要數(shù)據(jù)結(jié)構(gòu)、實(shí)現(xiàn)代碼及其說(shuō)明主要使用PROCESS_INFORMAT類型定義一個(gè)有10個(gè)元素的數(shù)組,每一個(gè)元素對(duì)應(yīng)一個(gè)進(jìn)程。使用一個(gè)循環(huán)創(chuàng)建10個(gè)子進(jìn)程,然后再使用一個(gè)循環(huán)等待10個(gè)子進(jìn)程結(jié)束,得到退出碼后關(guān)閉句柄。源程序并附上注釋使用hello.exe同時(shí)創(chuàng)建10個(gè)進(jìn)程的原代碼及注釋如下:#includeEOS
5、App.h/main函數(shù)參數(shù)的意義:/argc-argv數(shù)組的長(zhǎng)度,大小至少為1,argc-1為命令行參數(shù)的數(shù)量。/argv-字符串指針數(shù)組,數(shù)組長(zhǎng)度為命令行參數(shù)個(gè)數(shù)+1。其中argv0固定指向當(dāng)前/進(jìn)程所執(zhí)行的可執(zhí)行文件的路徑字符串,argv1及其后面的指針指向各個(gè)命令行/參數(shù)。/例如通過(guò)命令行內(nèi)容a:hello.exe-a-b啟動(dòng)進(jìn)程后,hello.exe的main函/數(shù)的參數(shù)argc的值為3,argv0指向字符串a(chǎn):hello.exe,argv1指向/參數(shù)字符串-a,argv2指向參數(shù)字符串-main(intargc,char*argv)/啟動(dòng)調(diào)試EOS應(yīng)用程序前要特別注意下面
6、的問(wèn)題:/1、如果要在調(diào)試應(yīng)用程序時(shí)能夠調(diào)試進(jìn)入內(nèi)核并顯示對(duì)應(yīng)的源碼,/必須使用EOS核心項(xiàng)目編譯生成完全版本的SDK文件夾,然/后使用此文件夾覆蓋應(yīng)用程序項(xiàng)目中的SDK文件夾,并且EOS/核心項(xiàng)目在磁盤上的位置不能改變。/2、在啟動(dòng)調(diào)試應(yīng)用程序之前必須首先刪除/禁用所有的斷點(diǎn),在斷/點(diǎn)中斷(int3)被命中后才能重新添加/啟用斷點(diǎn),否則啟動(dòng)/調(diào)試會(huì)失敗。STARTUPINFOStartupInfo;PROCESS_INFORMATIONProcInfo10;ULONGulExitCode;/子進(jìn)程退出碼INTnResult=0;/main函數(shù)返回值。0表示成功,非0表示失敗。inti,j;#
7、ifdef_DEBUG/_asm(int$3nnop);#endifprintf(Create10processesandwaitfortheprocessesexit.nn);/使子進(jìn)程和父進(jìn)程使用相同的標(biāo)準(zhǔn)句柄。StartupInfo.StdInput=GetStdHandle(STD_INPUT_HANDLE);Startuplnfo.StdOutput=GetStdHandle(STD_OUTPUT_HANDLE);StartupInfo.StdError=GetStdHandle(STD_ERROR_HANDLE);/為一個(gè)應(yīng)用程序同時(shí)創(chuàng)建10個(gè)子進(jìn)程。for(i=0;i10;i+)
8、if(CreateProcess(A:Hello.exe,NULL,0,&StartupInfo,&ProcInfoi);elsefor(j=0;ji;j+)WaitForSingleObject(Proclnfoj.ProcessHandle,INFINITE);/得到并輸出子進(jìn)程的退出碼。GetExitCodeProcess(ProcInfoj.ProcessHandle,&ulExitCode);printf(nTheprocess%dexitwith%d.n,j,ulExitCode);/關(guān)閉不再使用的句柄。CloseHandle(Proclnfoj.ProcessHandle);Cl
9、oseHandle(Proclnfoj.ThreadHandle);printf(CreateProcessFailed,Errorcode:0 x%X.n,GetLastError();nResult=1;returnnResult;for(i=0;i10;i+)/創(chuàng)建子進(jìn)程成功,等待子進(jìn)程運(yùn)行結(jié)束。WaitForSingleObject(ProcInfoi.ProcessHandle,INFINITE);/得到并輸出子進(jìn)程的退出碼。GetExitCodeProcess(Proclnfoi.ProcessHandle,&ulExitCode);for(i=0;iPas=MmCreatePro
10、cessAddressSpace();添加一個(gè)斷點(diǎn)。按F5繼續(xù)調(diào)試,到此斷點(diǎn)處中斷。按F1C執(zhí)行此行代碼后中斷。在“監(jiān)視”窗口中查看進(jìn)程控制塊的成員變量Pas的值已經(jīng)不再是0。說(shuō)明已經(jīng)初始化了進(jìn)程的4G虛擬地址空間。監(jiān)視4x輸出名稱PrifiiarvTiu-eadOkO,=lext=30Pre-r=OidOSyslvh=OkO,Priority-OkOPas=OxBO3b6e3,ubftetTabl=Oku,ThgdiLittHoM-I*Kt-0也Irer二00口蓉期sm疊=UxOCmdLin-CkO.=0 x0Imageiiitry-g営電肛珂譏OaeCjiStdDutpul-OiiOjSt
11、dErrorQ疏E;ExjiCude-OxCkll制作軼盤譙像.正在潔功Virtual比.八疔439使用F10一步步調(diào)試PspCreateProcessEnvironment函數(shù)中后面的代碼,在調(diào)試的過(guò)程中根據(jù)執(zhí)行的源代碼,查看“監(jiān)視”窗口中*NewProcess表達(dá)式的值結(jié)果如下:李崇殼5:)&第三講kdoliieReader,P,*easapp一Teva.若稱WtwPrctss調(diào)訶制作軟盤闔正在潔功VirtualK.幵始調(diào)試輸出tarn=AtOj.Priority=0 x8,Pg0i802be8,Objictltble=0 x603fC2a,TkradListHead=fNext-0 x0
12、,frev=UartJLPrioaryThread-OwDiaitListHeed=hl1気砂結(jié)果11氧査找日-OkQ#Cmdline二0 x0,司輸出N斷點(diǎn)IQ調(diào)月堆棧聯(lián)緒行483LrnUxUj,Im&.gEnUry=0,Stdlnpu*:=0 x0StOutput二0 x0,Stdlrror-叮idJExi(Code=0 x0fL李翥亮5;缶第三曲了IAdobeReid.-.警epsapp-T,密lab3EJ.1.監(jiān)視k冥輸出LSy-Ei-in-OacO.調(diào)試*N*wFrocftiEPriority-OxB,Fas二OKSOSfbeeSjObj*c+T.bl40h303:OxgFu=Ox.
13、i(制企軟整礁像正-比啟動(dòng)VirtualPC.開(kāi)始調(diào)試+ThreidLiEtHtai=Next=Dxa33fbT住,Prv=0st803bTLPrimaryThread-Qbtg屮乩讓電心詔=Next=OkO,1|甲查蝮聖1冋查找第hImagetfame二DxOCmLine-0 x3-DhOj,V沏出二眇點(diǎn)注訓(xùn)冃理壯就緒a47ImftgEntry=0,Stdlnjiut=血匕St-dOn+pil-t=OhO,StdError-OIkO,ExitCdde=U0亮(D)缶第三講jf1AdobeKe,.朝“sapp-.尅laV3截醫(yī).轄Microsof.axax輸出名稱*HiwFr0ctiiSystwii=OxOjFricrity=Qx6,Ez=OfiOattS,OhctTdl=Dxffi3Fc2ThratdLiitBiad=Uawt-OwSOSfbTFi:,Prev=0 xStJ3b7cXtl凋區(qū)制作軟蠱演像正右啟動(dòng)VirtualPC開(kāi)始調(diào)試Fydim冊(cè)聖Thu氧心=003HutLislHstd=Went-OiSOSftSOB,Prer=XCBfbSM,IntNuiit!-OnClOOfLOaOA:EQSAw.,CndLine=OkO,InChdJ#Inig&Entry=0 x0,StdOutpiit-CbibStdError=DicOElitCode=0 x031AdobeR
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年六路一體化硅箱項(xiàng)目可行性研究報(bào)告
- -模塊化-橇裝化-工廠化-集成技術(shù)在蘇丹石油地面工程建設(shè)中的應(yīng)用
- 2025年螺旋輸送網(wǎng)帶項(xiàng)目可行性研究報(bào)告
- 淺談施工單位“安管人員”安全生產(chǎn)責(zé)任
- 2024-2025學(xué)年高中歷史專題六西方人文精神的起源與發(fā)展二神權(quán)下的自我課后篇鞏固探究人民版必修3
- 淺談建筑施工企業(yè)工程項(xiàng)目成本管理
- 心理素質(zhì)拓展心得體會(huì)范文(30篇)
- Unit 1 Life Choices Lesson 2 Understanding and Coping with Stress 教學(xué)設(shè)計(jì)-2024-2025學(xué)年高中英語(yǔ)北師大版(2019)必修第一冊(cè)
- 2023-2029年中國(guó)異步發(fā)電機(jī)行業(yè)市場(chǎng)全景評(píng)估及投資前景展望報(bào)告
- 2025-2030年中國(guó)拖拉機(jī)加長(zhǎng)半軸項(xiàng)目投資可行性研究分析報(bào)告
- 黔2022-T122 磷石膏砂漿噴筑復(fù)合墻標(biāo)準(zhǔn)圖集 第1部分:輕鋼龍骨-磷石膏砂漿噴筑復(fù)合墻體
- GB 29444-2012煤炭井工開(kāi)采單位產(chǎn)品能源消耗限額
- 精細(xì)化學(xué)品化學(xué)-緒論課件
- 車間維修電工安全技術(shù)操作規(guī)程
- 第四章 聚合物基納米復(fù)合材料課件
- 教學(xué)課件 211和985工程大學(xué)簡(jiǎn)介
- 臥式水泵安裝
- 綜合交通運(yùn)輸體系課件
- 趣味經(jīng)濟(jì)學(xué)課件
- 實(shí)木家具生產(chǎn)標(biāo)準(zhǔn)工藝標(biāo)準(zhǔn)流程
- 小學(xué)生讀書(shū)卡模板
評(píng)論
0/150
提交評(píng)論