資源描述:
《操作系統(tǒng)實驗報告—windows線程同步機制》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、◎無科肢務(wù)2012-2013學(xué)年第一學(xué)期計篇機絲作系銃實瞼報告專業(yè):班級:學(xué)號:姓名:提交日期:Windows線程同步機制[開發(fā)語言及實現(xiàn)平臺或?qū)嶒灜h(huán)境1C++/C#MicrosoftVisualStudio6.0/MicrosoftVisualStudio.NET【實驗?zāi)康摹?77712345z/(z/(z/(z/(/(XT解Windows線程同步機制;了解互斥體,并通過查閱資料理解互斥體對象的使用方法;了解事件,并通過查閱資料理解事件對象的使用方法;了解關(guān)鍵區(qū),并通過查閱資料理解關(guān)鍵區(qū)對象的使用方法;了解信號量,并通過查閱資料理解信號量對象的使用方法;(6
2、)利用Windows線程同步機制,模擬生產(chǎn)者消費者問題?!緦嶒炓蟆?1)逐程序進行簡要分析、運行各程序并仔細閱讀注釋;(2)查閱MSDN或其他資料,掌握相關(guān)系統(tǒng)調(diào)用使用方法和參數(shù)含義;(3)完成實驗報告?!緦嶒灢襟E】⑴閱讀和理解2-1(mutex),cpp文件中的程序,運行2-1(mutex),cpp,認真觀察結(jié)果。然后將兩個子函數(shù)中注釋掉的Sleep語句讓其可用,再多次運行,認真觀察結(jié)果,不會出現(xiàn)銷售異常情況。比較修改程序前后運行結(jié)果發(fā)生的變化,并分析其原因。(2)2-2(event).cpp>2-3(critical_section).cpp的處理方式同(1)。⑶閱讀和
3、理解2-4(Producer_Consumer).cpp文件中的程序,運行2-4(Producer_Consumer).cpp,認真觀察結(jié)果,先生產(chǎn)后消費。然后將兩個子函數(shù)中注釋掉的祜訂e語句讓其可用,再多次運行,認真觀察結(jié)果,牛產(chǎn)者和消費者保持同步。比較修改程序前后運行結(jié)果發(fā)牛的變化,并分析其原因。(4)閱讀和理解2-4(ProducerConsumer)1.cpp文件中的程序,運行2-4(Producer_Consumer)1.cpp,認真觀察結(jié)果?!緦嶒灲Y(jié)果與分析】1.(1)多次運行2-1(mutex),cpp后,其中之一的執(zhí)行結(jié)果如下圖:wD:aaaaaaaaaaa
4、aaaaaDebugaaaaaaaaaaaaaaaa.exewnaintbreadisrunningthread2selltieke100thread2selltieke99thread2selltieke98thread2selltieke97thread2selltieke96thread2selltieke95thread2selltieke94thread2selltieke93threadlselltieke92thread2selltieke91threadlselltieke90thread2selltieke89threadlselltieke88thre
5、ad2selltieke87threadlselltieke86thread2selltieket:85threadlselltieket:84thread2selltieket:83threadlselltieket:82thread2selltieket:81threadlselltieket:80thread2selltieket:79threadlselltieket:78thread2selltieket:77(2)多次運行修改之后的2-1(mutex),cpp,其中之一的執(zhí)行結(jié)果如下圖:wD:aaaaaaaaaaaaaaaaDebugaaaaaaaaaaaa
6、aaaa.exerhainthreadisrunningthreadlsellticket:100thread2sellticket:99threadlsellticket:98thread2sellticket:97threadlsellticket:96thread2sellticket:95threadlsellticket:94thread2sellticket:93threadlsellticket:92thread2sellticket:91threadlsellticket:90thread2sellticket:89threadlsellticket:88th
7、read2sellticket:87threadlsellticket:86thread2sellticket:85threadlsellticket:84thread2sellticket:83threadlsellticket:82thread2sellticket:81threadlsellticket:80thread2sellticket:79threadlsellticket:78thread2sellticket:77分析:修改之前,在指定暫停的時間Slecp(lOOO)內(nèi),thrcacl