concurrent state machinesclasses.engr.oregonstate.edu › eecs › winter2018 › cs447 › lectures...

47
Concurrent State Machines CS 447– Wireless Embedded Systems

Upload: others

Post on 28-Jun-2020

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Concurrent State Machinesclasses.engr.oregonstate.edu › eecs › winter2018 › cs447 › lectures › lecture_08.pdfOutline •Overview •Side-by-side synchronous •Side-by-side

ConcurrentStateMachines

CS447– WirelessEmbeddedSystems

Page 2: Concurrent State Machinesclasses.engr.oregonstate.edu › eecs › winter2018 › cs447 › lectures › lecture_08.pdfOutline •Overview •Side-by-side synchronous •Side-by-side

Outline

• Overview• Side-by-sidesynchronous• Side-by-sideasynchronous• Sharedvariables• Cascadescomposition• Generalcomposition

January26,20181

Page 3: Concurrent State Machinesclasses.engr.oregonstate.edu › eecs › winter2018 › cs447 › lectures › lecture_08.pdfOutline •Overview •Side-by-side synchronous •Side-by-side

Overview

• Statemachinesaregreatwaytomodelsystems

• Problem:forinterestingsystems,numberofstatesislarge

January26,20182

Page 4: Concurrent State Machinesclasses.engr.oregonstate.edu › eecs › winter2018 › cs447 › lectures › lecture_08.pdfOutline •Overview •Side-by-side synchronous •Side-by-side

Overview

• Time-honoredpracticeinengineering:complicatedsystemsdescribeascomposition ofsimplerones

Jargon:• Syntax– rulesofmodelnotation• Semantics–meaningofnotation(seethislater)

January26,20183

Page 5: Concurrent State Machinesclasses.engr.oregonstate.edu › eecs › winter2018 › cs447 › lectures › lecture_08.pdfOutline •Overview •Side-by-side synchronous •Side-by-side

Overview

E.g.,useanactormodelforanextendedstatemachine• Twoinputs• Twooutputs• “don’tcare”aboutinternals• Abstraction..

January26,20184

Page 6: Concurrent State Machinesclasses.engr.oregonstate.edu › eecs › winter2018 › cs447 › lectures › lecture_08.pdfOutline •Overview •Side-by-side synchronous •Side-by-side

Overview

Twocompositiontechniques:

• Concurrentcomposition(today’slecture)

• Hierarchicalcomposition(nextlecture)

January26,20185

Page 7: Concurrent State Machinesclasses.engr.oregonstate.edu › eecs › winter2018 › cs447 › lectures › lecture_08.pdfOutline •Overview •Side-by-side synchronous •Side-by-side

Overview

Concurrentcomposition• Twoormorestatemachinesthatreactsimultaneously orindependently

• Synchronouscomposition – reactionsaresimultaneous• Asynchronouscomposition – reactionsareindependent

January26,20186

Page 8: Concurrent State Machinesclasses.engr.oregonstate.edu › eecs › winter2018 › cs447 › lectures › lecture_08.pdfOutline •Overview •Side-by-side synchronous •Side-by-side

Overview

Concurrentcomposition

• Beginw/simplestcase:side-by-sidecomposition

• Composedstatemachineseither:• Donotcommunicatedirectly• Communicateviasharedvariables• Communicateviaports(e.g.,serial)

January26,20187

Page 9: Concurrent State Machinesclasses.engr.oregonstate.edu › eecs › winter2018 › cs447 › lectures › lecture_08.pdfOutline •Overview •Side-by-side synchronous •Side-by-side

Outline

• Overview• Side-by-sidesynchronous• Side-by-sideasynchronous• Sharedvariables• Cascadescomposition• Generalcomposition

January26,20188

Page 10: Concurrent State Machinesclasses.engr.oregonstate.edu › eecs › winter2018 › cs447 › lectures › lecture_08.pdfOutline •Overview •Side-by-side synchronous •Side-by-side

Side-by-SideSynchronousComposition

• Inputsandoutputsaredisjoint• Statemachinesdonotcommunicate• A:inputi1,outputo1• B:inputi2,outputo2

• IfA,Bareextendedstatemachines,thenvariablesdisjointaswell

January26,20189

Page 11: Concurrent State Machinesclasses.engr.oregonstate.edu › eecs › winter2018 › cs447 › lectures › lecture_08.pdfOutline •Overview •Side-by-side synchronous •Side-by-side

Side-by-SideSynchronousComposition

• C:compositionoftwoactors• Twoinputs(i1,i2)• Twooutputs(o1,o2)

January26,201810

Page 12: Concurrent State Machinesclasses.engr.oregonstate.edu › eecs › winter2018 › cs447 › lectures › lecture_08.pdfOutline •Overview •Side-by-side synchronous •Side-by-side

Side-by-SideSynchronousComposition

Synchronouscomposition:• ReactionofCissimultaneousreactionofAandB

January26,201811

Page 13: Concurrent State Machinesclasses.engr.oregonstate.edu › eecs › winter2018 › cs447 › lectures › lecture_08.pdfOutline •Overview •Side-by-side synchronous •Side-by-side

Side-by-SideSynchronousComposition

Whatdoesthismachinedo?

January26,201812

Page 14: Concurrent State Machinesclasses.engr.oregonstate.edu › eecs › winter2018 › cs447 › lectures › lecture_08.pdfOutline •Overview •Side-by-side synchronous •Side-by-side

Side-by-SideSynchronousComposition

Cactslikeanoscillator:outputis“bababababa…”

January26,201813

Remember: A, B are simultaneous

Page 15: Concurrent State Machinesclasses.engr.oregonstate.edu › eecs › winter2018 › cs447 › lectures › lecture_08.pdfOutline •Overview •Side-by-side synchronous •Side-by-side

Side-by-SideSynchronousComposition

CanmachineCeverreachstate(s1,s4)?Whatabout(s2,s3)?

January26,201814

Page 16: Concurrent State Machinesclasses.engr.oregonstate.edu › eecs › winter2018 › cs447 › lectures › lecture_08.pdfOutline •Overview •Side-by-side synchronous •Side-by-side

Side-by-SideSynchronousComposition

SbS synchronousmachinesare:• Modular• Deterministic• Compositional

January26,201815

Page 17: Concurrent State Machinesclasses.engr.oregonstate.edu › eecs › winter2018 › cs447 › lectures › lecture_08.pdfOutline •Overview •Side-by-side synchronous •Side-by-side

Side-by-SideSynchronousComposition

Modular – compositionitselfcanbeusedasanatomiccomponent

January26,201816

Page 18: Concurrent State Machinesclasses.engr.oregonstate.edu › eecs › winter2018 › cs447 › lectures › lecture_08.pdfOutline •Overview •Side-by-side synchronous •Side-by-side

Side-by-SideSynchronousComposition

Deterministic– IfAandBarebothdeterministic,Cisaswell

January26,201817

Page 19: Concurrent State Machinesclasses.engr.oregonstate.edu › eecs › winter2018 › cs447 › lectures › lecture_08.pdfOutline •Overview •Side-by-side synchronous •Side-by-side

Side-by-SideSynchronousComposition

Compositional– propertyheldbycomponentsisalsopropertyofcomposition

• E.g.,determinismisacompositionalproperty

January26,201818

Page 20: Concurrent State Machinesclasses.engr.oregonstate.edu › eecs › winter2018 › cs447 › lectures › lecture_08.pdfOutline •Overview •Side-by-side synchronous •Side-by-side

Side-by-SideSynchronousComposition

NOTE:previousexamplecanbedrawnassinglestatemachine

January26,201819

Page 21: Concurrent State Machinesclasses.engr.oregonstate.edu › eecs › winter2018 › cs447 › lectures › lecture_08.pdfOutline •Overview •Side-by-side synchronous •Side-by-side

Outline

• Overview• Side-by-sidesynchronous• Side-by-sideasynchronous• Sharedvariables• Cascadescomposition• Generalcomposition

January26,201820

Page 22: Concurrent State Machinesclasses.engr.oregonstate.edu › eecs › winter2018 › cs447 › lectures › lecture_08.pdfOutline •Overview •Side-by-side synchronous •Side-by-side

Side-by-SideAsynchronousComposition

Asynchronouscomposition:• Components(A,B)reactindependently

January26,201821

Page 23: Concurrent State Machinesclasses.engr.oregonstate.edu › eecs › winter2018 › cs447 › lectures › lecture_08.pdfOutline •Overview •Side-by-side synchronous •Side-by-side

Side-by-SideAsynchronousComposition

Semantics#1• ReactionofCisreactionofAor B (justone)• A,Bneverreactsimultaneously (theyareinterleaved)• ChoiceofAvs.Bisnondeterministic

January26,201822

Page 24: Concurrent State Machinesclasses.engr.oregonstate.edu › eecs › winter2018 › cs447 › lectures › lecture_08.pdfOutline •Overview •Side-by-side synchronous •Side-by-side

Side-by-SideAsynchronousComposition

Semantics#2• ReactionofCisreactionofA,B orboth• Choiceisnondeterministic

January26,201823

Page 25: Concurrent State Machinesclasses.engr.oregonstate.edu › eecs › winter2018 › cs447 › lectures › lecture_08.pdfOutline •Overview •Side-by-side synchronous •Side-by-side

Side-by-SideAsynchronousComposition

PreviousexampledmodeledasasynchronousSBS..

January26,201824

red arrows mark nondeterminism

Page 26: Concurrent State Machinesclasses.engr.oregonstate.edu › eecs › winter2018 › cs447 › lectures › lecture_08.pdfOutline •Overview •Side-by-side synchronous •Side-by-side

Side-by-SideAsynchronousComposition

Undersemantics#1• Cin(s1,s3)• Creacts• Cmovesto(s1,s4),emitsb• OR:Cmovesto(s2,s3),emits∅

January26,201825

Page 27: Concurrent State Machinesclasses.engr.oregonstate.edu › eecs › winter2018 › cs447 › lectures › lecture_08.pdfOutline •Overview •Side-by-side synchronous •Side-by-side

Side-by-SideAsynchronousComposition

Undersemantics#2• Cin(s1,s3)• Creacts• Couldalsomoveto(s2,s4)• Couldalsooutput∅b ORb∅

January26,201826

Page 28: Concurrent State Machinesclasses.engr.oregonstate.edu › eecs › winter2018 › cs447 › lectures › lecture_08.pdfOutline •Overview •Side-by-side synchronous •Side-by-side

Side-by-SideAsynchronousComposition

Takehomepoint:asynchronouscompositioncanbetreacherous

• Youmustbeclearaboutsemantics• E.g.,AmustalwayscomebeforeB

January26,201827

Page 29: Concurrent State Machinesclasses.engr.oregonstate.edu › eecs › winter2018 › cs447 › lectures › lecture_08.pdfOutline •Overview •Side-by-side synchronous •Side-by-side

Outline

• Overview• Side-by-sidesynchronous• Side-by-sideasynchronous• Sharedvariables• Cascadescomposition• Generalcomposition

January26,201828

Page 30: Concurrent State Machinesclasses.engr.oregonstate.edu › eecs › winter2018 › cs447 › lectures › lecture_08.pdfOutline •Overview •Side-by-side synchronous •Side-by-side

SharedVariables

• Extendedstatemachineshavelocalvariables• Variablesread/writtenduringtransitions

Whencomposingstatemachines:• Helpfultoallowsharedvariablesamongmachines• Canbeusedtomodelinterruptsandthreads

January26,201829

Page 31: Concurrent State Machinesclasses.engr.oregonstate.edu › eecs › winter2018 › cs447 › lectures › lecture_08.pdfOutline •Overview •Side-by-side synchronous •Side-by-side

SharedVariables

E.g.,twoserversreceivingnetworkrequests

• Sharedvariable“pending”integerthatcountsjobs

• WhenrequestarrivestocompositionmachineC,oneoftwoserverschosennon-deterministically• Assumesasynchronouscompositionundersemantics#1• I.e.,mutualexclusion

January26,201830

Page 32: Concurrent State Machinesclasses.engr.oregonstate.edu › eecs › winter2018 › cs447 › lectures › lecture_08.pdfOutline •Overview •Side-by-side synchronous •Side-by-side

SharedVariables

E.g.,twoserversreceivingnetworkrequests

Whenrequestarrives:• Ifserveridle,proceedstoserverequest• Ifserverbusy:• Coincidentallyfinishservingcurrent,outputdone,proceedtonew

-OR-

• Incrementcountofpending• Continueservingcurrent

January26,201831

Page 33: Concurrent State Machinesclasses.engr.oregonstate.edu › eecs › winter2018 › cs447 › lectures › lecture_08.pdfOutline •Overview •Side-by-side synchronous •Side-by-side

SharedVariables

January26,201832

Page 34: Concurrent State Machinesclasses.engr.oregonstate.edu › eecs › winter2018 › cs447 › lectures › lecture_08.pdfOutline •Overview •Side-by-side synchronous •Side-by-side

SharedVariables

Exampleshowssubtletiesofconcurrentsystems(1)

• Interleavingsemantics(#1):accesstoshared“pending”aremodeledasatomic

• Thiscanbechallengingtodoinpractice

January26,201833

Page 35: Concurrent State Machinesclasses.engr.oregonstate.edu › eecs › winter2018 › cs447 › lectures › lecture_08.pdfOutline •Overview •Side-by-side synchronous •Side-by-side

SharedVariables

Exampleshowssubtletiesofconcurrentsystems(2)

• Semantics#1seemsreasonable• Butcouldleadtoidlemachines…

E.g.,whatifmachineAisserving,Bisidle,requestarrives• ButAispickednondeterministically(=>pending++)• Bneverused…

InSemantics#1,thisispossible.

January26,201834

Page 36: Concurrent State Machinesclasses.engr.oregonstate.edu › eecs › winter2018 › cs447 › lectures › lecture_08.pdfOutline •Overview •Side-by-side synchronous •Side-by-side

SharedVariables

Exampleshowssubtletiesofconcurrentsystems(3)

• Semantics#2alsoreasonable(“simultaneous”execution)

• Butrequiresupdating“pending”inanatomicmanner

• Thiscanbemorechallengingtoimplement..

January26,201835

Page 37: Concurrent State Machinesclasses.engr.oregonstate.edu › eecs › winter2018 › cs447 › lectures › lecture_08.pdfOutline •Overview •Side-by-side synchronous •Side-by-side

SharedVariables

Whataboutsharedvariablesinsynchronouscomposition?

• WritefromAbeforereadingfromB?• ReadfromBbeforewritingfromA?• Mustmorechallenging!

• Mustuseinterleavedsemantics(i.e.,scheduling)

January26,201836

Page 38: Concurrent State Machinesclasses.engr.oregonstate.edu › eecs › winter2018 › cs447 › lectures › lecture_08.pdfOutline •Overview •Side-by-side synchronous •Side-by-side

Outline

• Overview• Side-by-sidesynchronous• Side-by-sideasynchronous• Sharedvariables• Cascadescomposition• Generalcomposition

January26,201837

Page 39: Concurrent State Machinesclasses.engr.oregonstate.edu › eecs › winter2018 › cs447 › lectures › lecture_08.pdfOutline •Overview •Side-by-side synchronous •Side-by-side

CascadesComposition(akaSerialComposition)

• Twomachines(A,B)composedinseries:

• OutputofAisinputtoB

January26,201838

Page 40: Concurrent State Machinesclasses.engr.oregonstate.edu › eecs › winter2018 › cs447 › lectures › lecture_08.pdfOutline •Overview •Side-by-side synchronous •Side-by-side

CascadesComposition(akaSerialComposition)

• Consideronlysynchronouscomposition• Asynchronouscompositionwouldrequirebuffering

January26,201839

Page 41: Concurrent State Machinesclasses.engr.oregonstate.edu › eecs › winter2018 › cs447 › lectures › lecture_08.pdfOutline •Overview •Side-by-side synchronous •Side-by-side

CascadesComposition(akaSerialComposition)

• ReactionofCisreactionofAandB• Areactsfirst,thenB• Weassumethisoccursinstantly(inzerotime)• Tworeactions(A,B)aresimultaneousandinstantaneous

January26,201840

Page 42: Concurrent State Machinesclasses.engr.oregonstate.edu › eecs › winter2018 › cs447 › lectures › lecture_08.pdfOutline •Overview •Side-by-side synchronous •Side-by-side

CascadesComposition(akaSerialComposition)

Example(remember,transitionsaresimultaneous!)• WhendoesmachineC output“c”?

January26,201841

Page 43: Concurrent State Machinesclasses.engr.oregonstate.edu › eecs › winter2018 › cs447 › lectures › lecture_08.pdfOutline •Overview •Side-by-side synchronous •Side-by-side

January26,201842

Equivalent machine:

Page 44: Concurrent State Machinesclasses.engr.oregonstate.edu › eecs › winter2018 › cs447 › lectures › lecture_08.pdfOutline •Overview •Side-by-side synchronous •Side-by-side

CascadesComposition(akaSerialComposition)

Anotherexample:modifytrafficlightmodeltoincludepedestrianlightaswell.

• Cascadescomposition:turnonREDlight=>turnon”walk”• Causal..

January26,201843

Page 45: Concurrent State Machinesclasses.engr.oregonstate.edu › eecs › winter2018 › cs447 › lectures › lecture_08.pdfOutline •Overview •Side-by-side synchronous •Side-by-side

Outline

• Overview• Side-by-sidesynchronous• Side-by-sideasynchronous• Sharedvariables• Cascadescomposition• Generalcomposition

January26,201844

Page 46: Concurrent State Machinesclasses.engr.oregonstate.edu › eecs › winter2018 › cs447 › lectures › lecture_08.pdfOutline •Overview •Side-by-side synchronous •Side-by-side

GeneralComposition

• Side-by-sideandcascadescompositionprovidebasicbuildingblocks.• Thesemodelscanbecombined:e.g.,

January26,201845

Page 47: Concurrent State Machinesclasses.engr.oregonstate.edu › eecs › winter2018 › cs447 › lectures › lecture_08.pdfOutline •Overview •Side-by-side synchronous •Side-by-side

GeneralComposition

• A1,A3areside-by-side(defineB)• B,A2arecascadescompositioninoppositeorder(feedback)• Question:whichmachineshouldreactfirst?

January26,201846