操作系統(tǒng)實驗 進程的描述與控制

操作系統(tǒng)實驗 進程的描述與控制

ID:6094214

大小:83.50 KB

頁數(shù):8頁

時間:2018-01-02

操作系統(tǒng)實驗  進程的描述與控制_第1頁
操作系統(tǒng)實驗  進程的描述與控制_第2頁
操作系統(tǒng)實驗  進程的描述與控制_第3頁
操作系統(tǒng)實驗  進程的描述與控制_第4頁
操作系統(tǒng)實驗  進程的描述與控制_第5頁
資源描述:

《操作系統(tǒng)實驗 進程的描述與控制》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫

1、實驗2:進程的描述與控制Windows2000進程的一生(實驗學(xué)時:2學(xué)時)2.1背景知識Windows2000所創(chuàng)建的每個進程都從調(diào)用CreateProcess()API函數(shù)開始,該函數(shù)的任務(wù)是在對象管理器子系統(tǒng)內(nèi)初始化進程對象。每一進程都以調(diào)用ExitProcess()或TerminateProcess()API函數(shù)終止。通常應(yīng)用程序的框架負責(zé)調(diào)用ExitProcess()函數(shù),對于C++運行庫來說,這一調(diào)用發(fā)生在應(yīng)用程序的main()函數(shù)返回之后。1.創(chuàng)建進程CreateProcess()調(diào)用的核心參數(shù)是可執(zhí)行文件運行時的文件名及其命令行。表2-1詳細地列出了每個參數(shù)的類

2、型和名稱。表2-1實驗記錄參數(shù)名稱使用目的LPCTSTRlpApplivationName全部或部分地指明包括可執(zhí)行代碼的EXE文件的文件名LPCTSTRlpCommandLine向可執(zhí)行文件發(fā)送的參數(shù)LPSECURIITY_ATTRIBUTESlpProcessAttributes返回進程句柄的安全屬性,主要指明這一句柄是否應(yīng)該由其他子進程所繼承。LPSECURIITY_ATTRIBUTESlpThreadAttributes返回進程的主線程的句柄的安全屬性BOOLbInheritHandle一種標志,告訴系統(tǒng)允許新進程繼承創(chuàng)建者進程的句柄DWORDdwCreationFla

3、ge特殊的創(chuàng)建標志(如CREATE_SUSPENDED)的位標記LPVOIDlpEnvironment向新進程發(fā)送的一套環(huán)境變量;如為null值則發(fā)送調(diào)用者環(huán)境LPCTSTRlpCurrentDirectory新進程的啟動目錄STARTUPINFOlpStartupInfoSTARTUPINFO結(jié)構(gòu),包括新進程的輸入和輸出配置的詳情LPPROCESS_INFORMATIONlpProcessInformation調(diào)用的結(jié)果塊;發(fā)送新應(yīng)用程序的進程和主線程的句柄和ID可以指定第一個參數(shù),即應(yīng)用程序的名稱,其中包括相對于當前進程的當前目錄的全路徑或者利用搜索方法找到路徑;lpCom

4、mandLine參數(shù)允許調(diào)用者向新應(yīng)用程序發(fā)送數(shù)據(jù);接下來的三個參數(shù)與進程和它的主線程以及返回的指向該對象的句柄的安全性有關(guān)。然后是標志參數(shù),用以在dwCreationFlags參數(shù)中指明系統(tǒng)應(yīng)該給予新進程什么行為。經(jīng)常使用的標志是CREATE_SUSPNDED,告訴主線程立刻暫停。當準備好時,應(yīng)該使用ResumeThread()API來啟動進程。另一個常用的標志是CREATE_NEW_CONSOLE,告訴新進程啟動自己的控制臺窗口,而不是利用父窗口,這一參數(shù)還允許設(shè)置進程的優(yōu)先級,用以向系統(tǒng)指明,相對于系統(tǒng)中所有其他的活動進程來說,給此進程多少CPU時間。接著是CreateP

5、rocess()函數(shù)調(diào)用所需要的三個通常使用缺省值的參數(shù),第一個參數(shù)是lpEnvironment參數(shù),指明為新進程提供的環(huán)境;第二個參數(shù)是lpCurrentDirectory,可用于向主創(chuàng)進程發(fā)送與缺省目錄不同的新進程使用的特殊的當前目錄;第三個參數(shù)是STARTUPINFO數(shù)據(jù)結(jié)構(gòu)中所必需的,用于在必要時指明新應(yīng)用程序的主窗口的外觀。CreateProcess()的最后一個參數(shù)是用于新進程對象及其主線程的句柄和ID的返回值緩沖區(qū),以PROCESS_INFORMATION結(jié)構(gòu)中返回的句柄調(diào)用Close_Handle()API函數(shù)是重要的,因為如果不將這些句柄關(guān)閉的話,有可能危及主

6、創(chuàng)進程終止之前的任何未釋放的資源。2.正在運行的進程如果一個進程擁有至少一個執(zhí)行線程,就是正在系統(tǒng)中運行的進程。通常這種進程使用主線程來指示它的存在,當主線程結(jié)束時,調(diào)用Exitprocess()API函數(shù),通知系統(tǒng)終止它所擁有的所有正在運行、準備運行或正在掛起的其他線程。當進程正在運行時,可以查看它的許多特性,其中少數(shù)特性也允許加以修改。首先可查看的進程特性是系統(tǒng)進程標識符(PID),可利用GetCurrentProcessId()API函數(shù)來查看,與GetCurrentProcess()相似,其他可顯示當前進程信息的API函數(shù)還有GetStartInfo()和Getproc

7、essShutdownParameters(),可給出進程存活期內(nèi)的配置詳情。通常,一個進程需要它運行期環(huán)境的信息,例如API函數(shù)GetModuleFileName()和GetCommandLine(),可以給出CreateProcess()中的參數(shù)以啟動應(yīng)用程序。在創(chuàng)建應(yīng)用程序時可使用的另一個API函數(shù)是IsDebuggerPresent()??衫肁PI函數(shù)GetGuiResources()來查看進程的GUI資源,此函數(shù)既可返回指定進程中的打開的GUI對象的數(shù)目,也可返回指定進程中打開的

當前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。