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

正文內(nèi)容

進(jìn)程的同步與通信進(jìn)程死鎖-wenkub.com

2024-12-27 21:44 本頁面
   

【正文】 /*父進(jìn)程讀管道中字符 */ Printf(“%s”,s)。 write(fd[1], buf, 30)。 char buf[30],s[30]。 pipe(fd)。 Receive(A): A消息的用戶空間接受緩沖區(qū) 始地址。 特點 : ? 必須有一個通信雙方共享的一個邏輯實體 ? 邏輯實體是一個中介實體 66 虛擬的通信鏈: 在通信發(fā)送者和接收者之間存在一條邏輯通信鏈, 鏈的容量 是指該鏈暫存消息的能力。 向 1040號進(jìn)程發(fā)送 一個 SIGUSR1信號。 (messagepassing) 利用原語 Send()和 Receive()進(jìn)行數(shù)據(jù)交換 管 道 p1 p2 p3 p4 63 消息傳遞原語的一般形式 : ? 發(fā)送: Send(destination, message) ? 接收: Receive(source, message) 1. 消息傳遞方法 1)直接通信法 基本思想: 進(jìn)程在發(fā)送和接收消息時直接指明接收者或發(fā)送者進(jìn)程 ID。 … }while ( 1 )。 … 吃 。 任何哲學(xué)家拿筷子前先檢測 num, 算法如下: 60 semaphore num=4, chopstick[5]={1, 1, 1, 1, 1}; Philosopher i() { do { think。 放右邊筷子 V(Chopstick[(i+1)mod 5]; 思考 }while(1)。 57 實現(xiàn)方法: 為每個筷子設(shè)一把鎖(信號量,初值為 1)每個哲學(xué)家是一個進(jìn)程。 V(mutex)。 Reader的一般結(jié)構(gòu)為: P(mutex); readcount:=readcount+1。 3. 若某個 Writer正訪問數(shù)據(jù),則欲訪問的 Reader或 Writer都必須等待。 Reader/ Writer問題: 保證任何一個 Writer進(jìn)程與其他進(jìn)程互斥訪問共享數(shù)據(jù)。 } 補(bǔ)充作業(yè) 52 課堂作業(yè): 假設(shè)有三個并發(fā)進(jìn)程 P、 Q、 R。 enter into room V(seatempty)。 V(seatfull)。 Conmuser() { do { P(seatempty)。 互斥 50 補(bǔ)充:理發(fā)師睡覺問題 理發(fā)店由等待間( N個座位)和理發(fā)間(一個理發(fā)椅)構(gòu)成。 consumer: do{ P(full)。 mutex:=1。 semaphor full, empty, mutex。 add nextp to buffer。 Struct buffer*next。 ? full, 初值為 0,表示當(dāng)前緩沖池中滿緩沖區(qū)數(shù),用于同步。 說明: ? 將緩沖池看做是共享數(shù)據(jù),對緩沖區(qū)的操作必須是互斥操作。 } P4() { P(d)。} P3(){ P(b)。} P2(){ P(a)。例如:右圖的前趨關(guān)系可描述如下: S1 S3 S4 S2 a e c b d semaphore a=0,b=0,c=0,d=0,e=0。//測試是否停車 開車門; 乘客上下車; } 43 ? 首先要分析清楚進(jìn)程間的同步關(guān)系 , 即它們之間交換信息的位置以及個數(shù) , 每一個同步關(guān)系用一個信號量來表示 。 Driver() { P(close)。 S2。 } ? 解決辦法 40 ? 同步模型: 假設(shè)有兩個協(xié)作的并發(fā)進(jìn)程 P1, P2, S1是 P1中的一段代碼, S2是 P2中的一段代碼,只有 P1中的 S1執(zhí)行完后 P2中的 S2才能開始執(zhí)行 ? 實現(xiàn)方法: 利用信號量的同步原語 P可以實現(xiàn) P1向 P2發(fā)送消息,用 V來測試 P1的消息是否到達(dá)。 V(mutex)。 pi() { 接受旅客訂票要求; P(mutex)。Ri =Xi。 Ri =Xi。 ? 注意: 對同一信號量操作的 P與 V操作在進(jìn)程中必須成對出現(xiàn)。 34 信號量的物理意義 ? P(s)操作: ① 請求分配一個 S代表 的資源,執(zhí)行 ; ② 若 0, 表示系統(tǒng)已無該類資源,申請者阻塞。 2. P操作 P(S): =- 1。 基本思想是: ? 在 P操作循環(huán)等待的地方加入放棄處理機(jī),進(jìn)入等待隊列動作; ? 在 V操作時,從等待隊列中摘取進(jìn)程變?yōu)榫途w態(tài)。 } V(s){ disableIntrrupt()。 While(s≤0){ enableIntrrupt()。 ? 信號量 S為一整型變量: ? P(S): While S≤0 ; S = S1; ? V( S): S = S+ 1; P,V操作是兩條原語,即保證 P, V操作對變量 S的訪問是互斥操作。 do{ key = true。 //退出區(qū) non critical section。 兩條命令: enableInterrupt, disableInterrupt 缺點: 1)可能影響到 I/O行為 2)只能用于單處理機(jī)系統(tǒng) 26 “ Test_and_Set”指令 該指令功能描述為: boolean Test_and_Set( boolean target) { Boolean rv= target。 enableInterrupt()。 } Parend。 count:= M。如果不互斥使用會交叉輸出。 //進(jìn)入?yún)^(qū) critical code。 20 ? 臨界段 ? 定義: 指在進(jìn)程中訪問臨界資源的那段代碼。 N=N+2。 P1 M=account。 account=M。 一般包括:慢速設(shè)備,共享的變量、數(shù)據(jù)結(jié)構(gòu)、緩沖區(qū)、表格、隊列、棧、文件等。 (2)在控制返回調(diào)用者時,同時將所等到的子進(jìn)程 pid作為 wait()系統(tǒng)調(diào)用函數(shù)的返 ? waitpid( pid, ? ):等待 pid所指定的進(jìn)程結(jié)束。 14 ? exit( status):進(jìn)程結(jié)束。 13 與進(jìn)程相關(guān)的系統(tǒng)調(diào)用 ? UNIX操作系統(tǒng)利用進(jìn)程支持并發(fā)執(zhí)行; ? 它提供了如下系統(tǒng)調(diào)用: ? fork():創(chuàng)建一個新進(jìn)程。 缺點: 存在著描述能力不強(qiáng)的缺點,即存在著用 Parbegin/Parend語句無法描述的并發(fā)優(yōu)先關(guān)系。 read(F,r)。 reset(F)。再組織使用操作系統(tǒng)的并發(fā)機(jī)制。
點擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1