xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

資源簡介

壓縮包中包括linux和windows的程序源代碼及實驗報告 消費(fèi)者和生產(chǎn)者問題如下: ? 一個大小為3的緩沖區(qū),初始為空 ? 2個生產(chǎn)者 – 隨機(jī)等待一段時間,往緩沖區(qū)添加數(shù)據(jù), – 若緩沖區(qū)已滿,等待消費(fèi)者取走數(shù)據(jù)后再添加 – 重復(fù)6次 ? 3個消費(fèi)者 – 隨機(jī)等待一段時間,從緩沖區(qū)讀取數(shù)據(jù) – 若緩沖區(qū)為空,等待生產(chǎn)者添加數(shù)據(jù)后再讀取 – 重復(fù)4次 說明: ? 顯示每次添加和讀取數(shù)據(jù)的時間及緩沖區(qū)的狀態(tài) ? 生產(chǎn)者和消費(fèi)者用進(jìn)程模擬,緩沖區(qū)用共享內(nèi)存來實現(xiàn)

資源截圖

代碼片段和文件信息

#include?
#include?
#include?
#include?
#include?

#define?SEM_EMPTY?0
#define?SEM_FULL?1
#define?SEM_MUTEX?2
#define?KEY?3
#define?SEM_KEY?4

void?P(int?semid?int?sem_num);
void?V(int?semid?int?sem_num);

int?main(int?argcchar?*?argv[])
{
????int?i;
????int?shmidsemid;
????int?*pBuf?=?NULL*output;

????//打開共享內(nèi)存
????shmid?=?shmget(KEY?sizeof(int)*4?0);
????pBuf?=?(int*)shmat(shmid?0?0);
????output?=?pBuf;

????if(pBuf==NULL)
????????printf(“共享內(nèi)存附加失敗!\n“);

????//創(chuàng)建信號量
????semid?=?semget(SEM_KEY3?IPC_CREAT|0660);

????for(i=0;?i<4;?i++)
????{
????????P(semidSEM_FULL);?????//相當(dāng)于P(SEM_FULL)申請讀取緩沖區(qū)的數(shù)據(jù)
????????P(semidSEM_MUTEX);????//相當(dāng)于P(SEM_MUTEX)申請訪問緩沖區(qū)

????????//在緩沖區(qū)中讀取數(shù)據(jù)將1置為0
????????output?=?pBuf;
while((*output)==0)
{
output++;
}
(*output)=0;

//獲取當(dāng)前系統(tǒng)時間
????????struct?timeval?curtime;
gettimeofday(&curtimeNULL);

????????printf(“消費(fèi)者%s在緩沖區(qū)中讀取數(shù)據(jù),讀取時間為:%ld:%ld\n“
argv[0]curtime.tv_seccurtime.tv_usec);
printf(“此時,緩沖區(qū)的狀態(tài)為:\n“);
printf(“[?%d?][?%d?][?%d?]\n“*(pBuf)*(pBuf+1)*(pBuf+2));


V(semidSEM_MUTEX);?????//相當(dāng)于V(SEM_MUTEX)釋放信號量SEM_MUTEX
V(semidSEM_EMPTY);?????//相當(dāng)于V(SEM_EMPTY)釋放信號量SEM_EMPTY

//隨機(jī)等待一段時間
int?time?=?random()%5;
sleep(time);
????}
????return?0;
}

//P操作
void?P(int?semid?int?sem_num)
{
????struct?sembuf?sops;
????sops.sem_num=sem_num;
????sops.sem_op=-1;
sops.sem_flg=0;
????semop(semid?&sops?1);
}

//V操作
void?V(int?semid?int?sem_num)
{
????struct?sembuf?sops;
????sops.sem_num=sem_num;
????sops.sem_op=1;
sops.sem_flg=0;
????semop(semid?&sops?1);
}

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????1810??2011-04-07?19:21??消費(fèi)者生產(chǎn)者\(yùn)Linux\consumer.c

?????文件???????1192??2011-04-07?19:35??消費(fèi)者生產(chǎn)者\(yùn)Linux\main.c

?????文件???????1778??2011-04-07?19:19??消費(fèi)者生產(chǎn)者\(yùn)Linux\producer.c

?????文件???????7764??2011-04-11?08:39??消費(fèi)者生產(chǎn)者\(yùn)Windows\ConsumerAndProducer.cpp

?????文件??????32768??2011-04-07?19:56??消費(fèi)者生產(chǎn)者\(yùn)Windows\ConsumerAndProducer.exe

?????文件?????799232??2011-04-14?19:06??消費(fèi)者生產(chǎn)者\(yùn)實驗報告.doc

?????目錄??????????0??2011-04-14?19:06??消費(fèi)者生產(chǎn)者\(yùn)Linux

?????目錄??????????0??2011-04-14?19:06??消費(fèi)者生產(chǎn)者\(yùn)Windows

?????目錄??????????0??2011-04-14?19:07??消費(fèi)者生產(chǎn)者

-----------?---------??----------?-----??----

???????????????844544????????????????????9


評論

共有 條評論