System models

Architectural models #

Architectural models define functions of components and how they interact (cummunication).

Examples:

  • Producer/consumer model
  • Pipeline model (generalization of producer/consumer)
  • Client/server model
  • Peer-to-peer model

Fundamental models #

Abstracts views of system characteristics that affect correctness, reliability and security

  • Interaction models
    • Synchronous
      • known upper bound on message delay
      • known clock drift
      • upper/lower bounds on the time a process needs to execute a step
    • Asynchronous: no timing assumptions!
  • Failure models
    • Processes: faulty if its behavior deviates from that prescribed by the algorithm, otherwise, it is correct
    • Communication

Two Army Problem #

Questions:

  • Which general leads the attack?
  • At which point in time to attack?

Solutions (under synchronous assumption):

  • No lost messagers (fixed amount possible): select leader on total ordering,
  • If messengers can be captured (i.e. communication failure): use acknowledgements that are periodically send until received