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

正文內(nèi)容

操作系統(tǒng)實驗進程的同步heu(參考版)

2025-07-10 14:06本頁面
  

【正文】 。使用實驗文件夾中 文件中的 Consumer 函數(shù)替換原有的 Consumer 函數(shù)9)一次性消費一個產(chǎn)品10)一次性消費兩個產(chǎn)品四、實驗體會這次實驗里我增強了對于進程同步算法的理解,對書上的消費者生產(chǎn)者模型有了更深的認識,并且留下了新的印象。如果有錯誤,可以調(diào)試內(nèi)核代碼來查找錯誤,然后在內(nèi)核項目中修改,并重復步驟 1。 替換為 while(WAIT_TIMEOUT == WaitForSingleObject(FullSemaphoreHandle, 300)){ printf(Consumer wait for full semaphore timeout\n)。 替換為 while(WAIT_TIMEOUT == WaitForSingleObject(EmptySemaphoreHandle, 300)){ printf(Producer wait for empty semaphore timeout\n)。如果有錯誤,可以調(diào)試內(nèi)核代碼來查找錯誤,然后在內(nèi)核項目中修改,并重復步驟 1。 (4)修改 EOS 的信號量算法1)修改 PsWaitForSemaphore 函數(shù)2)修改 PsReleaseSemaphore 函數(shù)3)使用修改完畢的 EOS Kernel 項目生成完全版本的 SDK 文件夾,并覆蓋之前的生產(chǎn)者-消費者應用程序項目的 SDK 文件夾。激活 Producer 函數(shù)的堆棧幀,查看Producer 函數(shù)中變量 i 的值為 14,表明之前被阻塞的、正在嘗試生產(chǎn) 14 號產(chǎn)品的生產(chǎn)者線程已經(jīng)從 PspWait 函數(shù)返回并繼續(xù)執(zhí)行了。 查看 PsWaitForSemaphore 函數(shù)中 Empty 信號量計數(shù)(SemaphoreCount)的值為 0,和生產(chǎn)者線程被喚醒時的值是一致的。6)驗證生產(chǎn)者線程被喚醒后,是從之前被阻塞時的狀態(tài)繼續(xù)執(zhí)行的: 在 文件中 PsWaitForSemaphore 函數(shù)的最后一行(第 83 行)代碼處添加一個斷點。 處中斷。 按 F10 單步調(diào)試 PsReleaseSemaphore 函數(shù),直到在代碼行(第 132 行) PspWakeThread(amp。 按照 中的方法使用 F10 和 F11 調(diào)試進入 PsReleaseSemaphore 函數(shù)。 按 F5 繼續(xù)調(diào)試,到斷點處中斷。 在 文件的 Consumer 函數(shù)中,釋放 Empty 信號量的代碼行(第 180 行) ReleaseSemaphore(EmptySemaphoreHandle, 1, NULL)。生產(chǎn)了從 0 到 13 的 14 個產(chǎn)品,但是只消費了從 0 到 3 的 4 個產(chǎn)品,所以緩沖池中的 10 個緩沖區(qū)就都被占用了,這與之前調(diào)試的結(jié)果是一致的。 在“ 調(diào)用堆 ?!?窗口中 雙擊 PsWaitForSemaphore 函數(shù)的 堆棧 幀,查 看 Empty 信號 量計 數(shù)(SemaphoreCount)的值為1,所以會調(diào)用 PspWait 函數(shù)將生產(chǎn)者線程放入 Empty 信號量的等待隊列中進行等待(讓出 CPU)。 中斷后,查看“調(diào)用堆?!贝翱?,有 Producer 函數(shù)對應的堆棧幀,說明此次調(diào)用是從生產(chǎn)者線程函數(shù)進入的。 按 F5 繼續(xù)調(diào)試,并立即激活虛擬機窗口查看輸出。SemaphoreWaitListHead, INFINITE)。 在調(diào)試異常對話框中選擇“是”,調(diào)試會中斷。 按 F5 重新啟動調(diào)試。 4)等待信號量(阻塞)結(jié)束之前的調(diào)試。 按 F10 單步調(diào)試,直到完成 PsReleaseSemaphore 函數(shù)中的所有操作。 繼續(xù)按 F11 調(diào)試進入 PsReleaseSemaphoreObject 函數(shù)。 按 F5 繼續(xù)調(diào)試,到斷點處中斷。 在 文件的 Producer 函數(shù)中,釋放 Full 信號量的代碼行(第 152 行) ReleaseSemaphore(FullSemaphoreHandle, 1, NULL)。可以看到此次執(zhí)行并沒有進行等待,只是將 Empty 信號量的計數(shù)減少了 1(由 10 變?yōu)榱?9)就返回了。 按 F5 繼續(xù)調(diào)試,到斷點處中斷。 WaitForSingleObject 函數(shù)最終會調(diào)用內(nèi)核中的 PsWaitForSemaphore 函數(shù)完成等待操作。 添加一個斷點。 2)等待信號量(不阻塞)刪除所有的斷點(防止有些斷點影響后面的調(diào)試)。 按 F10 單步調(diào)試 PsInitializeSemaphore 函數(shù)執(zhí)行的過程,查看信號量結(jié)構(gòu)體被初始化的過程。 按 F5 繼續(xù)調(diào)試,到斷點處中斷。在此函數(shù)中,會在 EOS內(nèi)核管理的內(nèi)存中創(chuàng)建一個信號量對象(分配一塊內(nèi)存),而初始化信號量對象中各個成員的操作是在 PsInitializeSemaphore 函數(shù)中完成的。 可以看 到此 API 函 數(shù)只是 調(diào)用了 EOS 內(nèi)核中 的PsCreateSemaphoreObject 函數(shù)來創(chuàng)建信號量對象。按 F5 繼續(xù)調(diào)試,到此斷點處中斷。在 main 函數(shù)中創(chuàng)建 Empty 信號量的代碼行(第 77 行) EmptySemaphoreHandle = CreateSe
點擊復制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1