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

正文內(nèi)容

第3章進(jìn)程管理(編輯修改稿)

2024-10-22 19:18 本頁面
 

【文章內(nèi)容簡介】 —— 管程 進(jìn)程的通信方式之二 —— 消息緩沖 返回本章首頁 第 3章 進(jìn)程管理 臨界資源和臨界區(qū) 在計(jì)算機(jī)中有許多資源只允許一個(gè)進(jìn)程使用,如果有多個(gè)進(jìn)程同時(shí)去使用這類資源就會(huì)產(chǎn)生嚴(yán)重的錯(cuò)誤。 幾個(gè)進(jìn)程若共享同一臨界資源,它們必須以互斥的方式使用這個(gè)臨界資源,即當(dāng)一個(gè)進(jìn)程正在使用臨界資源且尚未使用完畢時(shí),則其他進(jìn)程必須推遲對該資源的進(jìn)一步操作,在當(dāng)前進(jìn)程的使用完成之前,不能從中插進(jìn)去使用這個(gè)臨界資源,否則將會(huì)造成信息混亂和操作出錯(cuò)。 系統(tǒng)中同時(shí)存在有許多進(jìn)程,它們共享各種資源,然而有些資源每次只能讓一個(gè)進(jìn)程所使用。 返回本節(jié)目錄 第 3章 進(jìn)程管理 進(jìn)程的通信方式之一 —— 同步與互斥 同步: 我們把進(jìn)程間的這種必須互相合作的協(xié)同工作關(guān)系 , 稱為進(jìn)程同步 。 互斥: 兩個(gè)并行的進(jìn)程 A、 B, 如果當(dāng) A進(jìn)行某個(gè)操作時(shí), B不能做這一操作,進(jìn)程間的這種限制條件稱為進(jìn)程互斥,這是引起資源不可共享的原因。 第 3章 進(jìn)程管理 lock和 unlock 大部分同步方案均采用某個(gè)物理實(shí)體 ( 如鎖 、 信號燈等 )實(shí)現(xiàn)通信 , 進(jìn)程通信原語中關(guān)鎖 ( lock) 和開鎖 ( unlock)是最簡單的原語 。 在這兩個(gè)原語中設(shè)置一個(gè)公共變量 x代表某個(gè)臨界資源的狀態(tài) 。 如: x=0, 表示資源可用 , x=1,表示資源正在使用 。 關(guān)鎖原語 1ock( x) : L: if x= 1 then goto L else x: =1; 開鎖原語 unlock( x) : x: =0; 第 3章 進(jìn)程管理 圖 開鎖和關(guān)鎖程序流程圖 返回本節(jié)目錄 第 3章 進(jìn)程管理 兩個(gè)經(jīng)典的同步 /互斥問題 1.生產(chǎn)者與消費(fèi)者問題 2.讀者與寫者問題 第 3章 進(jìn)程管理 1.生產(chǎn)者與消費(fèi)者問題 Dijkstra把廣義同步問題抽象成一種“生產(chǎn)者與消費(fèi)者問題”( Producerconsumerrelationship) 的抽象模型。事實(shí)上,計(jì)算機(jī)系統(tǒng)中的許多問題都可歸結(jié)為生產(chǎn)者與消費(fèi)者問題,生產(chǎn)者與消費(fèi)者可以通過一個(gè)環(huán)形緩沖池(見圖)聯(lián)系起來,環(huán)形緩沖池由幾個(gè)大小相等的緩沖塊組成,每個(gè)緩沖塊容納一個(gè)產(chǎn)品。每個(gè)生產(chǎn)者可不斷地每次往緩沖池中送一個(gè)生產(chǎn)產(chǎn)品,而每個(gè)消費(fèi)者則可不斷地每次從緩沖池中取出一個(gè)產(chǎn)品。 下一頁 第 3章 進(jìn)程管理 圖 環(huán)形緩沖池 下一頁 第 3章 進(jìn)程管理 下面給出基于環(huán)形緩沖區(qū)的生產(chǎn)者與消費(fèi)者關(guān)系的形式描述 , 設(shè): ( 1) 公用信號量 mutex: 初值為 1, 用于實(shí)現(xiàn)臨界區(qū)互斥 。 ( 2) 生產(chǎn)者私用信號量 empty: 初值為 n, 指示空緩沖塊數(shù)目 。 ( 3) 消費(fèi)者私用信號量 full: 初值為 0, 指示滿緩沖塊數(shù)目 。 ( 4)整型量 i和 j初值均為 0, i指示首空緩沖塊序號,j指示首滿緩沖塊序號。 ?模塊 設(shè)計(jì)如下: 下一頁 第 3章 進(jìn)程管理 Var mutex, empty, full: semaphore。 i,j:integer; buffer: array [0… n一 1] of item; Procedure producer。 生產(chǎn)者進(jìn)程 begin while true do begin produce a product。 P(empty)。 下一頁 第 3章 進(jìn)程管理 P(mutex)。 Buffer (i):= Product。 i:= (i+1) mod n; V(mutex)。 V(full) end end。 procedure consumer。 消費(fèi)者進(jìn)程 下一頁 第 3章 進(jìn)程管理 begin While true do begin P(full); P(mutex) goods:= buffer(j)。 j:= (j+1) mod n。 V(mutex)。 V(empty)。 Consume a product。 end 下一頁 第 3章 進(jìn)程管理 end。 begin seminitial 。 i:= j:= 0。 cobegin producer; consumer; coend end 下一頁 第 3章 進(jìn)程管理 2.讀者與寫者問題 設(shè)某航空公司有 2個(gè)售票處 , 它們通過遠(yuǎn)程終端訪問設(shè)在公司總部的航空訂票系統(tǒng) , 并要查詢或修改系統(tǒng)中記錄所有班機(jī)當(dāng)前訂票數(shù)的數(shù)據(jù)庫 B。設(shè) Bi為某班機(jī)的當(dāng)前訂票數(shù) , P1和 P2分別代表 2個(gè)售票處的售票進(jìn)程 , R1和 R2為進(jìn)程執(zhí)行時(shí)使用的工作寄存器 。 由于售票進(jìn)程并發(fā)執(zhí)行 , 且各自訪問數(shù)據(jù)庫 B的時(shí)間是隨機(jī)的 , 故有可能出現(xiàn)下面的訪問序列 ( 假定 Bi的當(dāng)前值為 x) : 下一頁 第 3章 進(jìn)程管理 P1:R1:=Bi。 R1:=R1+1 P2:R2=Bi。 R2:=R2+1。 P1:Bi:=R1。 P2:Bi:=R2 可見, Bi的新值是 X+1, 而不是 X+2。 這里的 P1和 P2均為寫者,顯然,對于寫者 Bi為臨界資源,因此寫者應(yīng)該互斥。 下一頁 第 3章 進(jìn)程管理 下面給出讀者進(jìn)程與寫
點(diǎn)擊復(fù)制文檔內(nèi)容
語文相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1