/*#SDTREF(SDL,C:\temp\LAB8Concurency3\Concuro.ssy,4)*/ system Concuro; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Concuro.ssy,1)*/ /*#include 'random.pr'*/ /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Concuro.ssy(1),179(20,175))*/ SIGNAL requestWrite(Integer,Integer,PId), approveWrite, requestRead(Integer,PId), approveRead(Integer), consumerXReadItemY(Integer,Integer), producerXWroteItemY(Integer,Integer); /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Concuro.ssy(1),140(130,72))*/ channel /*#E*/ ProducerDongle from /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Concuro.ssy(1),134(130,30))*/ Producers to /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Concuro.ssy(1),119(110,100))*/ ConcuroBlock with /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Concuro.ssy(1),141(135,85))*/ requestWrite; from /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Concuro.ssy(1),119(110,100))*/ ConcuroBlock to /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Concuro.ssy(1),134(130,30))*/ Producers with /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Concuro.ssy(1),142(135,60))*/ approveWrite; endchannel ProducerDongle; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Concuro.ssy(1),122(45,102))*/ channel /*#E*/ ThisWayOrTheHighway from /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Concuro.ssy(1),119(110,100))*/ ConcuroBlock to /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Concuro.ssy(1),104(15,15))*/ env with /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Concuro.ssy(1),123(39,112))*/ consumerXReadItemY, producerXWroteItemY; endchannel ThisWayOrTheHighway; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Concuro.ssy(1),149(132,152))*/ channel /*#E*/ ConsumerDongle from /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Concuro.ssy(1),137(130,185))*/ Consumers to /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Concuro.ssy(1),119(110,100))*/ ConcuroBlock with /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Concuro.ssy(1),150(135,130))*/ requestRead; from /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Concuro.ssy(1),119(110,100))*/ ConcuroBlock to /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Concuro.ssy(1),137(130,185))*/ Consumers with /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Concuro.ssy(1),151(135,170))*/ approveRead; endchannel ConsumerDongle; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Concuro.ssy(1),134(130,30))*/ block /*#E*/ Producers referenced; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Concuro.ssy(1),119(110,100))*/ block /*#E*/ ConcuroBlock referenced; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Concuro.ssy(1),137(130,185))*/ block /*#E*/ Consumers referenced; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Concuro.ssy,4)*/ endsystem Concuro; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ConcuroBlock.sbk,4)*/ block ConcuroBlock; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ConcuroBlock.sbk(1),197(95,47))*/ signalroute /*#E*/ ProduceMe from /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ConcuroBlock.sbk(1),185(70,95))*/ Io to /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ConcuroBlock.sbk(1),104(15,15))*/ env with /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ConcuroBlock.sbk(1),198(95,17))*/ approveWrite; from /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ConcuroBlock.sbk(1),104(15,15))*/ env to /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ConcuroBlock.sbk(1),185(70,95))*/ Io with /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ConcuroBlock.sbk(1),199(95,90))*/ requestWrite; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ConcuroBlock.sbk(1),188(45,97))*/ signalroute /*#E*/ LineOut from /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ConcuroBlock.sbk(1),185(70,95))*/ Io to /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ConcuroBlock.sbk(1),104(15,15))*/ env with /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ConcuroBlock.sbk(1),189(17,107))*/ consumerXReadItemY, producerXWroteItemY; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ConcuroBlock.sbk(1),206(92,157))*/ signalroute /*#E*/ ConsumeMe from /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ConcuroBlock.sbk(1),185(70,95))*/ Io to /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ConcuroBlock.sbk(1),104(15,15))*/ env with /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ConcuroBlock.sbk(1),207(92,207))*/ approveRead; from /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ConcuroBlock.sbk(1),104(15,15))*/ env to /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ConcuroBlock.sbk(1),185(70,95))*/ Io with /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ConcuroBlock.sbk(1),208(92,117))*/ requestRead; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ConcuroBlock.sbk(1),185(70,95))*/ process /*#E*/ Io referenced; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ConcuroBlock.sbk(1),203(90,7))*/ connect /*#E*/ ProducerDongle and /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ConcuroBlock.sbk(1),197(95,47))*/ ProduceMe; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ConcuroBlock.sbk(1),194(5,115))*/ connect /*#E*/ ThisWayOrTheHighway and /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ConcuroBlock.sbk(1),188(45,97))*/ LineOut; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ConcuroBlock.sbk(1),212(87,217))*/ connect /*#E*/ ConsumerDongle and /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ConcuroBlock.sbk(1),206(92,157))*/ ConsumeMe; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ConcuroBlock.sbk,4)*/ endblock ConcuroBlock; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr,4)*/ process Io; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),119(130,15))*/ DCL numberWritten Integer, writeID Integer, writePID PId, readID Integer, readPID PId; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),116(60,20))*/ start /*#E*/ ; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),122(60,35))*/ nextstate /*#E*/ Phase1; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),122(60,35))*/ state /*#E*/ Phase1; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),128(30,50))*/ input /*#E*/ requestWrite(WriteID,numberWritten,writePID); /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),137(30,70))*/ output /*#E*/ producerXWroteItemY(WriteID,numberWritten); /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),182(55,85))*/ output /*#E*/ approveWrite TO writePID; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),134(60,110))*/ nextstate /*#E*/ Phase2; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),155(125,65))*/ save /*#E*/ requestRead; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),122(60,35))*/ endstate; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),134(60,110))*/ state /*#E*/ Phase2; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),161(120,130))*/ save /*#E*/ requestWrite; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),146(35,135))*/ input /*#E*/ requestRead(readID,readPID); /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),170(30,155))*/ output /*#E*/ consumerXReadItemY(readID,numberWritten); /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),191(40,170))*/ output /*#E*/ approveRead(numberWritten) TO readPID; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),176(60,190))*/ nextstate /*#E*/ Phase1; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),134(60,110))*/ endstate; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr,4)*/ endprocess Io; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk,4)*/ block Producers; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),119(42,42))*/ signalroute /*#E*/ ProducerLine1 from /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),116(95,35))*/ Producer to /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),104(15,15))*/ env with /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),120(17,52))*/ requestWrite; from /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),104(15,15))*/ env to /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),116(95,35))*/ Producer with /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),121(82,55))*/ approveWrite; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),230(57,67))*/ signalroute /*#E*/ ProducerLine2 from /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),224(95,65))*/ Producer2 to /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),104(15,15))*/ env with /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),231(17,77))*/ requestWrite; from /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),104(15,15))*/ env to /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),224(95,65))*/ Producer2 with /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),232(87,77))*/ approveWrite; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),275(57,87))*/ signalroute /*#E*/ ProducerLine3 from /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),245(95,90))*/ Producer3 to /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),104(15,15))*/ env with /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),276(17,97))*/ requestWrite; from /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),104(15,15))*/ env to /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),245(95,90))*/ Producer3 with /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),277(87,97))*/ approveWrite; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),284(57,102))*/ signalroute /*#E*/ ProducerLine4 from /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),248(95,105))*/ Producer4 to /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),104(15,15))*/ env with /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),285(17,112))*/ requestWrite; from /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),104(15,15))*/ env to /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),248(95,105))*/ Producer4 with /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),286(87,112))*/ approveWrite; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),293(57,117))*/ signalroute /*#E*/ ProducerLine5 from /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),251(95,120))*/ Producer5 to /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),104(15,15))*/ env with /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),294(17,127))*/ requestWrite; from /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),104(15,15))*/ env to /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),251(95,120))*/ Producer5 with /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),295(87,127))*/ approveWrite; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),302(57,132))*/ signalroute /*#E*/ ProducerLine6 from /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),254(95,135))*/ Producer6 to /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),104(15,15))*/ env with /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),303(17,142))*/ requestWrite; from /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),104(15,15))*/ env to /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),254(95,135))*/ Producer6 with /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),304(87,142))*/ approveWrite; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),311(57,147))*/ signalroute /*#E*/ ProducerLine7 from /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),257(95,150))*/ Producer7 to /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),104(15,15))*/ env with /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),312(17,157))*/ requestWrite; from /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),104(15,15))*/ env to /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),257(95,150))*/ Producer7 with /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),313(87,157))*/ approveWrite; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),320(57,162))*/ signalroute /*#E*/ ProducerLine8 from /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),260(95,165))*/ Producer8 to /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),104(15,15))*/ env with /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),321(17,172))*/ requestWrite; from /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),104(15,15))*/ env to /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),260(95,165))*/ Producer8 with /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),322(87,172))*/ approveWrite; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),329(57,177))*/ signalroute /*#E*/ ProducerLine9 from /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),263(95,180))*/ Producer9 to /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),104(15,15))*/ env with /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),330(17,187))*/ requestWrite; from /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),104(15,15))*/ env to /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),263(95,180))*/ Producer9 with /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),331(87,187))*/ approveWrite; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),338(57,192))*/ signalroute /*#E*/ ProducerLine10 from /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),266(95,195))*/ Producer10 to /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),104(15,15))*/ env with /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),339(17,202))*/ requestWrite; from /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),104(15,15))*/ env to /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),266(95,195))*/ Producer10 with /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),340(87,202))*/ approveWrite; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),116(95,35))*/ process /*#E*/ Producer referenced; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),224(95,65))*/ process /*#E*/ Producer2 referenced; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),245(95,90))*/ process /*#E*/ Producer3 referenced; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),248(95,105))*/ process /*#E*/ Producer4 referenced; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),251(95,120))*/ process /*#E*/ Producer5 referenced; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),254(95,135))*/ process /*#E*/ Producer6 referenced; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),257(95,150))*/ process /*#E*/ Producer7 referenced; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),260(95,165))*/ process /*#E*/ Producer8 referenced; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),263(95,180))*/ process /*#E*/ Producer9 referenced; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),266(95,195))*/ process /*#E*/ Producer10 referenced; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),125(2,42))*/ connect /*#E*/ ProducerDongle and /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),119(42,42))*/ ProducerLine1, /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),230(57,67))*/ ProducerLine2, /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),275(57,87))*/ ProducerLine3, /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),284(57,102))*/ ProducerLine4, /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),293(57,117))*/ ProducerLine5, /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),302(57,132))*/ ProducerLine6, /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),311(57,147))*/ ProducerLine7, /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),320(57,162))*/ ProducerLine8, /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),329(57,177))*/ ProducerLine9, /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),338(57,192))*/ ProducerLine10; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk,4)*/ endblock Producers; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr,4)*/ process Producer; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),128(135,15))*/ TIMER walkingTime; DCL someTime DURATION, myID Integer, numberToWrite Integer, mahPID PId; syntype iLikeToWrite = Integer constants 0:100 endsyntype; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),119(65,15))*/ start /*#E*/ ; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),125(35,35))*/ task {/*#E*/ myID:=1; numberToWrite:=any(iLikeToWrite); someTime:=1000; mahPID:=SELF; SET(NOW+someTime,walkingTime);}; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),134(65,70))*/ nextstate /*#E*/ SiDLing; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),134(65,70))*/ state /*#E*/ SiDLing; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),143(60,90))*/ input /*#E*/ walkingTime; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),149(35,110))*/ output /*#E*/ requestWrite(myID,numberToWrite,mahPID); /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),167(60,125))*/ nextstate /*#E*/ ForcedToWait; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),134(65,70))*/ endstate; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),167(60,125))*/ state /*#E*/ ForcedToWait; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),158(60,140))*/ input /*#E*/ approveWrite; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),179(45,160))*/ task {/*#E*/ numberToWrite:=any(iLikeToWrite); someTime:=950; SET(NOW+someTime,walkingTime);}; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),176(65,185))*/ nextstate /*#E*/ SiDLing; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),167(60,125))*/ endstate; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr,4)*/ endprocess Producer; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf2.spr,4)*/ process Producer2; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf2.spr(1),116(125,15))*/ TIMER walkingTime; DCL someTime DURATION, myID Integer, numberToWrite Integer, mahPID PId; syntype iLikeToWrite = Integer constants 0:100 endsyntype; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf2.spr(1),170(55,20))*/ start /*#E*/ ; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf2.spr(1),140(35,40))*/ task {/*#E*/ myID:=2; numberToWrite:=any(iLikeToWrite); someTime:=1001; mahPID:=SELF; SET(NOW+someTime,walkingTime);}; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf2.spr(1),137(55,70))*/ nextstate /*#E*/ SiDLing; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf2.spr(1),137(55,70))*/ state /*#E*/ SiDLing; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf2.spr(1),134(50,90))*/ input /*#E*/ walkingTime; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf2.spr(1),131(25,110))*/ output /*#E*/ requestWrite(myID,numberToWrite,mahPID); /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf2.spr(1),128(50,125))*/ nextstate /*#E*/ ForcedToWait; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf2.spr(1),137(55,70))*/ endstate; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf2.spr(1),128(50,125))*/ state /*#E*/ ForcedToWait; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf2.spr(1),125(50,140))*/ input /*#E*/ approveWrite; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf2.spr(1),122(35,160))*/ task {/*#E*/ numberToWrite:=any(iLikeToWrite); someTime:=866; SET(NOW+someTime,walkingTime);}; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf2.spr(1),176(55,180))*/ nextstate /*#E*/ SiDLing; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf2.spr(1),128(50,125))*/ endstate; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf2.spr,4)*/ endprocess Producer2; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf3.spr,4)*/ process Producer3; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf3.spr(1),116(130,10))*/ TIMER walkingTime; DCL someTime DURATION, myID Integer, numberToWrite Integer, mahPID PId; syntype iLikeToWrite = Integer constants 0:100 endsyntype; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf3.spr(1),143(60,10))*/ start /*#E*/ ; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf3.spr(1),140(30,30))*/ task {/*#E*/ myID:=3; numberToWrite:=any(iLikeToWrite); someTime:=1050; mahPID:=SELF; SET(NOW+someTime,walkingTime);}; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf3.spr(1),137(60,65))*/ nextstate /*#E*/ SiDLing; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf3.spr(1),137(60,65))*/ state /*#E*/ SiDLing; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf3.spr(1),134(55,85))*/ input /*#E*/ walkingTime; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf3.spr(1),131(30,105))*/ output /*#E*/ requestWrite(myID,numberToWrite,mahPID); /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf3.spr(1),128(55,120))*/ nextstate /*#E*/ ForcedToWait; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf3.spr(1),137(60,65))*/ endstate; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf3.spr(1),128(55,120))*/ state /*#E*/ ForcedToWait; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf3.spr(1),125(55,135))*/ input /*#E*/ approveWrite; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf3.spr(1),122(40,155))*/ task {/*#E*/ numberToWrite:=any(iLikeToWrite); someTime:=966; SET(NOW+someTime,walkingTime);}; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf3.spr(1),119(60,180))*/ nextstate /*#E*/ SiDLing; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf3.spr(1),128(55,120))*/ endstate; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf3.spr,4)*/ endprocess Producer3; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf4.spr,4)*/ process Producer4; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf4.spr(1),116(135,10))*/ TIMER walkingTime; DCL someTime DURATION, myID Integer, numberToWrite Integer, mahPID PId; syntype iLikeToWrite = Integer constants 0:100 endsyntype; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf4.spr(1),143(65,10))*/ start /*#E*/ ; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf4.spr(1),140(35,30))*/ task {/*#E*/ myID:=4; numberToWrite:=any(iLikeToWrite); someTime:=1055; mahPID:=SELF; SET(NOW+someTime,walkingTime);}; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf4.spr(1),137(65,65))*/ nextstate /*#E*/ SiDLing; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf4.spr(1),137(65,65))*/ state /*#E*/ SiDLing; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf4.spr(1),134(60,85))*/ input /*#E*/ walkingTime; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf4.spr(1),131(35,105))*/ output /*#E*/ requestWrite(myID,numberToWrite,mahPID); /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf4.spr(1),128(60,120))*/ nextstate /*#E*/ ForcedToWait; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf4.spr(1),137(65,65))*/ endstate; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf4.spr(1),128(60,120))*/ state /*#E*/ ForcedToWait; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf4.spr(1),125(60,135))*/ input /*#E*/ approveWrite; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf4.spr(1),122(45,155))*/ task {/*#E*/ numberToWrite:=any(iLikeToWrite); someTime:=812; SET(NOW+someTime,walkingTime);}; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf4.spr(1),119(65,180))*/ nextstate /*#E*/ SiDLing; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf4.spr(1),128(60,120))*/ endstate; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf4.spr,4)*/ endprocess Producer4; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf5.spr,4)*/ process Producer5; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf5.spr(1),116(130,10))*/ TIMER walkingTime; DCL someTime DURATION, myID Integer, numberToWrite Integer, mahPID PId; syntype iLikeToWrite = Integer constants 0:100 endsyntype; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf5.spr(1),143(60,10))*/ start /*#E*/ ; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf5.spr(1),140(30,30))*/ task {/*#E*/ myID:=5; numberToWrite:=any(iLikeToWrite); someTime:=1069; mahPID:=SELF; SET(NOW+someTime,walkingTime);}; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf5.spr(1),137(60,65))*/ nextstate /*#E*/ SiDLing; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf5.spr(1),137(60,65))*/ state /*#E*/ SiDLing; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf5.spr(1),134(55,85))*/ input /*#E*/ walkingTime; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf5.spr(1),131(30,105))*/ output /*#E*/ requestWrite(myID,numberToWrite,mahPID); /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf5.spr(1),128(55,120))*/ nextstate /*#E*/ ForcedToWait; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf5.spr(1),137(60,65))*/ endstate; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf5.spr(1),128(55,120))*/ state /*#E*/ ForcedToWait; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf5.spr(1),125(55,135))*/ input /*#E*/ approveWrite; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf5.spr(1),122(40,155))*/ task {/*#E*/ numberToWrite:=any(iLikeToWrite); someTime:=987; SET(NOW+someTime,walkingTime);}; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf5.spr(1),119(60,180))*/ nextstate /*#E*/ SiDLing; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf5.spr(1),128(55,120))*/ endstate; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf5.spr,4)*/ endprocess Producer5; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf6.spr,4)*/ process Producer6; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf6.spr(1),116(135,10))*/ TIMER walkingTime; DCL someTime DURATION, myID Integer, numberToWrite Integer, mahPID PId; syntype iLikeToWrite = Integer constants 0:100 endsyntype; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf6.spr(1),143(65,10))*/ start /*#E*/ ; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf6.spr(1),140(35,30))*/ task {/*#E*/ myID:=6; numberToWrite:=any(iLikeToWrite); someTime:=1077; mahPID:=SELF; SET(NOW+someTime,walkingTime);}; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf6.spr(1),137(65,65))*/ nextstate /*#E*/ SiDLing; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf6.spr(1),137(65,65))*/ state /*#E*/ SiDLing; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf6.spr(1),134(60,85))*/ input /*#E*/ walkingTime; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf6.spr(1),131(35,105))*/ output /*#E*/ requestWrite(myID,numberToWrite,mahPID); /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf6.spr(1),128(60,120))*/ nextstate /*#E*/ ForcedToWait; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf6.spr(1),137(65,65))*/ endstate; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf6.spr(1),128(60,120))*/ state /*#E*/ ForcedToWait; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf6.spr(1),125(60,135))*/ input /*#E*/ approveWrite; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf6.spr(1),122(45,155))*/ task {/*#E*/ numberToWrite:=any(iLikeToWrite); someTime:=1001; SET(NOW+someTime,walkingTime);}; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf6.spr(1),119(65,180))*/ nextstate /*#E*/ SiDLing; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf6.spr(1),128(60,120))*/ endstate; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf6.spr,4)*/ endprocess Producer6; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf7.spr,4)*/ process Producer7; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf7.spr(1),116(135,10))*/ TIMER walkingTime; DCL someTime DURATION, myID Integer, numberToWrite Integer, mahPID PId; syntype iLikeToWrite = Integer constants 0:100 endsyntype; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf7.spr(1),143(65,10))*/ start /*#E*/ ; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf7.spr(1),140(35,30))*/ task {/*#E*/ myID:=7; numberToWrite:=any(iLikeToWrite); someTime:=1105; mahPID:=SELF; SET(NOW+someTime,walkingTime);}; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf7.spr(1),137(65,65))*/ nextstate /*#E*/ SiDLing; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf7.spr(1),137(65,65))*/ state /*#E*/ SiDLing; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf7.spr(1),134(60,85))*/ input /*#E*/ walkingTime; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf7.spr(1),131(35,105))*/ output /*#E*/ requestWrite(myID,numberToWrite,mahPID); /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf7.spr(1),128(60,120))*/ nextstate /*#E*/ ForcedToWait; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf7.spr(1),137(65,65))*/ endstate; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf7.spr(1),128(60,120))*/ state /*#E*/ ForcedToWait; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf7.spr(1),125(60,135))*/ input /*#E*/ approveWrite; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf7.spr(1),122(45,155))*/ task {/*#E*/ numberToWrite:=any(iLikeToWrite); someTime:=861; SET(NOW+someTime,walkingTime);}; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf7.spr(1),119(65,180))*/ nextstate /*#E*/ SiDLing; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf7.spr(1),128(60,120))*/ endstate; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf7.spr,4)*/ endprocess Producer7; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf8.spr,4)*/ process Producer8; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf8.spr(1),116(135,10))*/ TIMER walkingTime; DCL someTime DURATION, myID Integer, numberToWrite Integer, mahPID PId; syntype iLikeToWrite = Integer constants 0:100 endsyntype; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf8.spr(1),143(65,10))*/ start /*#E*/ ; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf8.spr(1),140(35,30))*/ task {/*#E*/ myID:=8; numberToWrite:=any(iLikeToWrite); someTime:=1121; mahPID:=SELF; SET(NOW+someTime,walkingTime);}; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf8.spr(1),137(65,65))*/ nextstate /*#E*/ SiDLing; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf8.spr(1),137(65,65))*/ state /*#E*/ SiDLing; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf8.spr(1),134(60,85))*/ input /*#E*/ walkingTime; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf8.spr(1),131(35,105))*/ output /*#E*/ requestWrite(myID,numberToWrite,mahPID); /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf8.spr(1),128(60,120))*/ nextstate /*#E*/ ForcedToWait; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf8.spr(1),137(65,65))*/ endstate; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf8.spr(1),128(60,120))*/ state /*#E*/ ForcedToWait; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf8.spr(1),125(60,135))*/ input /*#E*/ approveWrite; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf8.spr(1),122(45,155))*/ task {/*#E*/ numberToWrite:=any(iLikeToWrite); someTime:=998; SET(NOW+someTime,walkingTime);}; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf8.spr(1),119(65,180))*/ nextstate /*#E*/ SiDLing; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf8.spr(1),128(60,120))*/ endstate; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf8.spr,4)*/ endprocess Producer8; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf9.spr,4)*/ process Producer9; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf9.spr(1),116(135,10))*/ TIMER walkingTime; DCL someTime DURATION, myID Integer, numberToWrite Integer, mahPID PId; syntype iLikeToWrite = Integer constants 0:100 endsyntype; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf9.spr(1),143(65,10))*/ start /*#E*/ ; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf9.spr(1),140(35,30))*/ task {/*#E*/ myID:=9; numberToWrite:=any(iLikeToWrite); someTime:=1133; mahPID:=SELF; SET(NOW+someTime,walkingTime);}; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf9.spr(1),137(65,65))*/ nextstate /*#E*/ SiDLing; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf9.spr(1),137(65,65))*/ state /*#E*/ SiDLing; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf9.spr(1),134(60,85))*/ input /*#E*/ walkingTime; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf9.spr(1),131(35,105))*/ output /*#E*/ requestWrite(myID,numberToWrite,mahPID); /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf9.spr(1),128(60,120))*/ nextstate /*#E*/ ForcedToWait; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf9.spr(1),137(65,65))*/ endstate; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf9.spr(1),128(60,120))*/ state /*#E*/ ForcedToWait; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf9.spr(1),125(60,135))*/ input /*#E*/ approveWrite; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf9.spr(1),122(45,155))*/ task {/*#E*/ numberToWrite:=any(iLikeToWrite); someTime:=777; SET(NOW+someTime,walkingTime);}; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf9.spr(1),119(65,180))*/ nextstate /*#E*/ SiDLing; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf9.spr(1),128(60,120))*/ endstate; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf9.spr,4)*/ endprocess Producer9; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf10.spr,4)*/ process Producer10; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf10.spr(1),116(130,10))*/ TIMER walkingTime; DCL someTime DURATION, myID Integer, numberToWrite Integer, mahPID PId; syntype iLikeToWrite = Integer constants 0:100 endsyntype; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf10.spr(1),143(60,10))*/ start /*#E*/ ; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf10.spr(1),140(30,30))*/ task {/*#E*/ myID:=10; numberToWrite:=any(iLikeToWrite); someTime:=1140; mahPID:=SELF; SET(NOW+someTime,walkingTime);}; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf10.spr(1),137(60,65))*/ nextstate /*#E*/ SiDLing; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf10.spr(1),137(60,65))*/ state /*#E*/ SiDLing; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf10.spr(1),134(55,85))*/ input /*#E*/ walkingTime; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf10.spr(1),131(30,105))*/ output /*#E*/ requestWrite(myID,numberToWrite,mahPID); /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf10.spr(1),128(55,120))*/ nextstate /*#E*/ ForcedToWait; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf10.spr(1),137(60,65))*/ endstate; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf10.spr(1),128(55,120))*/ state /*#E*/ ForcedToWait; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf10.spr(1),125(55,135))*/ input /*#E*/ approveWrite; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf10.spr(1),122(40,155))*/ task {/*#E*/ numberToWrite:=any(iLikeToWrite); someTime:=908; SET(NOW+someTime,walkingTime);}; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf10.spr(1),119(60,180))*/ nextstate /*#E*/ SiDLing; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf10.spr(1),128(55,120))*/ endstate; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf10.spr,4)*/ endprocess Producer10; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk,4)*/ block Consumers; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),119(48,30))*/ signalroute /*#E*/ ConsumerLine1 from /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),116(120,30))*/ Consumer to /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),104(15,15))*/ env with /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),120(17,40))*/ requestRead; from /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),104(15,15))*/ env to /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),116(120,30))*/ Consumer with /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),121(97,40))*/ approveRead; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),158(70,47))*/ signalroute /*#E*/ ConsumerLine2 from /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),131(120,50))*/ Consumer2 to /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),104(15,15))*/ env with /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),159(17,57))*/ requestRead; from /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),104(15,15))*/ env to /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),131(120,50))*/ Consumer2 with /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),160(112,57))*/ approveRead; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),167(70,62))*/ signalroute /*#E*/ ConsumerLine3 from /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),134(120,65))*/ Consumer3 to /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),104(15,15))*/ env with /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),168(17,72))*/ requestRead; from /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),104(15,15))*/ env to /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),134(120,65))*/ Consumer3 with /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),169(112,72))*/ approveRead; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),176(70,77))*/ signalroute /*#E*/ ConsumerLine4 from /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),137(120,80))*/ Consumer4 to /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),104(15,15))*/ env with /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),177(17,87))*/ requestRead; from /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),104(15,15))*/ env to /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),137(120,80))*/ Consumer4 with /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),178(112,87))*/ approveRead; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),185(70,92))*/ signalroute /*#E*/ ConsumerLine5 from /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),140(120,95))*/ Consumer5 to /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),104(15,15))*/ env with /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),186(17,102))*/ requestRead; from /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),104(15,15))*/ env to /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),140(120,95))*/ Consumer5 with /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),187(112,102))*/ approveRead; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),194(70,107))*/ signalroute /*#E*/ ConsumerLine6 from /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),143(120,110))*/ Consumer6 to /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),104(15,15))*/ env with /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),195(17,117))*/ requestRead; from /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),104(15,15))*/ env to /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),143(120,110))*/ Consumer6 with /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),196(112,117))*/ approveRead; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),212(70,122))*/ signalroute /*#E*/ ConsumerLine7 from /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),146(120,125))*/ Consumer7 to /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),104(15,15))*/ env with /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),213(17,132))*/ requestRead; from /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),104(15,15))*/ env to /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),146(120,125))*/ Consumer7 with /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),214(112,132))*/ approveRead; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),221(70,137))*/ signalroute /*#E*/ ConsumerLine8 from /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),149(120,140))*/ Consumer8 to /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),104(15,15))*/ env with /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),222(17,147))*/ requestRead; from /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),104(15,15))*/ env to /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),149(120,140))*/ Consumer8 with /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),223(112,147))*/ approveRead; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),230(70,152))*/ signalroute /*#E*/ ConsumerLine9 from /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),152(120,155))*/ Consumer9 to /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),104(15,15))*/ env with /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),231(17,162))*/ requestRead; from /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),104(15,15))*/ env to /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),152(120,155))*/ Consumer9 with /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),232(112,162))*/ approveRead; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),239(70,167))*/ signalroute /*#E*/ ConsumerLine10 from /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),155(120,170))*/ Consumer10 to /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),104(15,15))*/ env with /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),240(17,177))*/ requestRead; from /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),104(15,15))*/ env to /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),155(120,170))*/ Consumer10 with /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),241(112,177))*/ approveRead; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),116(120,30))*/ process /*#E*/ Consumer referenced; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),131(120,50))*/ process /*#E*/ Consumer2 referenced; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),134(120,65))*/ process /*#E*/ Consumer3 referenced; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),137(120,80))*/ process /*#E*/ Consumer4 referenced; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),140(120,95))*/ process /*#E*/ Consumer5 referenced; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),143(120,110))*/ process /*#E*/ Consumer6 referenced; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),146(120,125))*/ process /*#E*/ Consumer7 referenced; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),149(120,140))*/ process /*#E*/ Consumer8 referenced; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),152(120,155))*/ process /*#E*/ Consumer9 referenced; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),155(120,170))*/ process /*#E*/ Consumer10 referenced; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),125(5,45))*/ connect /*#E*/ ConsumerDongle and /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),119(48,30))*/ ConsumerLine1, /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),158(70,47))*/ ConsumerLine2, /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),167(70,62))*/ ConsumerLine3, /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),176(70,77))*/ ConsumerLine4, /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),185(70,92))*/ ConsumerLine5, /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),194(70,107))*/ ConsumerLine6, /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),212(70,122))*/ ConsumerLine7, /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),221(70,137))*/ ConsumerLine8, /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),230(70,152))*/ ConsumerLine9, /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),239(70,167))*/ ConsumerLine10; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk,4)*/ endblock Consumers; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr,4)*/ process Consumer; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),125(145,15))*/ TIMER coolTimes; DCL theseTimes DURATION, stuffRead Integer, myID Integer, mahPID PId; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),119(65,20))*/ start /*#E*/ ; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),122(45,40))*/ task {/*#E*/ mahPID:=SELF; stuffRead:=0; myID:=1; theseTimes:=1000; set(NOW+theseTimes, coolTimes);}; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),131(65,75))*/ nextstate /*#E*/ SiDLing; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),131(65,75))*/ state /*#E*/ SiDLing; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),137(65,95))*/ input /*#E*/ coolTimes; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),143(50,115))*/ output /*#E*/ requestRead(myID,mahPID); /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),149(65,135))*/ nextstate /*#E*/ ForcedWait; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),131(65,75))*/ endstate; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),149(65,135))*/ state /*#E*/ ForcedWait; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),155(50,155))*/ input /*#E*/ approveRead(stuffRead); /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),167(45,175))*/ task {/*#E*/ set(NOW+theseTimes, coolTimes);}; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),173(65,200))*/ nextstate /*#E*/ SiDLing; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),149(65,135))*/ endstate; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr,4)*/ endprocess Consumer; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer2.spr,4)*/ process Consumer2; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer2.spr(1),143(140,15))*/ TIMER coolTimes; DCL theseTimes DURATION, stuffRead Integer, myID Integer, mahPID PId; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer2.spr(1),140(60,20))*/ start /*#E*/ ; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer2.spr(1),137(40,40))*/ task {/*#E*/ mahPID:=SELF; stuffRead:=0; myID:=2; theseTimes:=1050; set(NOW+theseTimes, coolTimes);}; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer2.spr(1),134(60,75))*/ nextstate /*#E*/ SiDLing; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer2.spr(1),134(60,75))*/ state /*#E*/ SiDLing; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer2.spr(1),131(60,95))*/ input /*#E*/ coolTimes; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer2.spr(1),128(45,115))*/ output /*#E*/ requestRead(myID,mahPID); /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer2.spr(1),125(60,135))*/ nextstate /*#E*/ ForcedWait; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer2.spr(1),134(60,75))*/ endstate; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer2.spr(1),125(60,135))*/ state /*#E*/ ForcedWait; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer2.spr(1),122(45,155))*/ input /*#E*/ approveRead(stuffRead); /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer2.spr(1),119(40,175))*/ task {/*#E*/ set(NOW+theseTimes, coolTimes);}; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer2.spr(1),116(60,200))*/ nextstate /*#E*/ SiDLing; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer2.spr(1),125(60,135))*/ endstate; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer2.spr,4)*/ endprocess Consumer2; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer3.spr,4)*/ process Consumer3; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer3.spr(1),143(140,10))*/ TIMER coolTimes; DCL theseTimes DURATION, stuffRead Integer, myID Integer, mahPID PId; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer3.spr(1),140(60,15))*/ start /*#E*/ ; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer3.spr(1),137(40,35))*/ task {/*#E*/ mahPID:=SELF; stuffRead:=0; myID:=3; theseTimes:=1100; set(NOW+theseTimes, coolTimes);}; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer3.spr(1),134(60,70))*/ nextstate /*#E*/ SiDLing; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer3.spr(1),134(60,70))*/ state /*#E*/ SiDLing; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer3.spr(1),131(60,90))*/ input /*#E*/ coolTimes; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer3.spr(1),128(45,110))*/ output /*#E*/ requestRead(myID,mahPID); /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer3.spr(1),125(60,130))*/ nextstate /*#E*/ ForcedWait; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer3.spr(1),134(60,70))*/ endstate; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer3.spr(1),125(60,130))*/ state /*#E*/ ForcedWait; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer3.spr(1),122(45,150))*/ input /*#E*/ approveRead(stuffRead); /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer3.spr(1),119(40,170))*/ task {/*#E*/ set(NOW+theseTimes, coolTimes);}; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer3.spr(1),116(60,195))*/ nextstate /*#E*/ SiDLing; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer3.spr(1),125(60,130))*/ endstate; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer3.spr,4)*/ endprocess Consumer3; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer4.spr,4)*/ process Consumer4; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer4.spr(1),143(135,10))*/ TIMER coolTimes; DCL theseTimes DURATION, stuffRead Integer, myID Integer, mahPID PId; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer4.spr(1),140(55,15))*/ start /*#E*/ ; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer4.spr(1),137(35,35))*/ task {/*#E*/ mahPID:=SELF; stuffRead:=0; myID:=4; theseTimes:=1566; set(NOW+theseTimes, coolTimes);}; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer4.spr(1),134(55,70))*/ nextstate /*#E*/ SiDLing; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer4.spr(1),134(55,70))*/ state /*#E*/ SiDLing; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer4.spr(1),131(55,90))*/ input /*#E*/ coolTimes; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer4.spr(1),128(40,110))*/ output /*#E*/ requestRead(myID,mahPID); /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer4.spr(1),125(55,130))*/ nextstate /*#E*/ ForcedWait; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer4.spr(1),134(55,70))*/ endstate; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer4.spr(1),125(55,130))*/ state /*#E*/ ForcedWait; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer4.spr(1),122(40,150))*/ input /*#E*/ approveRead(stuffRead); /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer4.spr(1),119(35,170))*/ task {/*#E*/ set(NOW+theseTimes, coolTimes);}; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer4.spr(1),116(55,195))*/ nextstate /*#E*/ SiDLing; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer4.spr(1),125(55,130))*/ endstate; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer4.spr,4)*/ endprocess Consumer4; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer5.spr,4)*/ process Consumer5; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer5.spr(1),143(140,10))*/ TIMER coolTimes; DCL theseTimes DURATION, stuffRead Integer, myID Integer, mahPID PId; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer5.spr(1),140(60,15))*/ start /*#E*/ ; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer5.spr(1),137(40,35))*/ task {/*#E*/ mahPID:=SELF; stuffRead:=0; myID:=5; theseTimes:=1025; set(NOW+theseTimes, coolTimes);}; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer5.spr(1),134(60,70))*/ nextstate /*#E*/ SiDLing; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer5.spr(1),134(60,70))*/ state /*#E*/ SiDLing; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer5.spr(1),131(60,90))*/ input /*#E*/ coolTimes; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer5.spr(1),128(45,110))*/ output /*#E*/ requestRead(myID,mahPID); /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer5.spr(1),125(60,130))*/ nextstate /*#E*/ ForcedWait; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer5.spr(1),134(60,70))*/ endstate; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer5.spr(1),125(60,130))*/ state /*#E*/ ForcedWait; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer5.spr(1),122(45,150))*/ input /*#E*/ approveRead(stuffRead); /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer5.spr(1),119(40,170))*/ task {/*#E*/ set(NOW+theseTimes, coolTimes);}; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer5.spr(1),116(60,195))*/ nextstate /*#E*/ SiDLing; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer5.spr(1),125(60,130))*/ endstate; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer5.spr,4)*/ endprocess Consumer5; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer6.spr,4)*/ process Consumer6; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer6.spr(1),143(140,10))*/ TIMER coolTimes; DCL theseTimes DURATION, stuffRead Integer, myID Integer, mahPID PId; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer6.spr(1),140(60,15))*/ start /*#E*/ ; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer6.spr(1),137(40,35))*/ task {/*#E*/ mahPID:=SELF; stuffRead:=0; myID:=6; theseTimes:=1911; set(NOW+theseTimes, coolTimes);}; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer6.spr(1),134(60,70))*/ nextstate /*#E*/ SiDLing; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer6.spr(1),134(60,70))*/ state /*#E*/ SiDLing; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer6.spr(1),131(60,90))*/ input /*#E*/ coolTimes; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer6.spr(1),128(45,110))*/ output /*#E*/ requestRead(myID,mahPID); /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer6.spr(1),125(60,130))*/ nextstate /*#E*/ ForcedWait; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer6.spr(1),134(60,70))*/ endstate; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer6.spr(1),125(60,130))*/ state /*#E*/ ForcedWait; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer6.spr(1),122(45,150))*/ input /*#E*/ approveRead(stuffRead); /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer6.spr(1),119(40,170))*/ task {/*#E*/ set(NOW+theseTimes, coolTimes);}; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer6.spr(1),116(60,195))*/ nextstate /*#E*/ SiDLing; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer6.spr(1),125(60,130))*/ endstate; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer6.spr,4)*/ endprocess Consumer6; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer7.spr,4)*/ process Consumer7; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer7.spr(1),143(140,10))*/ TIMER coolTimes; DCL theseTimes DURATION, stuffRead Integer, myID Integer, mahPID PId; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer7.spr(1),140(60,15))*/ start /*#E*/ ; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer7.spr(1),137(40,35))*/ task {/*#E*/ mahPID:=SELF; stuffRead:=0; myID:=7; theseTimes:=1403; set(NOW+theseTimes, coolTimes);}; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer7.spr(1),134(60,70))*/ nextstate /*#E*/ SiDLing; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer7.spr(1),134(60,70))*/ state /*#E*/ SiDLing; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer7.spr(1),131(60,90))*/ input /*#E*/ coolTimes; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer7.spr(1),128(45,110))*/ output /*#E*/ requestRead(myID,mahPID); /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer7.spr(1),125(60,130))*/ nextstate /*#E*/ ForcedWait; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer7.spr(1),134(60,70))*/ endstate; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer7.spr(1),125(60,130))*/ state /*#E*/ ForcedWait; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer7.spr(1),122(45,150))*/ input /*#E*/ approveRead(stuffRead); /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer7.spr(1),119(40,170))*/ task {/*#E*/ set(NOW+theseTimes, coolTimes);}; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer7.spr(1),116(60,195))*/ nextstate /*#E*/ SiDLing; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer7.spr(1),125(60,130))*/ endstate; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer7.spr,4)*/ endprocess Consumer7; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer8.spr,4)*/ process Consumer8; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer8.spr(1),143(140,10))*/ TIMER coolTimes; DCL theseTimes DURATION, stuffRead Integer, myID Integer, mahPID PId; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer8.spr(1),140(60,15))*/ start /*#E*/ ; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer8.spr(1),137(40,35))*/ task {/*#E*/ mahPID:=SELF; stuffRead:=0; myID:=8; theseTimes:=1721; set(NOW+theseTimes, coolTimes);}; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer8.spr(1),134(60,70))*/ nextstate /*#E*/ SiDLing; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer8.spr(1),134(60,70))*/ state /*#E*/ SiDLing; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer8.spr(1),131(60,90))*/ input /*#E*/ coolTimes; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer8.spr(1),128(45,110))*/ output /*#E*/ requestRead(myID,mahPID); /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer8.spr(1),125(60,130))*/ nextstate /*#E*/ ForcedWait; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer8.spr(1),134(60,70))*/ endstate; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer8.spr(1),125(60,130))*/ state /*#E*/ ForcedWait; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer8.spr(1),122(45,150))*/ input /*#E*/ approveRead(stuffRead); /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer8.spr(1),119(40,170))*/ task {/*#E*/ set(NOW+theseTimes, coolTimes);}; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer8.spr(1),116(60,195))*/ nextstate /*#E*/ SiDLing; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer8.spr(1),125(60,130))*/ endstate; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer8.spr,4)*/ endprocess Consumer8; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer9.spr,4)*/ process Consumer9; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer9.spr(1),143(140,10))*/ TIMER coolTimes; DCL theseTimes DURATION, stuffRead Integer, myID Integer, mahPID PId; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer9.spr(1),140(60,15))*/ start /*#E*/ ; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer9.spr(1),137(40,35))*/ task {/*#E*/ mahPID:=SELF; stuffRead:=0; myID:=9; theseTimes:=1520; set(NOW+theseTimes, coolTimes);}; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer9.spr(1),134(60,70))*/ nextstate /*#E*/ SiDLing; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer9.spr(1),134(60,70))*/ state /*#E*/ SiDLing; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer9.spr(1),131(60,90))*/ input /*#E*/ coolTimes; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer9.spr(1),128(45,110))*/ output /*#E*/ requestRead(myID,mahPID); /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer9.spr(1),125(60,130))*/ nextstate /*#E*/ ForcedWait; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer9.spr(1),134(60,70))*/ endstate; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer9.spr(1),125(60,130))*/ state /*#E*/ ForcedWait; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer9.spr(1),122(45,150))*/ input /*#E*/ approveRead(stuffRead); /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer9.spr(1),119(40,170))*/ task {/*#E*/ set(NOW+theseTimes, coolTimes);}; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer9.spr(1),116(60,195))*/ nextstate /*#E*/ SiDLing; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer9.spr(1),125(60,130))*/ endstate; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer9.spr,4)*/ endprocess Consumer9; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer10.spr,4)*/ process Consumer10; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer10.spr(1),143(140,10))*/ TIMER coolTimes; DCL theseTimes DURATION, stuffRead Integer, myID Integer, mahPID PId; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer10.spr(1),140(60,15))*/ start /*#E*/ ; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer10.spr(1),137(40,35))*/ task {/*#E*/ mahPID:=SELF; stuffRead:=0; myID:=10; theseTimes:=2000; set(NOW+theseTimes, coolTimes);}; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer10.spr(1),134(60,70))*/ nextstate /*#E*/ SiDLing; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer10.spr(1),134(60,70))*/ state /*#E*/ SiDLing; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer10.spr(1),131(60,90))*/ input /*#E*/ coolTimes; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer10.spr(1),128(45,110))*/ output /*#E*/ requestRead(myID,mahPID); /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer10.spr(1),125(60,130))*/ nextstate /*#E*/ ForcedWait; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer10.spr(1),134(60,70))*/ endstate; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer10.spr(1),125(60,130))*/ state /*#E*/ ForcedWait; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer10.spr(1),122(45,150))*/ input /*#E*/ approveRead(stuffRead); /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer10.spr(1),119(40,170))*/ task {/*#E*/ set(NOW+theseTimes, coolTimes);}; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer10.spr(1),116(60,195))*/ nextstate /*#E*/ SiDLing; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer10.spr(1),125(60,130))*/ endstate; /*#SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer10.spr,4)*/ endprocess Consumer10;