程序間通訊 訊號量集 生產者 消費者模型

2021-05-22 14:49:42 字數 1209 閱讀 8219

最近在學習c的時候,在對訊號進行量程式設計的時候,無意中寫的....全部都是自己乙個一敲的,其中參考了別的程式,自己也有所修改,執行平台式在linux2.6核心中執行成功的......

#include

#include

#include

#include

#include

#include

#include

#define max 5

#define key1 1492

#define key2 1493

#define key3 1494

#define iflags (ipc_creat|ipc_excl)

#define n 1024

#define semkey1 (key_t)0x2000

#define semkey2 (key_t)0x2001

#define semkey3 (key_t)0x2002

int products;

int space;

int mutex;

int nshm;

union semun

;int get_sem_val(int sid,int semnum)

void init_sem(int sid,int semnum,int initval)

}int sem_init(key_t key ,int initval)

arg.val = initval;

if(-1 == semctl(semid,0,setval,arg))

return semid;

}void p(int semid)

}void v(int semid)

}int productitem()

void consum(int item)

void fun()

if(-1 == semctl(space,0,ipc_rmid,0))

if(-1 == semctl(mutex,0,ipc_rmid,0))

if(-1 == shmctl(nshm,ipc_rmid,0))

exit(0);

}int main()

if((pid = fork()) < 0)

else if(pid == 0)

return 0;

}else}}

return 0;

}

Linux訊號量機制(生產者消費者)

該程式為linux訊號量機制實現程式,主要模擬了一般的生產者 消費者問題。生產者 消費者問題是乙個經典的程序同步問題,該問題最早由dijkstra提出,用以演示他提出的訊號量機制。在同乙個程序位址空間內執行的兩個執行緒。生產者執行緒生產物品,然後將物品放置在乙個空緩衝區中供消費者執行緒消費。消費者執...

Linux訊號量機制(生產者消費者)

該程式為linux訊號量機制實現程式,主要模擬了一般的生產者 消費者問題。生產者 消費者問題是乙個經典的程序同步問題,該問題最早由dijkstra提出,用以演示他提出的訊號量機制。在同乙個程序位址空間內執行的兩個執行緒。生產者執行緒生產物品,然後將物品放置在乙個空緩衝區中供消費者執行緒消費。消費者執...

訊號量(生產者和消費者模型)

訊號量和管程都是作業系統用於同步提供的兩種方法,我們將結合生產者與消費者模型對此進行學習。為了提高系統的併發性,我們引入了多程序,多執行緒,但是這樣子帶來了資源競爭,也就是多個程式同時訪問乙個共享資源而引發的一系列問題,因此我們需要協調多執行緒對與共享資源的訪問,在任意時刻保證只能有乙個執行緒執行臨...