From b465891332abe0fe1e589f4ef870610b0b1d578b Mon Sep 17 00:00:00 2001 From: Jakub Adamski Date: Sat, 8 Dec 2018 22:58:07 +0100 Subject: [PATCH] zad dom 8 --- Zadania_domowe/zajecia8/zad1.cm | 54 +++++++++++++++++++++++++++ Zadania_domowe/zajecia8/zad1.lst | 59 ++++++++++++++++++++++++++++++ Zadania_domowe/zajecia8/zad1.pco | Bin 0 -> 5336 bytes zajecia7/zad1.cm | 7 ++-- zajecia7/zad1.lst | 61 +++++++++++++++---------------- zajecia7/zad1.pco | Bin 5053 -> 4946 bytes 6 files changed, 146 insertions(+), 35 deletions(-) create mode 100644 Zadania_domowe/zajecia8/zad1.cm create mode 100644 Zadania_domowe/zajecia8/zad1.lst create mode 100644 Zadania_domowe/zajecia8/zad1.pco diff --git a/Zadania_domowe/zajecia8/zad1.cm b/Zadania_domowe/zajecia8/zad1.cm new file mode 100644 index 0000000..3475282 --- /dev/null +++ b/Zadania_domowe/zajecia8/zad1.cm @@ -0,0 +1,54 @@ +const int N = 5; +semaphore s2; +semaphore s; +monitor m{ + condition c; + int buffer[N]; + int write_pos; + int read_pos; + + void queue_add(int item){ + buffer[write_pos] = item; + write_pos = (write_pos + 1) % N; + } + + int queue_get(){ + int item; + item = buffer[read_pos]; + read_pos = (read_pos + 1) % N; + return item; + } + + init{ + write_pos = 0; + read_pos = 0; + } +} + +void prod(int i, int n){ + for(i; i<=n; i=i+1){ + wait(s2); + queue_add(i); + signal(s); + } +} + +void kons(int n){ + int i; + int liczba; + for(i = 1; i<=n; i=i+1){ + wait(s); + liczba=queue_get(); + signal(s2); + cout << "Pobralem " <&c`vVqo>{AkwhxBH#QT{Fn5_FklxqPQwywxoJJfwe2*tM5Yee zsX@e91gj{4ML{gD2&*OF6g2p9xJh)t*}=Smp0|Q82aDXh17~6-I`A{gk-<67hKrm- zT#lS$6wHrfl$s5VqJRW`^86IAn2m9PA>Zc=3%ZEN=m06mIYVaLN$jXa0nT}T*ae9W z@>76wo}U7oPrNfX>fKT@5#NvyhuCLloS8ot@((hj1*DKa?aEN z=bWKFjaJAHdOwX6Rwdr&RweT{T7h8+&Pje~16_vWpCfToH9drX=T#j8)*A*S%t%Gw&5VkG@Lc#C}$Xh`nMz zQyL?!$T{Nhd)MB{_{?F>E|*Ic19{FH*4~E#3ERfpPz;aO2QGxWRe9t#(a2p1QZ{nOAMFE1`2;Gq=l6Y}>a z(ePA)#!fWRuAnXQR%PjFv`|-gb&7-$M-5D_NXX=4mIEr7!0=Lw)Pu(`JaPibM}109 zT1XoTGv6svdas<|5-Z!2!*X!WCb8CKM2K3EP;oAC^CQg)6mX;x!%O`r61sc!wAok# z1U$1g3%38ykWvqdgsfYmeSo^~Ck~3ClTzPyZ=9^Yz88oD@!wDFQ~Rk|uRTuax>PsquoTe5zaV0v_s(JvuRyr42+-M>)9s$(6{6S_5X zX>?Ypgr6?$vgpu+XPnME`X`dpF5paamM5Ef{{3q?i;gqYw!8naYLfT}k0Z_Rxg;GU zm?zFYy9PV{^ss3x^O}w`in`3BgUnQj^YYJk*MDU5*S2{agr`Gul*429qm{2bgMlV4 zOoDb*2iQzmFdQ26P>(!0EVFEi@Z*Sns-6Lsx;A^;5*gZBZ#C9;Y-rsw$EzjMPA(AzWA6$-|fHaEZuH#k#@_;TDJW+k&l73*_AXoE~={Zg1ZH?y0=*SI1_H(d?H~!Z-WF(;#o~S4W!T zv3Z`@nggZ6lEX0h%SZOjE*8voS^ggo0c|_&8Q3qLb-Q|cc6-X2HkRB8a3#a+tMhY+jQtE>BTlCMy#Y4-IsaLl3sK>6$JFcy;A_??p!xPQ9v); z14RLYOGko|In^DI2d&6MH#b259=2}@0`SmnO8~9F!=;6)z{BZ}r(gme;m;zIe2IS+ F{{UQ$RnY(d literal 0 HcmV?d00001 diff --git a/zajecia7/zad1.cm b/zajecia7/zad1.cm index 4baa14a..30d7019 100644 --- a/zajecia7/zad1.cm +++ b/zajecia7/zad1.cm @@ -17,10 +17,9 @@ int queue_get() return item; } -void prod(int n){ - int i = 0; +void prod(int i, int n){ int cnt = 1; - for(i = 0; i < n; i=i+1){ + for(i; i <= n; i=i+1){ wait(s2); queue_add(cnt); cnt = cnt +1; @@ -44,6 +43,6 @@ main() initialsem(s2, 5); initialsem(s, 0); cobegin { - prod(50); kons(50); + prod(1, 25); kons(25); } } diff --git a/zajecia7/zad1.lst b/zajecia7/zad1.lst index 20c2e65..3e5b0c8 100644 --- a/zajecia7/zad1.lst +++ b/zajecia7/zad1.lst @@ -1,5 +1,5 @@ BACI System: C-- to PCODE Compiler in C, 11:30 1 Oct 2012 -Source file: zad1.cm Mon Nov 26 16:14:36 2018 +Source file: zad1.cm Sat Dec 8 22:50:54 2018 line pc 1 0 semaphore s2; 2 0 semaphore s; @@ -20,33 +20,32 @@ Source file: zad1.cm Mon Nov 26 16:14:36 2018 17 26 return item; 18 30 } 19 31 - 20 31 void prod(int n){ - 21 31 int i = 0; - 22 34 int cnt = 1; - 23 37 for(i = 0; i < n; i=i+1){ - 24 51 wait(s2); - 25 53 queue_add(cnt); - 26 57 cnt = cnt +1; - 27 62 signal(s); - 28 64 } - 29 65 } - 30 66 - 31 66 void kons(int n){ - 32 66 int i = 0; - 33 69 int liczba; - 34 69 for(i = 0; i < n; i = i+1){ - 35 83 wait(s); - 36 85 liczba = queue_get(); - 37 90 signal(s2); - 38 92 cout << "Pobralem" <B+l3OoLzzd#I!T* z6k|i=5;%MIV2KM~zPP@TyXVKgK3vK5<)!qU{C55B)oZ!#4##F+pQLH!`bTl@DxZsp zlXsh5vboD z-)pphZ-$HO*#%_aWV}m|iJHcqfo~dn2F_6%#Ll}k_6(d;?-_Mg@8%G_ zm=}7Z6>%n)C@A;^+niuE=&P9?x zIXLThsKauNHh3Nw7KkDrb@p);qt2rR7b(MHqH{6fTtMgGD=%hJr1=be3hK=NQJ;dG zLlhWyjY+9!1;q;LOy1TDQIzBybcTi{8z(wzUL-grdZck-COFHVa*`Y6m>UKUU(5~u zk5QC~&N-B4#-(r5g53i{jNk(7B0kV(0iDxKSTM@87dW5wns8o_bBLY3$TwJ^;R2kg zeu!d0ojGRea1B+L@Epc;iLqD`BjK|I=Li|TmJ^+q6P=e6&P#9(z81tGJN0D_VPU2u z`LkqR1U_K6!d=KH2US<#9OVx(b4AWc{;Y79D!&5f$UAYUO`_NeTsSZIhG>)OOg?zd znZnbA1$R2G1N=9SubLY3}rrZb8;SI$Lj0m;2hyNSim`0vJw_>j>cjE3sK{-aC2~uklBVh zkKPproFg0}lS_(2&KxtZv*S9bGjgzu`K*#GXO8P&@Wn{E4ko$bbgY7gE3|>1vtHnQ z)(f1Oi-8aNC<<*XH?Lm5eSh=j=Jl=E{-bHP^;bM-wsqS#y9T=-lzr2F66x;$5b2+f zwaBU7N!y(c)t*o5�>{n;yDWs=hlk8*B^smR?+3c29kMy1cl6fyD?gZT+=bl&C&M zvc*q{1dSf?pB8InwaPwVC%v_cc|bDih&`q-xHIT~MoLhLg#36rLDGcy4v)BZ%vCwT zaR0R1nb;mu)6XV4n*_dtYP_T9kON;%O<#XFb|FghXAEK<@pUpDj1GoVU2PK}n+gX` zaqswAU(tc9MhC;6PxVv%q1tYJa6?2>wPK_pF72a8c)t)Ew%BorvnTFt*H)h^&iB$d zJ=FaOX3S&Ve@#|@D(Rflvt;D9F>P| zh!ReKoVbtZ}rN4C$Dt@jLXZk~hvuj)^ z9!fkq@$8_eT=-GU!aiDA$Lb`<$L3otpILJbA%tIW?AILd znaaWilSO}(6t-bD9S>{3@CGOYea0cSO(TAFj5Tm<LI>i$h?;7AkItm&gh5S z)CRt~dw+ZL_UD1hZ{7W=+Si94&iUT7$ERN2;1h&Yr&IMjvn3p(ffd}K_M)Lp zTvGkvg9QQg!-n^3-y^p5{nNuk(>~zy$Bs*V-*hcS#utj6`PgA!P`4e8rl8e0jrf#N z1GmI7yr5>l9?;JsX28aA*j*Wt<524%d4P7<*m{=Mg@YQ;d>KLQ)NdFWzm({aaKOlN z8lu-E!_M3ea=rz5==sYV$b*M1A7VxxcDf(DkVibTA YJls5P0Uo-k9b15h|E5KZ%VIVA3moMg4gdfE literal 5053 zcmb_gO>^5e5basN0(aLPfnTD0a~!ARY3pR{Tzbk-66LUwNL8jB+rPf=?GgkarJYG9 zm@!Q)v2Wi#Eb+lNmsdCD{^hZ+w-@H>{M_`N`Ed3A?X|h;w!3Ci?@iO1tDlXv7wOa( zW6k?zZ<47^CimT8zpTv~y)MjawX(k~x5oU@wdS^aGD%@#N14o|w%N57+GQ%*)Hf7zX8^UJ_U=e(+B%GgyF{c*_)))b$Z_4oe1OIeM{A?jQu7 zIEC{XEi)j)bBJZp2N=0zp`>7$M|}{>;!zH(BMu8_#L+D<(g??rvw%9zmXS3K!H~Np zXP;>a3pmHQTX0T2XJl%@`6xQsd1T-u{1qV+HO`%*7w4XUbI=F5^H-dE0?u)Clt!2- z7$)GX(OvGz3FicyMG+yM!ixo&Qneu!Sm-W!2~GhEI0p>r1&^4IsO7y-2`M-SUKn>& z@v#>?kOBbHt&Jf@3Xoo{zPm=82u+Ca8@Z7V7MyPhnwgI2;HA3pfW}>;uk6UeuZDJI;0* z>zu#~oIOrX9B>YlCm(VNmA706gYhaRmg``Q!*wvmk##V}A-l194WhG_Wv(ANa~%wF zpP^60S-ikGsst;My<+9Wavk&x>BV(0_ToCoDt7@V%t}ybW4n2Kef#m|-Ocr#(Vb1x zuIgtzXjXOGH|qxbDzr`0elez7{AEo4va5~R*K5;u`)#%1)A|Y5YQ?Tw?5e81+cryV zIQX`oot<}wzTTgoox#AS1f+M35Y}!lxLhsOWtT^9z<@8YZBbYJ|br0)8;>b%MX2+T02XR8M-M;e@ zkr#=gg*xedkf}~Ef#M|DieGs7UphgICIsRAph2kbDfaOj%$ac6daVUi7u$cWCyj7i znVcNHbnRnAi_xmv?uUe?}QL?X#?U^#=b;z2V|#Hr-caJ~t1a4J?wi3A09gK^v0L0D2AU zQlc|^9s`cs{l~kT+g}GNAG*c9+SJ>hj``lSyF+i@;p2v>_WSB(qDweN11q>f^2>*5 ztL-=@=A68SPay;xrV#C}UpiLx;_&d$v=8{OvgT6XH(g7S@$F-+G1k}@)NMy&nBbfS zEg3O$1B_290Q^Cbk;?+NOX@Ec63 z@1S5LI6UZyZ~#rP4>vsiInabWl184>wx)*l_ m@UYV$mkc~)mpy`lhaF~Z$t431+2xKsz{7n$V~_J}KKTc}fh`RH