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

正文內(nèi)容

讀者寫(xiě)者問(wèn)題-操作系統(tǒng)實(shí)驗(yàn)報(bào)告(存儲(chǔ)版)

  

【正文】 讀操作,則會(huì)設(shè)置一個(gè)信號(hào)量標(biāo)志緩沖區(qū)為空 SIGN = 0,不可以進(jìn)行讀操作,釋放出 CPU,調(diào)用喚醒函數(shù)喚醒寫(xiě)進(jìn)程,此時(shí)會(huì)將此進(jìn)程放入讀者進(jìn)程等待隊(duì)列中等待寫(xiě)者來(lái)寫(xiě)數(shù)據(jù)再進(jìn)行讀操作,寫(xiě)者寫(xiě)完數(shù)據(jù),緩沖區(qū)不空時(shí),將標(biāo)志置為緩沖區(qū)不空 SIGN = 1。 解決:剛開(kāi)始是以為參數(shù)設(shè)置問(wèn)題,后來(lái)仔細(xì)一想,發(fā)現(xiàn)是沒(méi)有在調(diào)用喚醒函數(shù)前沒(méi)有將讀進(jìn)程放入讀者等待隊(duì)列中,于是在調(diào)用喚醒函數(shù)前,添加將讀者進(jìn)程放入等待隊(duì)列的語(yǔ)句。這次實(shí)驗(yàn)讓我更加深刻的理解了進(jìn)程的信號(hào)量的概念和應(yīng)用,在不斷出現(xiàn)錯(cuò)誤,發(fā)現(xiàn)錯(cuò)誤,改正錯(cuò)誤的過(guò)程中,對(duì)互斥信號(hào)量有了非常深刻的理解。 實(shí)驗(yàn)過(guò)程中,一步一步由簡(jiǎn)到繁,完善程序的同時(shí),問(wèn)題也出現(xiàn)了不少,通過(guò)畫(huà)簡(jiǎn)單的流 程圖,通過(guò)單步跟蹤,通過(guò)分析理解,都得到了解決。 解決:也是通過(guò)單步跟蹤,發(fā)現(xiàn)是判空和輸出的順序問(wèn)題,如果先輸出后判空的話,會(huì)多進(jìn)行一次循環(huán),導(dǎo)致輸出一個(gè)小 A,但是現(xiàn)在還是不太明白 為什么多輸出的是小 A。 } } } 實(shí)驗(yàn)流程圖: N Y 開(kāi)始 讀者優(yōu)先 寫(xiě)者優(yōu)先 讀操作 寫(xiě)操作 是否有讀者在讀 進(jìn)行讀操作 Y CPU 是否空閑 緩沖區(qū)是否為空 有寫(xiě)者 讀者入隊(duì) N Y 入讀者等待隊(duì)列 調(diào)用讀者優(yōu)先喚醒 讀操作 N 是否有讀者在讀 有讀者 寫(xiě)者入隊(duì) Y N Cpu 是否空閑 進(jìn)行寫(xiě)操作 有寫(xiě)者,寫(xiě)操作入隊(duì) Y N 退出 結(jié)束 讀者優(yōu)先喚醒 寫(xiě)者優(yōu)先喚醒 讀者優(yōu)先喚醒 當(dāng)前有無(wú)讀者在讀 有無(wú)讀者等待 N 有無(wú)寫(xiě)者等待 N 讀者出隊(duì)進(jìn)行讀操作直到讀者隊(duì)空 Y 進(jìn)行寫(xiě)操作 Y N 返回 Y 緩沖區(qū)是否為空 Y N 寫(xiě)者優(yōu)先喚醒 當(dāng)前有無(wú)讀者在讀 有無(wú)寫(xiě)者等待 N 有無(wú)讀者等待 N 寫(xiě)者出隊(duì)進(jìn)行寫(xiě)操作直到寫(xiě)者隊(duì)空 Y 進(jìn)行讀操作直到讀者隊(duì)列為空 Y N 返回 Y N 寫(xiě)者隊(duì)列是否為空 Y 有讀者說(shuō)明若有等待必為寫(xiě)者 核心部分設(shè)計(jì)思路: 分別用兩個(gè) 隊(duì)列來(lái)存放等待的讀者進(jìn)程和寫(xiě)者進(jìn)程,一個(gè)進(jìn)程結(jié)束后就要將因他阻塞的進(jìn)程喚醒,如果是讀者優(yōu)先,則先檢查讀者進(jìn)程,如果發(fā)現(xiàn)讀者進(jìn)程不為空,就進(jìn)行讀操作,直到讀者進(jìn)程為空,才進(jìn)行寫(xiě)操作;同理,如果是寫(xiě)者優(yōu)先,則先檢查寫(xiě)進(jìn)程,如果發(fā)現(xiàn)寫(xiě)者進(jìn)程不為空,就進(jìn)行寫(xiě)操作,直到寫(xiě)者進(jìn)程為空,才進(jìn)行讀操作。choice)。 case 39。 case 39。 printf(*******************************************\n)。439。239。 printf( )。 [i]=0。 }//if else{//rcount != 0 讀者正在讀, stop 讀 此時(shí)若有等待必為寫(xiě)者 rcount=0。\039。 break。//temp 中已經(jīng)有內(nèi)容 要置 1 for(i=0。 int j = 0。i=。 break。 。j 300。 printf(寫(xiě)者已經(jīng)寫(xiě)完 \n)。 scanf(%s,temp)。//將寫(xiě)者進(jìn)程加入等待隊(duì)列 wcount++。i++){ if(temp[i] == 39。){ printf(\n)。 } else{ [++]=read_id。 if(rcount == 0){//當(dāng)前沒(méi)有讀進(jìn)程在讀 可能有寫(xiě)進(jìn)程在寫(xiě) 可能
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1