diff --git a/Makefile b/Makefile index 3647fa0..916e159 100644 --- a/Makefile +++ b/Makefile @@ -8,7 +8,8 @@ compile: gcc $(INC) -c -o build/consumer.o src/consumer.c exec: - ./driver.out + gcc -o bin/driver.out build/*.o + ./bin/driver.out clean: - rm driver.out consumer.out producer.out \ No newline at end of file + rm driver.out consumer.out producer.out diff --git a/bin/driver.out b/bin/driver.out index 9c6c0fd..2829648 100755 Binary files a/bin/driver.out and b/bin/driver.out differ diff --git a/build/consumer.o b/build/consumer.o index f28fa71..b5cbf35 100644 Binary files a/build/consumer.o and b/build/consumer.o differ diff --git a/build/driver.o b/build/driver.o index dca3480..cafaaa3 100644 Binary files a/build/driver.o and b/build/driver.o differ diff --git a/build/producer.o b/build/producer.o index 606092d..2bc4067 100644 Binary files a/build/producer.o and b/build/producer.o differ diff --git a/include/consumer.h b/include/consumer.h index 6aceb84..523e68e 100644 --- a/include/consumer.h +++ b/include/consumer.h @@ -2,7 +2,7 @@ #define CONSUMER_H void Consumer(void); -void consume_item(int item); +void consume_item(long int item); long int remove_item(void); #endif \ No newline at end of file diff --git a/include/producer.h b/include/producer.h index f0b441a..c97a24d 100644 --- a/include/producer.h +++ b/include/producer.h @@ -3,6 +3,6 @@ void Producer(void); long int produce_item(void); -void insert_item(int item); +void insert_item(long int item); #endif \ No newline at end of file diff --git a/include/shared.h b/include/shared.h new file mode 100644 index 0000000..3b1a7d3 --- /dev/null +++ b/include/shared.h @@ -0,0 +1,13 @@ +#ifndef SHARED_H +#define SHARED_H +#include + +typedef struct sharedMem +{ + int buffer[10]; + sem_t semConsumer; + sem_t semProducer; +} sharedMem; + + +#endif \ No newline at end of file diff --git a/src/consumer.c b/src/consumer.c index a66fbc2..88ae03c 100644 --- a/src/consumer.c +++ b/src/consumer.c @@ -1,20 +1,22 @@ #include "consumer.h" +#include "shared.h" void Consumer(void) { int item; while (1) { - down(&full); - down(&mutex); + // down(&full); + // down(&mutex); item = remove_item(); - up(&mutex); - up(&empty); + // up(&mutex); + // up(&empty); consume_item(item); + break; } } -void consume_item(item) +void consume_item(long int item) { ; } diff --git a/src/driver.c b/src/driver.c index 5469c56..0d189c6 100644 --- a/src/driver.c +++ b/src/driver.c @@ -1,15 +1,15 @@ #include -#include #include - -semaphore mutex = 1; -semaphore empty; -semaphore full = 0; +#include "consumer.h" +#include "producer.h" +#include "shared.h" int GetSplitAmount(char* argv); int main(int argc, char* argv[]) { + sharedMem testMemory; + int splitLimit = 1; if (argc == 2) splitLimit = GetSplitAmount(argv[1]); diff --git a/src/producer.c b/src/producer.c index 08eb76d..2739555 100644 --- a/src/producer.c +++ b/src/producer.c @@ -1,5 +1,6 @@ #include #include "producer.h" +#include "shared.h" void Producer(void) { @@ -7,11 +8,14 @@ void Producer(void) while (1) { item = produce_item(); - down(&empty); - down(&mutex); + // sem_wait(&semProducer); + // down(&empty); + // down(&mutex); insert_item(item); - up(&mutex); - up(&full); + // sem_post(&semProducer); + // up(&mutex); + // up(&full); + break; } } @@ -20,7 +24,7 @@ long int produce_item(void) return random(); } -void insert_item(int item) +void insert_item(long int item) { ; } \ No newline at end of file diff --git a/src/shared.c b/src/shared.c new file mode 100644 index 0000000..a036ba6 --- /dev/null +++ b/src/shared.c @@ -0,0 +1 @@ +#include "shared.h" \ No newline at end of file