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

正文內(nèi)容

進(jìn)程的同步與通信進(jìn)程死鎖(編輯修改稿)

2025-01-16 21:44 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 alue。 一個(gè)數(shù)型變量 struct process *L。一個(gè) PCB隊(duì)列 } Semaphore Semaphore S。 2. P操作 P(S): =- 1。 if 0 then 保存現(xiàn)場(chǎng), 將本進(jìn)程掛入 ,等待重新調(diào)度。 3. V操作 V(S): :=value+1 if ≤0 then 從 取一進(jìn)程,掛入就緒隊(duì)列。 4. P,V操作的優(yōu)點(diǎn): 同步能力強(qiáng) 5. P,V操作的缺點(diǎn): 程序結(jié)構(gòu)差,易產(chǎn)生死鎖。 34 信號(hào)量的物理意義 ? P(s)操作: ① 請(qǐng)求分配一個(gè) S代表 的資源,執(zhí)行 ; ② 若 0, 表示系統(tǒng)已無(wú)該類資源,申請(qǐng)者阻塞。此時(shí), ||表示該信號(hào)量上阻塞的進(jìn)程數(shù); ? V(s)操作: ① 進(jìn)程釋放一個(gè) S代表 的資源,執(zhí)行 +1; ② 若 =0, 表示尚有進(jìn)程因等待 S代表的資源而處于阻塞狀態(tài),所以應(yīng)喚醒其中之一。 35 3. 利用信號(hào)量實(shí)現(xiàn)進(jìn)程互斥 ? 使用方法: 1)為每一個(gè)共享的臨界資源設(shè)置一個(gè)互斥信號(hào)量,其初值為 1。 2)各進(jìn)程在進(jìn)入臨界段前先對(duì)該信號(hào)量進(jìn)行 P操作,退出臨界段后執(zhí)行 V操作,從而保證各進(jìn)程互斥的進(jìn)入相關(guān)臨界段。 ? 注意: 對(duì)同一信號(hào)量操作的 P與 V操作在進(jìn)程中必須成對(duì)出現(xiàn)。 36 進(jìn)程 Pi : 信號(hào)量 mutex=1 P(mutex) V(mutex) 臨界段 非臨界段 do{ }While(1) 37 ? 例子: 有一飛機(jī)機(jī)票售票系統(tǒng),有 m個(gè)售票處,各售票處通過計(jì)算機(jī)與該系統(tǒng)的票務(wù)中心連網(wǎng),中心數(shù)據(jù)區(qū)中用 Ri代表某天某次航班的余票數(shù)。進(jìn)程 pi為第 i個(gè)售票處為旅客服務(wù)的進(jìn)程,進(jìn)程功能如下: pi() { 接受旅客訂票要求; Xi=Ri 。 //將票務(wù)中心該次航班的余票 //取出送該進(jìn)程工作單元 Xi if (Xi=1) { Xi= Xi1。 Ri =Xi。 輸出一張機(jī)票; } else 輸出機(jī)票已售完; } 38 ? 存在的問題: 1)存在幾個(gè)旅客幾乎同時(shí)在不同的售票處要求訂購(gòu)?fù)焱淮魏桨嗟目赡堋? 2)幾個(gè)進(jìn)程都要訪問票務(wù)中心的共享變量 Ri,可能出現(xiàn)這樣的執(zhí)行順序: ① 第 i個(gè)售票處的售票進(jìn)程 pi剛剛?cè)〕?Ri, 執(zhí)行 Xi=Ri; ② 第 j個(gè)售票處的售票進(jìn)程 pj馬上執(zhí)行 Xj= Xj1。Ri =Xj; ③ pi再執(zhí)行 Xi= Xi1。Ri =Xi。 產(chǎn)生的錯(cuò)誤: pi, pj都售出了一張機(jī)票,但票務(wù)中心記錄機(jī)票余額的變量 Ri卻只減了 1。 39 semaphore mutex。 mutex=1。 pi() { 接受旅客訂票要求; P(mutex)。 Xi=Ri 。 //將票務(wù)中心該次航班的余票 Ri取出送該進(jìn) //程工作單元 Xi if (Xi=1) { Xi= Xi1。 Ri =Xi。 V(mutex)。 輸出一張機(jī)票 。 } else { V(mutex)。 輸出機(jī)票已售完 。 } ? 解決辦法 40 ? 同步模型: 假設(shè)有兩個(gè)協(xié)作的并發(fā)進(jìn)程 P1, P2, S1是 P1中的一段代碼, S2是 P2中的一段代碼,只有 P1中的 S1執(zhí)行完后 P2中的 S2才能開始執(zhí)行 ? 實(shí)現(xiàn)方法: 利用信號(hào)量的同步原語(yǔ) P可以實(shí)現(xiàn) P1向 P2發(fā)送消息,用 V來(lái)測(cè)試 P1的消息是否到達(dá)。設(shè) synch是實(shí)現(xiàn)同步的信號(hào)量,初值為 0,則兩個(gè)進(jìn)程的同步可以描述為: 4. 利用信號(hào)量實(shí)現(xiàn)進(jìn)程同步 Parbegin P2: { P1: { …… S1。 V(synch)。 …… } …… P(synch)。 S2。 …… } Parend。 41 啟動(dòng)汽車 正常開車 到站停車 開車門 乘客上下車 關(guān)車門 司機(jī)和售票員同步示意圖 售車票 司機(jī) 售票員 stop close 利用信號(hào)量實(shí)現(xiàn)進(jìn)程同步的例子 ? 現(xiàn)實(shí)例子: 42 設(shè)置信號(hào)量 close表示車門是否關(guān)好,初值為 0,表示門未關(guān)好,不允許司機(jī)啟動(dòng)汽車;設(shè)置信號(hào)量 stop表示汽車是否停穩(wěn),初值為 0,表示未停穩(wěn),售票員不能開車門。 Semaphore stop=0,close=0。 Driver() { P(close)。//車門是否關(guān)好 啟動(dòng)汽車 正常開車 到站停車 V(stop)。 //發(fā)送開門信息 } ? 實(shí)現(xiàn)方法: busman() { 關(guān)車門; V(close)。//發(fā)送已關(guān)門信息 售車票; P(stop)。//測(cè)試是否停車 開車門; 乘客上下車; } 43 ? 首先要分析清楚進(jìn)程間的同步關(guān)系 , 即它們之間交換信息的位置以及個(gè)數(shù) , 每一個(gè)同步關(guān)系用一個(gè)信號(hào)量來(lái)表示 。 ? 其次是要注意信號(hào)量的初值以及意義 。 1) P操作用來(lái)測(cè)試等待的信息是否到達(dá); 2) V操作來(lái)向其它需要同步的進(jìn)程發(fā)送信息 。 解決進(jìn)程同步問題時(shí)關(guān)鍵: 44 一般地,定義 n個(gè)信號(hào)量來(lái)描述有 n條 邊的前趨圖,初值都設(shè)為 0。例如:右圖的前趨關(guān)系可描述如下: S1 S3 S4 S2 a e c b d semaphore a=0,b=0,c=0,d=0,e=0。 P1(){ S1。 V(a)。 V(b)。} P2(){ P(a)。 S2。 V(c)。 V(d)。} P3(){ P(b)。 P(c)。 S3。 V(e)。 } P4() { P(d)。 P(e)。 S4。} 45 三個(gè)經(jīng)典的進(jìn)程同步問題: 有限緩沖區(qū)問題(生產(chǎn)者 消費(fèi)者問題); (The ProducerConsumer Problem) 讀者 寫者問題; (The Read/Write Problem) 哲學(xué)家就餐問題; (The Dining Philosophers Problem) 46 有限緩沖區(qū)的生產(chǎn)者 /消費(fèi)者問題(生產(chǎn)者和消費(fèi)者共享一個(gè)產(chǎn)品緩沖池)。 說(shuō)明: ? 將緩沖池看做是共享數(shù)據(jù),對(duì)緩沖區(qū)的操作必須是互斥操作。 ? 如果 n個(gè)緩沖區(qū)全滿,生產(chǎn)者進(jìn)程必須等待。 ? 如果緩沖區(qū)全空,消費(fèi)者進(jìn)程必須等待。 共享 n個(gè)緩沖區(qū) P1 P2 … P m 生產(chǎn)者 消費(fèi)者 緩沖池 C1 C2 …Cn 47 解: 設(shè)置以下信號(hào)量 ? mutex, 初值為 1,控制互斥訪問緩沖池。
點(diǎn)擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1