freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

操作系統(tǒng)實驗報告(已修改)

2025-08-17 08:26 本頁面
 

【正文】 實驗一(生產(chǎn)者—消費者)一. 實驗題目 生產(chǎn)者與消費者實驗二. 實驗?zāi)康募由钸M程的概念的理解,明確進程與程序的區(qū)別,深入認識程序并發(fā)執(zhí)行的實質(zhì),理解進程競爭資源的現(xiàn)象,互斥與同步的基本概念,掌握相關(guān)的API的使用,了解多線程的并發(fā)執(zhí)行機制,實現(xiàn)線程的同步與互斥的基本方法。三. 實驗內(nèi)容分析已編制的一個“生產(chǎn)者—消費者”實例,并將缺失的代碼補充完整,然后調(diào)試這段程序,得出最終的結(jié)果,并分析此結(jié)果,得出相應(yīng)的結(jié)論,嘗試改變一些參數(shù),分析這一改變對結(jié)果的影響。四. 設(shè)計思路和算法1. 利用windows提供的API函數(shù)CreateSemaphore()創(chuàng)建信號量對象;Create Thread()創(chuàng)建線程;WaitForSingleObject()執(zhí)行P操作;Release Semaphore()執(zhí)行V操作;WaitForMultipleObjects()主進程等待線程的結(jié)束等函數(shù)進行設(shè)計。2. 在Windows中,常見的同步對象有:信號量(Semaphore)、互斥量(Mutex) 。使用這些對象都分為三個步驟,一是創(chuàng)建或者初始化;接著請求該同步對象,隨即進入臨界區(qū),這一步對應(yīng)于互斥量的上鎖;最后釋放該同步對象,這對應(yīng)于互斥量的解鎖。這些同步對象在主進程中創(chuàng)建,在其子線程中都可五.主要數(shù)據(jù)結(jié)構(gòu)每個進程有一個進程控制塊( PCB)表示。進程控制塊可以包含如下信息:進程類型標號、進程系統(tǒng)號、進程狀態(tài)(本程序未用)、進程產(chǎn)品(字符)、進程鏈指針等等。 系統(tǒng)開辟了一個緩沖區(qū),大小由buffersize指定。程序中有三個鏈隊列,一個鏈表。一個就緒隊列(ready),兩個等待隊列:生產(chǎn)者等待隊列(producer);消費者隊列(consumer)。一個鏈表(over),用于收集已經(jīng)運行結(jié)束的進程本程序通過函數(shù)模擬信號量的原子操作。六.程序運行結(jié)果運行程序后的結(jié)果:生產(chǎn)者1準備生產(chǎn)生產(chǎn)者1開始往緩沖區(qū)中寫數(shù)據(jù)生產(chǎn)者1開始退出緩沖區(qū)...生產(chǎn)者2準備生產(chǎn)生產(chǎn)者2開始往緩沖區(qū)中寫數(shù)據(jù)生產(chǎn)者2開始退出緩沖區(qū)...消費者1準備消費消費者1開始消費緩沖區(qū)中數(shù)據(jù)消費者1開始退出緩沖區(qū)...生產(chǎn)者3準備生產(chǎn)生產(chǎn)者3開始往緩沖區(qū)中寫數(shù)據(jù)生產(chǎn)者3開始退出緩沖區(qū)...消費者2準備消費消費者2開始消費緩沖區(qū)中數(shù)據(jù)消費者2開始退出緩沖區(qū)...生產(chǎn)者4準備生產(chǎn)生產(chǎn)者4開始往緩沖區(qū)中寫數(shù)據(jù)生產(chǎn)者4開始退出緩沖區(qū)...消費者3準備消費消費者3開始消費緩沖區(qū)中數(shù)據(jù)消費者3開始退出緩沖區(qū)...生產(chǎn)者5準備生產(chǎn)生產(chǎn)者5開始往緩沖區(qū)中寫數(shù)據(jù)生產(chǎn)者5開始退出緩沖區(qū)...消費者4準備消費消費者4開始消費緩沖區(qū)中數(shù)據(jù)消費者4開始退出緩沖區(qū)...生產(chǎn)者6準備生產(chǎn)生產(chǎn)者6開始往緩沖區(qū)中寫數(shù)據(jù)生產(chǎn)者6開始退出緩沖區(qū)...消費者5準備消費消費者5開始消費緩沖區(qū)中數(shù)據(jù)消費者5開始退出緩沖區(qū)...生產(chǎn)者7準備生產(chǎn)生產(chǎn)者7開始往緩沖區(qū)中寫數(shù)據(jù)生產(chǎn)者7開始退出緩沖區(qū)...消費者6準備消費消費者6開始消費緩沖區(qū)中數(shù)據(jù)消費者6開始退出緩沖區(qū)...生產(chǎn)者8準備生產(chǎn)生產(chǎn)者8開始往緩沖區(qū)中寫數(shù)據(jù)生產(chǎn)者8開始退出緩沖區(qū)...消費者7準備消費消費者7開始消費緩沖區(qū)中數(shù)據(jù)消費者7開始退出緩沖區(qū)...生產(chǎn)者9準備生產(chǎn)生產(chǎn)者9開始往緩沖區(qū)中寫數(shù)據(jù)生產(chǎn)者9開始退出緩沖區(qū)...消費者8準備消費消費者8開始消費緩沖區(qū)中數(shù)據(jù)消費者8開始退出緩沖區(qū)...生產(chǎn)者10準備生產(chǎn)生產(chǎn)者10開始往緩沖區(qū)中寫數(shù)據(jù)生產(chǎn)者10開始退出緩沖區(qū)...消費者9準備消費消費者9開始消費緩沖區(qū)中數(shù)據(jù)消費者9開始退出緩沖區(qū)...消費者10準備消費消費者10開始消費緩沖區(qū)中數(shù)據(jù)消費者10開始退出緩沖區(qū)...七.源程序includeincludeincludeincludestringincludedefine MAX_BUFFER_NUM 10define INTE_PER_SEC 1000define MAX_THREAD_NUM 64strict ThreadInfo{ into serial。 char entity。 double delay。 into thread_request[MAX_THREAD_NUM]。 into n_request。 }。CRITICAL_SECTION PC_Critical[MAX_BUFFER_NUM]。 into Buffer_Critical[MAX_BUFFER_NUM]。 HANDLE h_Thread[MAX_THREAD_NUM]。 ThreadInfo Thread_Info[MAX_THREAD_NUM]。 HANDLE empty_semaphore。 HANDLE h_mutex。 DWORD n_Thread = 0。 DWORD n_Buffer_or_Critical。 HANDLE h_Semaphore[MAX_THREAD_NUM]。void Produce(void *p)。void Consume(void *p)。 bool IfInOtherRequest(into)。into FindProducePositon()。into FindBufferPosition(into)。into main(void){ DWORD wait_for_all。 ifstream inFile。 for(into i=0。i MAX_BUFFER_NUM。i++) Buffer_Critical[i] = 1。 for(into j=0。jMAX_THREAD_NUM。j++){ for(into k=0。kMAX_THREAD_NUM。k++) Thread_Info[j].thread_request[k] = 1。 Thread_Info[j].n_request = 0。 } for(i =0。i MAX_BUFFER_NUM。i++) InitializeCriticalSection(amp。PC_Critical[i])。 ()。 inFile n_Buffer_or_Critical。 ()。 printf(輸入文件是:\n)。 printf(%d \n,(into) n_Buffer_or_Critical)。 while(inFile){ inFile Thread_Info[n_Thread].serial。 inFile Thread_Info[n_Thread].entity。 inFile Thread_Info[n_Thread].delay。 char c。 (c)。 while(c!=3
點擊復制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號-1