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

正文內(nèi)容

讀者寫者問題-操作系統(tǒng)實驗報告(參考版)

2025-04-07 00:32本頁面
  

【正文】 下次實驗我會提前做好充分的預(yù)習(xí),爭取做的更好。這次實驗讓我更加深刻的理解了進(jìn)程的信號量的概念和應(yīng)用,在不斷出現(xiàn)錯誤,發(fā)現(xiàn)錯誤,改正錯誤的過程中,對互斥信號量有了非常深刻的理解。 實驗過程中,一步一步由簡到繁,完善程序的同時,問題也出現(xiàn)了不少,通過畫簡單的流 程圖,通過單步跟蹤,通過分析理解,都得到了解決。 運行過程中的問題出現(xiàn)的問題比較多,但都不是特別大的問題,通過調(diào)試分析都得到了解決。也有一些原則性錯誤比如在喚醒函數(shù)中,讀或者寫進(jìn)程結(jié)束后,將信號量置 1,但是在隊列中選擇進(jìn)程進(jìn)行操作的時候,沒有把信號量置 0,導(dǎo)致了執(zhí)行喚醒函數(shù)后進(jìn)程不互斥的問題。 解決:剛開始是以為參數(shù)設(shè)置問題,后來仔細(xì)一想,發(fā)現(xiàn)是沒有在調(diào)用喚醒函數(shù)前沒有將讀進(jìn)程放入讀者等待隊列中,于是在調(diào)用喚醒函數(shù)前,添加將讀者進(jìn)程放入等待隊列的語句。 解決:也是通過單步跟蹤,發(fā)現(xiàn)是判空和輸出的順序問題,如果先輸出后判空的話,會多進(jìn)行一次循環(huán),導(dǎo)致輸出一個小 A,但是現(xiàn)在還是不太明白 為什么多輸出的是小 A。 進(jìn)行寫操作直到寫者隊列為空 解決:通過單步跟蹤,發(fā)現(xiàn)檢查語句并沒有起到作用,于是調(diào)整了一下結(jié)構(gòu),將檢查語句放到 SWITCH 里,既起到了檢查的作用,同時也減少了代碼量。 2. 剛開始還會出現(xiàn)一些括號不匹配的錯誤, 在后來的程序完善過程中,盡量給后括號做一個注釋進(jìn)行標(biāo)識。對緩沖區(qū)為空的情況, 如果緩沖區(qū)為空時進(jìn)行讀操作,則會設(shè)置一個信號量標(biāo)志緩沖區(qū)為空 SIGN = 0,不可以進(jìn)行讀操作,釋放出 CPU,調(diào)用喚醒函數(shù)喚醒寫進(jìn)程,此時會將此進(jìn)程放入讀者進(jìn)程等待隊列中等待寫者來寫數(shù)據(jù)再進(jìn)行讀操作,寫者寫完數(shù)據(jù),緩沖區(qū)不空時,將標(biāo)志置為緩沖區(qū)不空 SIGN = 1。 } } } 實驗流程圖: N Y 開始 讀者優(yōu)先 寫者優(yōu)先 讀操作 寫操作 是否有讀者在讀 進(jìn)行讀操作 Y CPU 是否空閑 緩沖區(qū)是否為空 有寫者 讀者入隊 N Y 入讀者等待隊列 調(diào)用讀者優(yōu)先喚醒 讀操作 N 是否有讀者在讀 有讀者 寫者入隊 Y N Cpu 是否空閑 進(jìn)行寫操作 有寫者,寫操作入隊 Y N 退出 結(jié)束 讀者優(yōu)先喚醒 寫者優(yōu)先喚醒 讀者優(yōu)先喚醒 當(dāng)前有無讀者在讀 有無讀者等待 N 有無寫者等待 N 讀者出隊進(jìn)行讀操作直到讀者隊空 Y 進(jìn)行寫操作 Y N 返回 Y 緩沖區(qū)是否為空 Y N 寫者優(yōu)先喚醒 當(dāng)前有無讀者在讀 有無寫者等待 N 有無讀者等待 N 寫者出隊進(jìn)行寫操作直到寫者隊空 Y 進(jìn)行讀操作直到讀者隊列為空 Y N 返回 Y N 寫者隊列是否為空 Y 有讀者說明若有等待必為寫者 核心部分設(shè)計思路: 分別用兩個 隊列來存放等待的讀者進(jìn)程和寫者進(jìn)程,一個進(jìn)程結(jié)束后就要將因他阻塞的進(jìn)程喚醒,如果是讀者優(yōu)先,則先檢查讀者進(jìn)程,如果發(fā)現(xiàn)讀者進(jìn)程不為空,就進(jìn)行讀操作,直到讀者進(jìn)程為空,才進(jìn)行寫操作;同理,如果是寫者優(yōu)先,則先檢查寫進(jìn)程,如果發(fā)現(xiàn)寫者進(jìn)程不為空,就進(jìn)行寫操作,直到寫者進(jìn)程為空,才進(jìn)行讀操作。 scanf(%d,amp。amp。 if(choice == 2) menu2()。choice)。 printf( 20212104 實驗一 \n \n \n)。 } }while(true)。: exit(0)。 case 39。: WFwakeup()。 case 39。:
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1