Study Guides (299,474)
CA (140,971)
McMaster (8,843)
SFWRENG (37)
Final

SFWRENG 3BB4 Study Guide - Final Guide: Tuple Space, Chopsticks, LiteracyPremium

10 pages120 viewsWinter 2016

Department
Software Engineering
Course Code
SFWRENG 3BB4
Professor
Tom Maibaum
Study Guide
Final

This preview shows pages 1-3. to view the full 10 pages of the document.
SFWR ENG 3BB4 Summary
Dr. Maibaum
Winter 2015
McMaster University
Primary Author: Kemal Ahmed
This course is about concurrency in systems.
SFWR ENG 3BB4 Summary
e.g.
Action hiding
LTSA
Synchronized
Java
Monitors
Interference
Bounded Buffer
Deadlock
Safety & Liveness property
Progress Properties
Dynamic Systems
Linda
Templates
Tuple Space Model
Timed Systems
Concurrent Sof tware:
Distributed Software:
We represent models of concurrency using finite state machines (a.k.a. FSP).
Threads
active entities because they initiate actions
You're Reading a Preview

Unlock to view full version

Subscribers Only

Only half of the first page are available for preview. Some parts have been intentionally blurred.

Subscribers Only
Opposite of monitors
Sequential process:
Processes: units of sequential execution
Models of Processes:
Finite State Processes (FSP): model processes as sequence of actions in an
algebraic f orm
Labelled Transition Systems (LT S): analyzes, displays, animates behaviour in a
graphical f orm
Labelled Transition Systems Animator (LTSA): a cool program
FSPs follow algebraic rules, such as:
Associativity: order of which operations to perform is sometimes irrelevant
Communitivity: x || y = y || x
Associativity: x || (y || z) = (x || y) || z = (x || z) ||y
State Machine Details:
Colour coding is sometimes used
Blue generally defines arbitrary states
Red generally defines the first state
An arrow without a head is still the standard for the beginning state, like from 2FA3
Arrow is triggered by a condition and
Trace: a possible sequence of actions; there can be multiple traces for a given FSM
Maximal trace:
Action [x]:
Process [P]: processes are ALWAYS CAPITALIZED
(x -> P) : a representation of a process, engaged by an action, x, and does the process, P
e.g.
SWITCH = OFF
You're Reading a Preview

Unlock to view full version

Subscribers Only

Only half of the first page are available for preview. Some parts have been intentionally blurred.

Subscribers Only
OFF = (on -> ON),
ON = (off -> OFF).
SWITCH = OFF,
OFF = (on -> (off -> OFF)).
SWITCH = (on -> off -> SWITCH).
One rule of precedence that allows you to remove brackets is that you execute from Right
to Left
(x -> P | y -> Q) : engages in either the first or second action, depending on the input
that selects it
Concurrency:
Parallelism:
Are there shared actions?
Labels: ( label:Process | e.g. a:P )
Prefix Labels: useful f or modelling shared resources ( {set of prefix
labels}::Process | e.g. {a1,..,ax}::P )
When youre implementing a parallel database, you need to make sure that you dont do half
the re-saving/editing processes before you allow someone else to open the file.
Equivalent: same trace
Action hiding
P = (C -juice-> J,
J -return-> P ) {return}
this hides the return function
Shared Objects
How do you allocate access to a resource among multiple processes?
Mutual Exclusion: when only one process can access a resource at a time
Semaphor
Something that enables access to a resource
You're Reading a Preview

Unlock to view full version

Subscribers Only

Loved by over 2.2 million students

Over 90% improved by at least one letter grade.