資源描述:
《操作系統(tǒng)實驗指導(dǎo)書(新)》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、操作系統(tǒng)教程實驗報告班級:網(wǎng)絡(luò)工程111學(xué)號:119074290姓名:賀士帥指導(dǎo)老師:阮越2013年11月28日目錄實驗一WINDOWS進(jìn)程初識31、實驗?zāi)康?2、實驗內(nèi)容和步驟33、實驗結(jié)論44、程序清單4實驗二進(jìn)程管理7背景知識71、實驗?zāi)康?02、實驗內(nèi)容和步驟103、實驗結(jié)論124、程序清單12實驗三進(jìn)程同步的經(jīng)典算法17背景知識171、實驗?zāi)康?82、實驗內(nèi)容和步驟183、實驗結(jié)論194、程序清單20實驗四存儲管理24背景知識241、實驗?zāi)康?82、實驗內(nèi)容和步驟283、實驗結(jié)論344、程序清單34實驗五文件和設(shè)備管理39背景知識391、實驗?zāi)康?02、實驗內(nèi)容與
2、步驟413、實驗結(jié)論44實驗一WINDOWS進(jìn)程初識1、實驗?zāi)康模?)學(xué)會使用VC編寫基本的Win32ConsolApplication(控制臺應(yīng)用程序)。(2)掌握WINDOWSAPI的使用方法。(3)編寫測試程序,理解用戶態(tài)運行和核心態(tài)運行。2、實驗內(nèi)容和步驟(1)編寫基本的Win32ConsolApplication步驟1:登錄進(jìn)入Windows,啟動VC++6.0。步驟2:在“FILE”菜單中單擊“NEW”子菜單,在“projects”選項卡中選擇“Win32ConsolApplication”,然后在“Projectname”處輸入工程名,在“Location”處
3、輸入工程目錄。創(chuàng)建一個新的控制臺應(yīng)用程序工程。步驟3:在“FILE”菜單中單擊“NEW”子菜單,在“Files”選項卡中選擇“C++SourceFile”,然后在“File”處輸入C/C++源程序的文件名。步驟4:將清單1-1所示的程序清單復(fù)制到新創(chuàng)建的C/C++源程序中。編譯成可執(zhí)行文件。步驟5:在“開始”菜單中單擊“程序”-“附件”-“命令提示符”命令,進(jìn)入Windows“命令提示符”窗口,然后進(jìn)入工程目錄中的debug子目錄,執(zhí)行編譯好的可執(zhí)行程序:E:課程os課os實驗程序os11debug>hello.exe運行結(jié)果(如果運行不成功,則可能的原因是什么
4、?):(2)計算進(jìn)程在核心態(tài)運行和用戶態(tài)運行的時間步驟1:按照(1)中的步驟創(chuàng)建一個新的“Win32ConsolApplication”工程,然后將清單1-2中的程序拷貝過來,編譯成可執(zhí)行文件。步驟2:在創(chuàng)建一個新的“Win32ConsolApplication”工程,程序的參考程序如清單1-3所示,編譯成可執(zhí)行文件并執(zhí)行。步驟3:在“命令提示符”窗口中運行步驟1中生成的可執(zhí)行文件,測試步驟2中可執(zhí)行文件在核心態(tài)運行和用戶態(tài)運行的時間。E:課程os課os實驗程序os12debug>timeTEST.exe步驟4:運行結(jié)果(如果運行不成功,則可能的原因是什么?):
5、步驟5:分別屏蔽While循環(huán)中的兩個for循環(huán),或調(diào)整兩個for循環(huán)的次數(shù),寫出運行結(jié)果。屏蔽i循環(huán):屏蔽j循環(huán):調(diào)整循環(huán)變量i的循環(huán)次數(shù):調(diào)整循環(huán)變量j的循環(huán)次數(shù):1、實驗結(jié)論對Win32ConsolApplication有進(jìn)一步的認(rèn)識,WIN32API也就是Windows32平臺的應(yīng)用程序編程接口。用戶態(tài)運行和核心態(tài)運行,核心態(tài)就是一個是直接的代碼運行,即win32consolApplication下代碼運行;而用戶態(tài)是在DOS下運行的,對編譯好的程序進(jìn)行的運行,核心態(tài)速度較快,沒有太多的約束,而用戶態(tài)的運行需要時間較長,由于有相應(yīng)的約束。實驗二進(jìn)程管理背景知識Win
6、dows所創(chuàng)建的每個進(jìn)程都從調(diào)用CreateProcess()API函數(shù)開始,該函數(shù)的任務(wù)是在對象管理器子系統(tǒng)內(nèi)初始化進(jìn)程對象。每一進(jìn)程都以調(diào)用ExitProcess()或TerminateProcess()API函數(shù)終止。通常應(yīng)用程序的框架負(fù)責(zé)調(diào)用ExitProcess()函數(shù)。對于C++運行庫來說,這一調(diào)用發(fā)生在應(yīng)用程序的main()函數(shù)返回之后。1.創(chuàng)建進(jìn)程CreateProcess()調(diào)用的核心參數(shù)是可執(zhí)行文件運行時的文件名及其命令行。表3-4詳細(xì)地列出了每個參數(shù)的類型和名稱。?表3-4CreateProcess()函數(shù)的參數(shù)參數(shù)名稱使用目的LPCTSTRlpApp
7、livationName全部或部分地指明包括可執(zhí)行代碼的EXE文件的文件名LPCTSTRlpCommandLine向可執(zhí)行文件發(fā)送的參數(shù)LPSECURIITY_ATTRIBUTESlpProcessAttributes返回進(jìn)程句柄的安全屬性。主要指明這一句柄是否應(yīng)該由其他子進(jìn)程所繼承LPSECURIITY_ATTRIBUTESlpThreadAttributes返回進(jìn)程的主線程的句柄的安全屬性BOOLbInheritHandle一種標(biāo)志,告訴系統(tǒng)允許新進(jìn)程繼承創(chuàng)建者進(jìn)程的句柄DWORDdwCreationFlage