試驗五進程的創(chuàng)建與控制_第1頁
試驗五進程的創(chuàng)建與控制_第2頁
試驗五進程的創(chuàng)建與控制_第3頁
試驗五進程的創(chuàng)建與控制_第4頁
試驗五進程的創(chuàng)建與控制_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、2015-2016(2)操作系統(tǒng)實驗 5 學號: 姓名: 實驗五 進程的創(chuàng)建與控制一、實驗目的進程是操作系統(tǒng)中最重要的概念之一,任何程序的執(zhí)行都要借助于進程來啟動、運行和控制。通過該實驗,一方面讓學生理解程序和進程之間的一對多聯(lián)系,體會程序的靜態(tài)性和進程的動態(tài)性,另一方面也感受我們所使用的操作系統(tǒng)對進程的支持情況。二、實驗預習.什么是進程? 一個進程在其生存期中至少要經歷哪幾種狀態(tài)? 一個程序是否只能被一個進程啟動?進程是進程實體的運行過程,是系統(tǒng)進行資源分配和調度的一個獨立單位。一個進程在其 生存期中至少要經歷就緒、執(zhí)行、阻塞狀態(tài)三種狀態(tài),一個程序不僅僅只能被一個進程啟動。.操作系統(tǒng)是根據(jù)什

2、么信息來感知進程的存在的?操作系統(tǒng)根據(jù)進程控制塊(PCB來感知進程的存在。三、實驗內容和要求.在實驗室已經安裝的 Visual C+ 6.0 環(huán)境下創(chuàng)建一個進程,來運行一個Windows系統(tǒng)自帶的記事本程序(notepad.exe ),設計出來的界面大體如下圖:要求通過點擊界面上的按鈕,分別啟動、阻塞、喚醒、終止記事本、關閉記事本進程空間。.自己建立一個可執(zhí)行程序,用幾個不同的進程來運行它??蓞⒖既缦虏襟E:(1)自己用VB建立一個應用程序 hello.exe,保存起來,為下一步做準備。(2)在VC環(huán)境下設計界面大體如下:兩個進程(P1、P2)運行同一個程序(hello.exe )啟動進程1 (

3、運行hello.exe )掛起進程1喚醒進程1終止進程1啟動進程2 (運行hello.exe )掛起進程2喚醒進程2終止進程2【實驗步驟】.在Visual C+ 6.0環(huán)境下創(chuàng)建一個進程,設計出來的界面大體如下圖所示,分別有啟動、 阻塞、喚醒、終止記事本、關閉記事本等進程的按鈕,來運行一個Windows系統(tǒng)自帶的記事本程序(notepad.exe )。2016-4-252015-2016(2)操作系統(tǒng)實驗 5 學號: 姓名: 區(qū) VCCCC確定 I取消 I進程創(chuàng)建與控制啟動記事本掛起記事本I 激活記事本I 終止記事本I進程退出每個按鈕對應的代碼如下:PROCESS_INFORMATION pi

4、;HCURSOR CVccccDlg:OnQueryDragIcon() return (HCURSOR) m_hIcon;/啟動記事本 void CVccccDlg:OnButton1() STARTUPINFO si;memset(&si,0,sizeof(si); si.cb=sizeof(si);CreateProcess(NULL, notepad.exe, NULL, NULL, FALSE, NORMAL_PRIORITY_CLASS| CREATE_NEW_CONSOLE, NULL, NULL, &si, &pi);/掛起記事本void CVccccDlg:OnButton2

5、() SuspendThread(pi.hThread);2016-4-252015-2016(2)操作系統(tǒng)實驗 5 學號: 姓名: )/激活記事本void CVccccDlg:OnButton3() (ResumeThread(pi.hThread); )/終止記事本void CVccccDlg:OnButton4() (TerminateProcess(pi.hProcess,0); )/進程退出void CVccccDlg:OnButton5() (ExitProcess(0); ).(1)在VB環(huán)境下建立一個可執(zhí)行程序hello.exe并保存運行的結果如圖1所示,然后在VC環(huán)境下設計用

6、兩個進程(P1、P2)運行同一個程序(hello.exe ),界面設計如圖2所 示。其中包括啟動進程 1 (運行hello.exe )、掛起進程1、喚醒進程1、終止進程1、啟動 進程2 (運行hello.exe )、掛起進程2、喚醒進程2、終止進程2。圖1 VB環(huán)境下的可執(zhí)行程序界面2016-4-252015-2016(2)操作系統(tǒng)實驗 5 學號: 姓名: 5Q VCCC確定取消茂逾程1 |掛起進程1 |嗔醒進程1 |終止進程1退出 |啟動進程2 I掛起避程之喚醒進程一 |終止進程-圖2 VC環(huán)境下的進程設計界面 (2)對于圖2-2所示的界面所對應的代碼如下:啟動進程1PROCESS_INFO

7、RMATION pi;void CVcccDlg:OnButton1() STARTUPINFO si;memset(&si,0,sizeof(si);si.cb=sizeof(si);CreateProcess(NULL,hello.exe,NULL,NULL,FALSE,NORMAL_PRIORITY_CLASS| CREATE_NEW_CONSOLE, NULL,NULL,&si, &pi);/掛起進程1void CVcccDlg:OnButton2()SuspendThread(pi.hThread);/喚醒進程12016-4-252015-2016(2)操作系統(tǒng)實驗 5 學號: 姓名

8、: void CVcccDlg二OnButton3()(ResumeThread(pi.hThread);/終止進程1void CVcccDlg二OnButton4() (TerminateProcess(pi.hProcess,0);/退出void CVcccDlg二OnButton9()(ExitProcess(0);/啟動進程2PROCESS_INFORMATION pi2;void CVcccDlg二OnButton5() (STARTUPINFO si2;memset(&si2,0,sizeof(si2);si2.cb=sizeof(si2);CreateProcess(NULL,h

9、ello.exe,NULL,NULL,FALSE,NORMAL_PRIORITY_CLASS| CREATE_NEW_CONSOLE, NULL, NULL, &si2, &pi2);/掛起進程2void CVcccDlg二OnButton6() (SuspendThread(pi2.hThread);/喚醒進程2void CVcccDlg二OnButton7() (ResumeThread(pi2.hThread);2016-4-252015-2016(2)操作系統(tǒng)實驗 5 學號: 姓名: /終止進程2void CVcccDlg二OnButton8() (TerminateProcess(pi2.hProcess,0);(3)編譯以上代碼后的運行結果如下圖3所示,當按鈕啟動進程1時會啟動進程hello.exe,此時繼續(xù)啟動進程 2,也會啟動進程hello.exe并能夠運行;若點擊任何一個進程掛起,則該 進程將會不能夠再運行,窗口處于灰色,表示不能夠執(zhí)行,知道單擊喚醒進程按鈕才能夠繼續(xù)執(zhí)行進行。圖3運行界面 四、實驗小結在本次實驗中,我學習和理解了進程和程序的關系,明白任何程序的執(zhí)行都是要依賴于進程來進行啟

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論