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!
- Synchronous
- 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