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

Post on 28-Jun-2020

6 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

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

top related