From e8f6618df6ae68e5fa479578951b56f1f1a01d99 Mon Sep 17 00:00:00 2001 From: TriantaTV Date: Wed, 12 Oct 2022 21:11:15 -0500 Subject: [PATCH] Added rand() to producer --- Makefile | 6 ++++-- bin/driver.out | Bin 16376 -> 16520 bytes build/consumer.o | Bin 1576 -> 1584 bytes build/driver.o | Bin 1864 -> 2256 bytes build/producer.o | Bin 1640 -> 1912 bytes include/consumer.h | 2 +- include/producer.h | 2 +- src/consumer.c | 8 ++++---- src/driver.c | 12 ++++++++++++ src/producer.c | 12 +++++++----- 10 files changed, 29 insertions(+), 13 deletions(-) diff --git a/Makefile b/Makefile index 916e159..5f9d6db 100644 --- a/Makefile +++ b/Makefile @@ -1,14 +1,16 @@ INC := -I include -all: compile exec +all: compile link compile: gcc $(INC) -c -o build/driver.o src/driver.c gcc $(INC) -c -o build/producer.o src/producer.c gcc $(INC) -c -o build/consumer.o src/consumer.c -exec: +link: gcc -o bin/driver.out build/*.o + +exec: compile link ./bin/driver.out clean: diff --git a/bin/driver.out b/bin/driver.out index 28296480bb553597ca4809096ef032fa676db0ec..cf053f84cda5770936fe0d3feed7220226035cce 100755 GIT binary patch delta 2887 zcmZ`*eN0nV6u-AEg+d*?RxO>*wkQ*(wtycf&;bhiTy)boHp%7$rD!vOt~}A-C+ zc4$&OiNVD`s&OC2{V~JLFxfJyLD6h8EZH)RCYb3`7oDP8(i!#b-23i>O0wI${_gpm z-@WJD&-ap@dv?)iu0$llOO*y>sHgDr%&v6J>Pqjq?9CiBYSy3;Y}9M1F=%EDNYtKh zMk6{;W1{{iu}diTz%J^LVnP)Ysu&!j7d^AwTAPWeXf#papy4IY|3wIi2qCZ-+a`Z> z`Nw^4y|MoG1Do~tTZ-{c$&#squ-8~HB?~*F_^@ON*~R~};JmStehj-z4!RgdjSjk! z{lgklF8z$NYdBlL|4(verlu$|!6DP4wDxdgYZLrt%F7CcgRM$4QGzW2_}8?vlNd0Z zk(lsD@k!(VTD=Z~=kNpwaRh^t2zoaPuH)&Tg`hqt?8)43Bpt&3y5|6nz(6`hdwsq$ zggqkGQtA~`tUF>r&96~2Y%n|OFv3_#R%%r?FKmwV@`d2pHV})?U0MPOzB4;$X5Te)cgFslyo|7qkb7!=J3N^)z$shQavZ@@pp;+Z^|8g`E=O3$Tq6tTQHq8%hQohYCM|LI> zGr6udDRD|K!L|a^xIWA+4(2wSP}ke}eS+Gi<8sFi9;Wwj^3@5TiynjJf3xZfUvV z5@F|Bu5#ooPS+_bV??aFN9qeI8wWB8wpF6h@feABFl6Mky!o^o9N5y_+$_fv?s(D= z`8EF7Rd_cNj|{~}40MPN6rPR@%bVkU1Gd+#``ziCFK-RF*}-gUakqA~Yzlx&WUwm_rCo zx@WHK#hQLEFyUl;*c})}z5!7$)3L&`i(`+4jI4bs=Oe?iN#+J?Iy>&n|0O;bpwQ!@ zr(mVWm3I`iyOA5y8g_6o(^@f6%P4&8nX#z~2k1(by)xeADwI{Czb4iH?zn#&`ZuG$ zJk=i__wPmjd!v1SdYZGG`ZX03*A=>Wse|}Dm(*|9ET>?jFgnjgdqML0XcDTuE_x9f zy*??*whR{W1|U&5>~-1hYF9kb@1Y_y{Oo;^j)2GKqC-&a+hU0M;e=r-4ES=T1~KCy zfn6}{yI5Q#^3wVz#Lc7RkcJ8Te8I zz;d9Mz%$?B`~&q8wjgdzXcGE=n0~bx7m@Y$nTVy2(I)uWg6F#rTTT@Xi(S_+dhC6I3s7 zq_K|>H;am26K|pVQ>Hdp$KUfj5*|x7*1p&RJB4o-Hp(vt+Lblowx*8Ff$*}n*7lB; zK$vJ>5>+c!tz5cnV~MxKyO691DCQLi8wo-HUG1zU_+}sliR*@)EC<6ziblMW`;a!`!mz(hz&+V$m@d>dSnV5y6f? zPg!YZkvMGZkd-Zx^s}d96rAOqGz8a-c354W1>clQmZ&&sQ5Y^S1-T-JHjMd8E2Oc{ zQGI<*LVblVQ{SQecGzFBoO<9=g-@F0<_QuV6>$1}QmV;vn^y3%<>G{&JYbDCwURXj<|GbJfM}1|fg)G##<8ZLDlpcrS%Gv(`z~7!m delta 2396 zcmaJ@drVVT7(b`)VwK(&QYwtnDpNG{QUoiHYEcADfc61YJxpaZAZuhL0?;IPbo5@40MakCUAK&i8%4 z^E>B!=W!eBq%$48X~KY=C?%`{S<{zuB5Bg3T9c-}>;9yhI@P+V0|)h&8Mvt-;R+O4 ztlwa+N*@gU9UFMRR_LTIAj6)lr&;;if!R2*ixvtiW&VR+88-EB~#%J1|# z)nFTAhHp$RYJps{3m%wkbPT-MYB1ZVX=L2F(t6bHvm6o$xhrRP!wP$GAvO-9o$T32 z$i3vu-_S0fXNTt5g(A$_ecP;p zvkzrCQ76mt*T#3?vXH&Vo>+pMuJQ-nhTm!Ci{Y0<5jS$Z{CI%UZH6hAr((Ga?g-V%?AaJm%mf1F;8dCn{z$U-=^YLEVOh zrX4mjJE|=H5!QpS$?Ku*5b=6^HOOs2-yB!BOCd9^4JZBSG@SHidVl;M$t_6x2_@4_ zjo7+AJ+i{LYXN4s%B@|PFuyoF31l-2<$8px4mK_!ZWYKNT+8*)VVKPo@i)isq32cwuKYE9*dYt6 zj=d9nVqAl);{Gs<=dnr9fNO3M8iySPN>XvUfxs)2z)(PRYp21z+g`EBix4zRN diff --git a/build/consumer.o b/build/consumer.o index b5cbf35c1c722c5999fa3d9206e69c85050bd9b4..870fdac2ece03d4e607315462bf5cee8b686d3aa 100644 GIT binary patch delta 216 zcmZ3%vw>%V2IGf`no2?n9-Xx>UN8WGN2lu#k8al=6C?c@873}u=hFmmQF96Jz}+ZgAmK1&O)x3A8ae^RmTEW@4Nt z2o?g0iUP3^10#dUf|LUR3l#tP4*{~16`AaTY7&{m8BHcvGF@l1 zpB%_+&d4yili8lJe)2~q@yQREHJ~g777)vm#h!5)SY`o`zhd%9ApgWh8&=&@&K+7Ibi?* diff --git a/build/driver.o b/build/driver.o index cafaaa39eb6e90c975878f7a0e1c1ecd82ba2dfc..ecf8e3bf12ffce8497c7a8ce424a07df074ba204 100644 GIT binary patch delta 665 zcmYjNOG^S#6ux(KCdbUOhtiv(A`1$MQYexTsa6?9w&+PtD5Zvu&?0CNMeQ8UAE<2` zY1gh=)v`9xLI`)!s-Rs$oqL_Z`QUu_obNojPtIpoeo%;r+R%*ajvzi5T|Dwf+wwAOuEfxc-zigq;m%La0s>j^Kp$cXpt(#&kqCBO|}! zsIkF|r5*0+s?0kvSr3bXhc+|zwPD;yC^2$T){XF@F}=tmeJc9Xymx`~Cg*YFfe|&4 zR7f_nor;lJMO`}BPpC7=bS|ZmWhJXdGU-@uN6CcJscbH(WZ+cj?KMQ=(|1_$717Fn z6$Ib`@7#cI!E?N8s`K*gez+hxx~3g4AN=X zMpoboISwT;D4)|x$02wnzno_`BIY0=`R#lKMga=f(u5q)hsXK4veYNP>E)_^fa4#- C#iD}% delta 356 zcmca0c!F<&2Ga@ViCT^mYcwaWDw=G~s5Lo*(S<*s0SH|A1lpLKdD)oKChulcogB<6 zG5G*1%VZg*5Jj*&PzgT}3o$StFKVv`-%G+@jIHVsxbMxcVpfgHk<53p%4 za!!89X3t~*RmrZwXfQdG-JUZ5qzDKiCU0an=Trc>0|*Qze`Gi3S^5L(5T0yn>qkFUQ4lK{6h9Vh=n8_ZB8&aXK}Cwawbbl3+pc!AC7Xp-kqUwk zMA@I=Pw=?gf~^<9i+J=R?7@TLWf8H?lf1KyAt!xcGBeN2yl>u_H`$oHHI>pd5@>XT z_B>&U+Fg5gE--U6K>hS%@YK&))Bj>V`>LD%lU55c)1PdcFIfDy=F5E{v;77-3QdZOIw|;cuFSO|#TkDi(`ov!yrNDgR^h_vy?xzv=HZKc}=Et&!REKbVE)e5aJR zZrA6x?k(H8YdMRRvhLK%dE3=XRsGyb=^)Yc`1qK9aW-FbyqccP8kdcc;p}KF@Ut1k z5OwoQrdjaT(|2YmMbrQ%$3Mz8pgo!)Z7r=0_4V$rbHh$D2LUGVm>ftyPmTBYJmv&; z5xWkaaSacNyL<6D@Qgt`Bt8|!K_vmR>Zb3zNwKcPN#ZQQO#UkAWA8{LKR5$(#}qGq z@b1i=VL_kb$S{F*HdG)u3)@#%lJaTQtt{3GwrdpVt}=yND0z07os#1fspM2`*9$3( zSgn6p>2B6I)vw(UXBE%$3uY($h~kmo!y>%Q27GUXzs)uP9&?m@ooxW?Lj*Zx2tT3x z`!QbnLq>JI>{)r%o*U|Av0Qt_GCX_DBV*C>EHd)dDjD3Qz$sM9W!vGHQ}Jwr@9J>X zvkDKDzvR>mZtW`fY@KVclD)i8bgieRCJy-c=;|BP4C5s>G=MaIF2>{wLZ(WSTj0%c02o@fD=J{|51*C zllv&CEoEE~LTRZNeUo{yqp5>QWJ2x?bGYa6_fM;Oonui*|Al+N22$hoBdT8JC;9Pu z+`^>!UsVG!RUzhofJN$M{z-eIFmwK!jpFQGF)q%#~M4*=KF!=8z N)+^HMWQIn({tpNC*}DJ$ delta 557 zcmeyt_kw4FMzjVq0~|PjSq==m3_J{<`Q?6vdUQVZXnrH`0wmt)`ls9VkH-v;&f{SI zgb61P!xVu9V&Pnm&e|UnVh>Mz0XBRxAETS3D#!>|K7lqSXI{1#9(E2OR|be}CigN* zPwrsMn9RW>U<+0S6cq(xAqGYU7@r@=2LUA@28o-1c?=9NaXlbkU@{|%$mB*QMg7dY z;?$y&_{@^jT!x~=yp;T0kaAwA9u^=C!hillfb8UhOyZ1slRq+vPqtvzU{sx)$Slri zGP#o3a`G{b?$ST6P3aC_F$_vP42V$scFtrRD7$ys`sVOD_1sJhNUw|sCm@LUAuNw>G zfqdZr6@^g+=xzi`a7 +#include +#include +#include #include #include "consumer.h" #include "producer.h" #include "shared.h" int GetSplitAmount(char* argv); +void TestProducerConsumer(void); int main(int argc, char* argv[]) { + srand(time(NULL)); sharedMem testMemory; int splitLimit = 1; if (argc == 2) splitLimit = GetSplitAmount(argv[1]); + TestProducerConsumer(); } int GetSplitAmount(char* argv) @@ -21,3 +27,9 @@ int GetSplitAmount(char* argv) sscanf(argv, "%d", &splitAmount); return splitAmount; } + +void TestProducerConsumer(void) +{ + Producer(NULL); + Consumer(NULL); +} diff --git a/src/producer.c b/src/producer.c index 2739555..4b29cab 100644 --- a/src/producer.c +++ b/src/producer.c @@ -1,17 +1,19 @@ #include +#include #include "producer.h" #include "shared.h" -void Producer(void) +void* Producer(void* arg) { - int item; + long int insertNum; while (1) { - item = produce_item(); + insertNum = produce_item(); + printf("The random number is %li\n", insertNum); // sem_wait(&semProducer); // down(&empty); // down(&mutex); - insert_item(item); + insert_item(insertNum); // sem_post(&semProducer); // up(&mutex); // up(&full); @@ -21,7 +23,7 @@ void Producer(void) long int produce_item(void) { - return random(); + return rand() % 10; } void insert_item(long int item)