操作系统实验报告
题目:生产流水线
一、实验目的
本题目是生产者-消费者问题的扩展。掌握 Linux 提供的内核信号量、用户态信号量的原理和方法,以及系统调用和 API 函数,采用这两类进程/线程同步互斥方式机制,针对生产者-消费者经典同步互斥问题的扩展问题,设计并编程实现解决方案,观察验证方案正确性,加深对复杂进程线程同步互斥问题的理解。
二、实验内容
三、实验设计原理
四、实验步骤
1.在平台上创建一个.c文件并编译
2.利用 Pthread提供的 pthread_mutex_init()、pthread_mutex_lock()、pthread_mutex_unlock()等线程同步互斥 API,以线程方式编程实现该设计方案,观察分析程序运行结果。
五、实验结果及其分析
代码如下:
#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<pthread.h>
#include<semaphore.h>
#define STATION_SIZE 12 //缓冲池大小
int mytime;
pthread_mutex_t mutexA,mutexB,mutexNumemepy;
int countA = 0,countB = 0;
int Numempty = STATION_SIZE;
void *worderA()
{
int temp = 0;
while(1)
{
mytime = rand() % 2;
temp = 0;
sleep(mytime