最近在學習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提出,用以演示他提出的訊號量機制。在同乙個程序位址空間內執行的兩個執行緒。生產者執行緒生產物品,然後將物品放置在乙個空緩衝區中供消費者執行緒消費。消費者執...
訊號量(生產者和消費者模型)
訊號量和管程都是作業系統用於同步提供的兩種方法,我們將結合生產者與消費者模型對此進行學習。為了提高系統的併發性,我們引入了多程序,多執行緒,但是這樣子帶來了資源競爭,也就是多個程式同時訪問乙個共享資源而引發的一系列問題,因此我們需要協調多執行緒對與共享資源的訪問,在任意時刻保證只能有乙個執行緒執行臨...