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

正文內(nèi)容

進程同步與互斥(存儲版)

2024-11-26 10:13上一頁面

下一頁面
  

【正文】 信號量 empty并初始化; 創(chuàng)建信號量 full并初始化; 創(chuàng)建信號量 mutex并初始化; 創(chuàng)建生產(chǎn)者子進程; 如果生產(chǎn)者子進程返回: for(i=0; i10, i++) { P(empty); P( mutex); 寫數(shù)據(jù)到共享存儲區(qū); 緩沖區(qū)計數(shù) set++; V( mutex); V(full); exit(0); } 如果父進程返回: 創(chuàng)建消費者 A子進程; 如果消費者 A進程返回: for(i=0; i10, i++) { P(full); P( mutex); 從共享存儲區(qū)中取數(shù)據(jù); 緩沖區(qū)計數(shù) (*get)++; V( mutex); V(empty); exit(0); } 如果父進程返回: 創(chuàng)建消費者 B子進程; 如果消費者 B進程返回: 2020/11/23 30 算法: for(i=0; i10, i++) { P(full); P( mutex); 從共享存儲區(qū)中取數(shù)據(jù); 緩沖區(qū)計數(shù) (*get)++; V( mutex); V(empty); exit(0); } 程序清單: 如果父進程返回: wait(0); wait(0); wait(0); 斷開 2個共享存儲區(qū); 撤消 2個共享存儲區(qū); 撤消 3個信號量; exit(0); } 2020/11/23 31 編譯連接并執(zhí)行后的輸出結(jié)果如下: 由運行結(jié)果可以看出 , 生產(chǎn)者進程分別往緩沖區(qū) 0~ 4中送了 10次產(chǎn)品 ,消費者進程 A和 B輪流從緩沖區(qū) 0~ 4中取走產(chǎn)品 , 并實現(xiàn)了 3個進程之間的同步和互斥 , 即實現(xiàn)了生產(chǎn)者進程送了產(chǎn)品后消費者進程才取走產(chǎn)品 , 并且一次只有一個進程進入緩沖區(qū) 。 //睡眠 1秒,等待父進程將 end取走 break。 } 2020/11/23 25 else { //子進程返回寫信息到共享內(nèi)存 while(1) { semop(emptyid,amp。 //對 emptyid執(zhí)行 V操作 if(strncmp(viraddr,end,3)==0) break。 /*創(chuàng)建并附接共享內(nèi)存 */ shmid=shmget(IPC_PRIVATE,BUFSIZ,0666|IPC_CREAT)。 =0。 union semun arg。 當信息為 “ end”時讀寫進程結(jié)束 。 sleep(1)。 } wait(0)。 semop(mutexid,amp。 =1。 2020/11/23 16 程序清單:文件名 include include include includesys/ includelinux/ int mutexid。V,1)。 =1。 如果有 n個信號量 , 則需要分別定義 n個不同的信號量標識符 。 IPC_RMID:刪除指定信號量集 。 ⑶ . sem_flg指明操作的執(zhí)行模式 , 它有兩個標志位: IPC_NOWAIT:指明以非阻塞方式操作信號量 。 /* operation flags */ }。 該參數(shù)最大值在 linux/: define SEMMSL 250 /* = 8 000 */ semflg—— 當 key值不為 IPC_PRIVATE: ① . 若只設(shè)置 semflag的 IPC_CREAT位 , 則創(chuàng)建一個信號量集 , 如果該信號量集已經(jīng)存在 , 則返回其標識符 ② . 若設(shè)置 semflag的 IPC_CREAT|IPC_EXCL位 , 則創(chuàng)建一個新的信號量集 , 如果該 key值的信號量集已經(jīng)存在則返回錯誤信息 ③ . 只設(shè)置 IPC_EXCL位而不設(shè)置 IPC_CREAT位沒有任何意義 。
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1