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

正文內容

進程的同步與通信進程死鎖(參考版)

2024-12-31 21:44本頁面
  

【正文】 } } 謝謝觀看 /歡迎下載 BY FAITH I MEAN A VISION OF GOOD ONE CHERISHES AND THE ENTHUSIASM THAT PUSHES ONE TO SEEK ITS FULFILLMENT REGARDLESS OF OBSTACLES. BY FAITH I BY FAITH 。 read(fd[0], s, 30)。 /*把 buf中字符寫入管道 */ exit(0)。 /*創(chuàng)建子進程失敗時.循環(huán) */ if (x= =0) /*子進程執(zhí)行 */ { sprintf(buf, ”This is an example\n”)。 pipe(fd)。 include main() { int x,fd[2]。 這里, fd[1]為寫入端, fd[0]為讀出端。 72 fd[1] write (fd[1], buf, size) pipe (fd) 寫 端 fd[0] read (fd[0], buf, size) 讀 端 管道通信 利用系統調用 pipe建立同步通信管道的格式為: int fd[2]。 實現 : 系統有一用于進程通信的緩沖池,池中緩沖區(qū)表示如圖: Sptr Nptr Text … Sptr指向發(fā)送者的 PCB指針(即指向該消息的發(fā)送者) Nptr指向消息隊列中下一緩沖區(qū)的指針; Text消息正文(含接受者標識符) 68 Send() id text:Hello! Receive() id text:Hello! sptr Nptr Text … Nptr Mutex Sm 第一個消息緩沖區(qū) 發(fā)送區(qū) 接受區(qū) PCB(Q) 進程 P 進程 Q 進程間消息傳遞方式 消息隊列的表示: 69 Send(A): { New(p);從緩沖池得一個 buffer ... 置 sender’s pid; 將 A中消息送 buffer p; 獲得 Receiver’s pid; P(mutex); 將 buffer p掛入相應的消息隊列; V(Sm); V(mutex); }; 70 Receive(A): { P(Sm); P(mutex); 從本進程的消息隊列取一個 buffer f; V(mutex); 從 buffer f中取得消息正文 A,并得到 sender’s pid作為 Receive( )的返回值; ... dispose(f); 釋放 buffer f到緩沖池 … }; 71 Unix進程通信機構 pipe UNIX SystemⅤ 提供兩種數據通信方式: 1) 無名管道:用于密切相關的父子進程或兄弟進程之間的通信 ,提供一條以比特流方式傳送消息的通信管道 。 2. 消息緩沖 發(fā)送方 緩沖區(qū) 接受方 緩沖區(qū) 發(fā)送方 接受方 消息復制 67 消息傳遞通信示例 直接通信消息系統的兩個基本操作為: send(A): A含接收者 pid和消息正文的用戶 空間發(fā)送緩沖區(qū)始地址。 ? 在接收方準備好接受緩沖區(qū)之前,發(fā)送方就可以發(fā)送,這時消息可以存放于系統的消息緩沖區(qū)中。 ┆ ┆ 65 2)間接通信法 基本思想: 系統為每個參與者設立一個邏輯實體,如信箱,消息發(fā)送和接收都指向該信箱。 Process B ┆ Signal(SIGUSR1,func)。 Process A ┆ kill(1040, SIGUSR1)。 缺點: 必須指定接收進程 ID( UNIX的信號機制類似這種形式)。 具有傳送數據量大的優(yōu)點,但通信速度較慢。 } 61 消息傳遞原理 三種基本進程通信方法: ( Sharedmemory) 通信方式 p1 p2 p3 p4 共享存儲區(qū) ? 需要解決兩個問題: 1) 怎樣提供共享內存 2) 共享內存的讀寫互斥 62 2 管道通信 管道通信是一種重要的通信方式 。 V (chopstick[ (i+1)%5] )。 … V(num)。 P(chopstick[ (i+1)% 5] )。 P(num)。 在實現時只需增加一個限定就餐人數的信號量 num, 其初值設為 4。 (這可能導致死鎖 ) 58 用以下幾種方法來解決上面的死鎖問題: (1) 至多只允許有四位哲學家同時去拿左邊的筷子; (2) 僅當哲學家的左 、 右兩支筷子均可用時 ,才允許他拿起筷子進餐; (3) 規(guī)定奇數號哲學家先拿他左邊的筷子 ,然后再去拿右邊的筷子;而偶數號哲學家則相反 。 取左邊筷子 P(chopstick[(i+1)mod 5]); 取右邊筷子 吃 放左邊筷子 V(chopstick[i])。共享數據結構為: semaphore Chopstick[5]。 56 3. 哲學家就餐問題 問題描述: 吃飯程序是:先取左邊筷子,后取右邊筷子,再吃飯,再放筷子。 Writer的一般結構為: P(wrt)。 if readcount=0 V(wrt)。 if readcount=1 P(wrt)。 55 mutex, wrt為信號量,初值為 1; readcount用于記錄當前有多少個 Reader正在訪問數據,初始值為 0。 4. 當最后一個結束訪問數據的 Reader發(fā)現有 Writer正在等待時,則將其中一個喚醒。 2. 如果已存在一個 Reader正在訪問數據,其他欲訪問Reader可馬上訪問;而欲訪問的 Writer無條件等待。 第一類 Reader/ Writer問題: Reader和 Writer爭奪訪問共享數據 A時,Reader有較高優(yōu)先權。 P Q R 53 若存在一共享數據 A,那些對它進行讀訪問者叫 Reader,對它進行寫訪問者叫做 Writer。其中 P負責從輸入設備上讀入信息并傳給 Q; Q將信息加工后傳給 R; R則負責將信息打印輸出。 }while(1)。 cutting。 P(chair)。 }while(1)。 V(mutex)。 P(mutex)。
點擊復制文檔內容
黨政相關相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1