/*生产者*/
#include "head.h"
main(int argc,char * argv[])
{
struct queue *buf,*out;
int sem_id = semget(SEM_ALL_KEY,3, IPC_CREAT|0660);
int i,j;
buf = getQueue();//打开共享主存
out = buf;
for(i=0;i<6;i++)
{
p(sem_id, SEM_EMPTY); //P(EMPTY),EMPTY开始值为3,表明有三个空余,申请一个之后,有两个空余,当为零时,不再往里面写数据
p(sem_id, SEM_MUTEX); //P(MUTEX),MUTEX开始值为1,表明一次只能运行一个进程
buf->buf++; //产品数+1
(buf + buf->buf) ->buf = 1; //放入产品后缓冲区置1
//获取当前时间
struct timeval curtime;
gettimeofday(&curtime,NULL);
//输出信息
printf(" No.%s producer put product at %ld:%ld.\n"
,argv[0],curtime.tv_sec,curtime.tv_usec);
printf(" Now the buffer is as follows: ");
for(j=1;j<=3;j++)
printf("%4d",(out+j)->buf);
printf("\n");
v(sem_id, SEM_MUTEX); //V(MUTEX)
v(sem_id, SEM_FULL); //V(FULL),释放一个FULL,即往里面写了一个数据
//随机 sleep 一会
int ran=random()%5;
sleep(ran);
}
}
操作系统实验(生产者消费者问题)
4星 · 超过85%的资源 需积分: 50 172 浏览量
2012-03-23
15:39:04
上传
评论 2
收藏 13KB RAR 举报
java_student09
- 粉丝: 39
- 资源: 4
最新资源
- IPv4-HEADER-02测试数据
- tensorflow-2.6.2-cp38-cp38-manylinux2010-x86-64.whl
- tensorflow-2.6.2-cp37-cp37m-win-amd64.whl
- RV180-Firmware-1.0.5.4.img
- 粒子群算法.docx 粒子群算法(Particle Swarm Optimization,PSO)是一种优化算法,受到鸟群或鱼
- asp代码ASP基于WEB楼宇专业网站毕业设计(源代码+论文)
- 九宫重排.docx 验证重排后的九宫格是否满足所有条件,包括每行、每列和每个子区域的目标和值相等,以及是否包含1到9的所有数字
- asp代码ASP基于WEB聊天室的设计与实现(源代码+论文+任务书)
- 质数的判断条件.docx
- android-ocr-master,android-ocr-master
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
- 1
- 2
前往页