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

正文內(nèi)容

kiuaaa第3章--進(jìn)程同步與通信-文庫吧資料

2025-07-30 11:41本頁面
  

【正文】 V(Wmutex)。 用信號量 解決 讀者 寫者 問題 void writer() /*寫者進(jìn)程 */ { while (true) { P(Wmutex)。 }} Semaphore Wmutex,Rmutex=1,1。 if (Rcount == 0) V(Wmutex)。 /* 執(zhí)行讀操作 */ P(Rmutex)。 V(Rmutex)。 if (Rcount == 0) P(Wmutex)。 } semaphore Wmutex=1。 寫 。 ‘無人讀了’ V(Wmutex)。 讀者進(jìn)程: while(true) { ‘有人要讀’ P(Wmutex)。} } 讀者 寫者 問題 ● 一個數(shù)據(jù)對象若被多個并發(fā)進(jìn)程所共享,且其中一些進(jìn)程只要求讀該數(shù)據(jù)對象的內(nèi)容,而另一些進(jìn)程則要求寫操作,對此,我們把只想讀的進(jìn)程稱為“讀者”,而把要求寫的進(jìn)程稱為“寫者”。 V(mutex)。 buffer[i] = data_p。 P(empty)。 ITEM data_p, data_c。 int i,j。 semaphore empty = n。 consume the item in data_c。 V(mutex)。 data_c = buffer[j]。 用信號量 解決“ 生產(chǎn)者 消費(fèi)者 ”問題 void consumer()//消費(fèi)者進(jìn)程 {while (true) { P(full)。 ● 緩沖池是由若干個大小相等的緩沖區(qū)組成的,每個緩沖區(qū)可以容納一個產(chǎn)品。 s3} ● 生產(chǎn)者 ——消費(fèi)者問題 ● 讀者 ——寫者問題 ● 哲學(xué)家進(jìn)餐問題 ● 打磕睡的理發(fā)師問題 ● 生產(chǎn)者 消費(fèi)者 問題 ji滿空● 指有兩組進(jìn)程共享一個環(huán)形的緩沖池。 V(b)} {P(a)。 {s1。 }。 臨界區(qū) V(mutex)。 }。 V(mutex)。 P1: while (1){ P(mutex)。 ● 0時, ||表示等待隊(duì)列的進(jìn)程數(shù)。 ● wait(s)表示要申請一個資源。 if ( = 0) wackup()。 if ( 0) block()。 struct PCB *queue。 ——先修改、后檢查、后修改算法 用軟件方法解決互斥問題 信號量和 PV操作 ● 1965年,荷蘭學(xué)者 Dijkstra提出了信號燈機(jī)制,卓有成效地解決了進(jìn)程同步問題。 flag[1] =false 。 (turn==0) //什么也不做 。 while (flag[0]) amp。 //進(jìn)程 1 flag[1]=true。 剩余區(qū) 。 臨界區(qū) 。amp。 turn=1。 剩余區(qū) 。 臨界區(qū) 。 //進(jìn)程 1 flag[1]=true。 ● 缺點(diǎn):保證了不同時進(jìn)入臨界區(qū),但又可能都進(jìn)不去。 剩余區(qū) 。 臨界區(qū) 。 用軟件方法解決互斥問題 ——雙標(biāo)志、先檢查算法 //進(jìn)程 0 flag[0]=true。解決了 “ 空閑讓進(jìn) ” 問題。若 flag[i]=true,表示進(jìn)程進(jìn)入臨界區(qū)執(zhí)行 。 剩余區(qū) 。 臨界區(qū) 。 //進(jìn)程 1 while ( flag[0]) //什么都不做 。 flag[0] =false。 flag[0]=true。 ● 缺點(diǎn):強(qiáng)制性輪流進(jìn)入臨界區(qū),不能保證“ 空閑讓進(jìn) ” 。 ● 設(shè)置公共整型變量turn,用于指示進(jìn)入臨界區(qū)的進(jìn)程編號i(i=0,1)。 turn = 0。 //進(jìn)程 1 while (turn!=1) do //什么都不做‘ 。 turn = 1。 TS( Test and Set)指令 互斥實(shí)現(xiàn)的軟件方法 //進(jìn)程 0 while (turn!=0) //什么都不做 。 lock = false。 //TS指令的使用 while (TS(lock)) /*什么也不做 */。 利用 TS指令實(shí)現(xiàn)互斥。 ● 當(dāng) lock=true時,表示資源正在被使用。 return temp。 temp = lock。 boolean lock。 ● 讓權(quán)等待 當(dāng)進(jìn)程不能進(jìn)入臨界區(qū)時,應(yīng)立即釋放處理機(jī),以免進(jìn)程進(jìn)入 “ 忙等 ” 。 ● 忙則等待 當(dāng)已有進(jìn)程進(jìn)入臨界區(qū)時,臨界資源正在被訪問,其他想進(jìn)入臨界區(qū)的進(jìn)程必須等待。 } 用 Bernstein條件考察
點(diǎn)擊復(fù)制文檔內(nèi)容
化學(xué)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1