concurrent state machinesclasses.engr.oregonstate.edu › eecs › winter2018 › cs447 › lectures...
TRANSCRIPT
ConcurrentStateMachines
CS447– WirelessEmbeddedSystems
Outline
• Overview• Side-by-sidesynchronous• Side-by-sideasynchronous• Sharedvariables• Cascadescomposition• Generalcomposition
January26,20181
Overview
• Statemachinesaregreatwaytomodelsystems
• Problem:forinterestingsystems,numberofstatesislarge
January26,20182
Overview
• Time-honoredpracticeinengineering:complicatedsystemsdescribeascomposition ofsimplerones
Jargon:• Syntax– rulesofmodelnotation• Semantics–meaningofnotation(seethislater)
January26,20183
Overview
E.g.,useanactormodelforanextendedstatemachine• Twoinputs• Twooutputs• “don’tcare”aboutinternals• Abstraction..
January26,20184
Overview
Twocompositiontechniques:
• Concurrentcomposition(today’slecture)
• Hierarchicalcomposition(nextlecture)
January26,20185
Overview
Concurrentcomposition• Twoormorestatemachinesthatreactsimultaneously orindependently
• Synchronouscomposition – reactionsaresimultaneous• Asynchronouscomposition – reactionsareindependent
January26,20186
Overview
Concurrentcomposition
• Beginw/simplestcase:side-by-sidecomposition
• Composedstatemachineseither:• Donotcommunicatedirectly• Communicateviasharedvariables• Communicateviaports(e.g.,serial)
January26,20187
Outline
• Overview• Side-by-sidesynchronous• Side-by-sideasynchronous• Sharedvariables• Cascadescomposition• Generalcomposition
January26,20188
Side-by-SideSynchronousComposition
• Inputsandoutputsaredisjoint• Statemachinesdonotcommunicate• A:inputi1,outputo1• B:inputi2,outputo2
• IfA,Bareextendedstatemachines,thenvariablesdisjointaswell
January26,20189
Side-by-SideSynchronousComposition
• C:compositionoftwoactors• Twoinputs(i1,i2)• Twooutputs(o1,o2)
January26,201810
Side-by-SideSynchronousComposition
Synchronouscomposition:• ReactionofCissimultaneousreactionofAandB
January26,201811
Side-by-SideSynchronousComposition
Whatdoesthismachinedo?
January26,201812
Side-by-SideSynchronousComposition
Cactslikeanoscillator:outputis“bababababa…”
January26,201813
Remember: A, B are simultaneous
Side-by-SideSynchronousComposition
CanmachineCeverreachstate(s1,s4)?Whatabout(s2,s3)?
January26,201814
Side-by-SideSynchronousComposition
SbS synchronousmachinesare:• Modular• Deterministic• Compositional
January26,201815
Side-by-SideSynchronousComposition
Modular – compositionitselfcanbeusedasanatomiccomponent
January26,201816
Side-by-SideSynchronousComposition
Deterministic– IfAandBarebothdeterministic,Cisaswell
January26,201817
Side-by-SideSynchronousComposition
Compositional– propertyheldbycomponentsisalsopropertyofcomposition
• E.g.,determinismisacompositionalproperty
January26,201818
Side-by-SideSynchronousComposition
NOTE:previousexamplecanbedrawnassinglestatemachine
January26,201819
Outline
• Overview• Side-by-sidesynchronous• Side-by-sideasynchronous• Sharedvariables• Cascadescomposition• Generalcomposition
January26,201820
Side-by-SideAsynchronousComposition
Asynchronouscomposition:• Components(A,B)reactindependently
January26,201821
Side-by-SideAsynchronousComposition
Semantics#1• ReactionofCisreactionofAor B (justone)• A,Bneverreactsimultaneously (theyareinterleaved)• ChoiceofAvs.Bisnondeterministic
January26,201822
Side-by-SideAsynchronousComposition
Semantics#2• ReactionofCisreactionofA,B orboth• Choiceisnondeterministic
January26,201823
Side-by-SideAsynchronousComposition
PreviousexampledmodeledasasynchronousSBS..
January26,201824
red arrows mark nondeterminism
Side-by-SideAsynchronousComposition
Undersemantics#1• Cin(s1,s3)• Creacts• Cmovesto(s1,s4),emitsb• OR:Cmovesto(s2,s3),emits∅
January26,201825
Side-by-SideAsynchronousComposition
Undersemantics#2• Cin(s1,s3)• Creacts• Couldalsomoveto(s2,s4)• Couldalsooutput∅b ORb∅
January26,201826
Side-by-SideAsynchronousComposition
Takehomepoint:asynchronouscompositioncanbetreacherous
• Youmustbeclearaboutsemantics• E.g.,AmustalwayscomebeforeB
January26,201827
Outline
• Overview• Side-by-sidesynchronous• Side-by-sideasynchronous• Sharedvariables• Cascadescomposition• Generalcomposition
January26,201828
SharedVariables
• Extendedstatemachineshavelocalvariables• Variablesread/writtenduringtransitions
Whencomposingstatemachines:• Helpfultoallowsharedvariablesamongmachines• Canbeusedtomodelinterruptsandthreads
January26,201829
SharedVariables
E.g.,twoserversreceivingnetworkrequests
• Sharedvariable“pending”integerthatcountsjobs
• WhenrequestarrivestocompositionmachineC,oneoftwoserverschosennon-deterministically• Assumesasynchronouscompositionundersemantics#1• I.e.,mutualexclusion
January26,201830
SharedVariables
E.g.,twoserversreceivingnetworkrequests
Whenrequestarrives:• Ifserveridle,proceedstoserverequest• Ifserverbusy:• Coincidentallyfinishservingcurrent,outputdone,proceedtonew
-OR-
• Incrementcountofpending• Continueservingcurrent
January26,201831
SharedVariables
January26,201832
SharedVariables
Exampleshowssubtletiesofconcurrentsystems(1)
• Interleavingsemantics(#1):accesstoshared“pending”aremodeledasatomic
• Thiscanbechallengingtodoinpractice
January26,201833
SharedVariables
Exampleshowssubtletiesofconcurrentsystems(2)
• Semantics#1seemsreasonable• Butcouldleadtoidlemachines…
E.g.,whatifmachineAisserving,Bisidle,requestarrives• ButAispickednondeterministically(=>pending++)• Bneverused…
InSemantics#1,thisispossible.
January26,201834
SharedVariables
Exampleshowssubtletiesofconcurrentsystems(3)
• Semantics#2alsoreasonable(“simultaneous”execution)
• Butrequiresupdating“pending”inanatomicmanner
• Thiscanbemorechallengingtoimplement..
January26,201835
SharedVariables
Whataboutsharedvariablesinsynchronouscomposition?
• WritefromAbeforereadingfromB?• ReadfromBbeforewritingfromA?• Mustmorechallenging!
• Mustuseinterleavedsemantics(i.e.,scheduling)
January26,201836
Outline
• Overview• Side-by-sidesynchronous• Side-by-sideasynchronous• Sharedvariables• Cascadescomposition• Generalcomposition
January26,201837
CascadesComposition(akaSerialComposition)
• Twomachines(A,B)composedinseries:
• OutputofAisinputtoB
January26,201838
CascadesComposition(akaSerialComposition)
• Consideronlysynchronouscomposition• Asynchronouscompositionwouldrequirebuffering
January26,201839
CascadesComposition(akaSerialComposition)
• ReactionofCisreactionofAandB• Areactsfirst,thenB• Weassumethisoccursinstantly(inzerotime)• Tworeactions(A,B)aresimultaneousandinstantaneous
January26,201840
CascadesComposition(akaSerialComposition)
Example(remember,transitionsaresimultaneous!)• WhendoesmachineC output“c”?
January26,201841
January26,201842
Equivalent machine:
CascadesComposition(akaSerialComposition)
Anotherexample:modifytrafficlightmodeltoincludepedestrianlightaswell.
• Cascadescomposition:turnonREDlight=>turnon”walk”• Causal..
January26,201843
Outline
• Overview• Side-by-sidesynchronous• Side-by-sideasynchronous• Sharedvariables• Cascadescomposition• Generalcomposition
January26,201844
GeneralComposition
• Side-by-sideandcascadescompositionprovidebasicbuildingblocks.• Thesemodelscanbecombined:e.g.,
January26,201845
GeneralComposition
• A1,A3areside-by-side(defineB)• B,A2arecascadescompositioninoppositeorder(feedback)• Question:whichmachineshouldreactfirst?
January26,201846