The boxes denote the different concurrent processes in this system. The environment of the telephone switch consists of phones A and B. Each one of the phones has a software process in the switch corresponding to it, called the phone handler. Assume that the phones communicate with the phone handlers via message exchanges through a priori unbounded channels, as do the phone handlers amongst each other. The arrows indicate possible messages that can flow between the phones and the phone handlers, and between the phone handlers. Informally, the meaning of these messages is as follows:
We want to focus on an asymmetric call processing system, i.e., only A can call be, and not vice versa. Assume that the system is a layered protocol architecture: the messages exchanged between the switch and the phones correspond to service requests, while the messages exchanged between processes correspond to a protocol in order to provide this service. (Actually, this may be a telephony-over-IP network, and hence the signalling messages between the phones may be exchanged as TCP messages over an IP network.)
- off_h: a phone goes off hook (the receiver is being picked up)
- dial_tone: the switch sends a dial tone to the phone
- dial_B: phone A enters the phone number of B
- audible_ring: phone A hears phone B ringing
- busy: the switch applies a busy signal to the phone
- stop_aud_ring: the switch stops the audible ringing signal
- on_h: a phone goes on_hook - note that either one of the phones can go on hook at any time when it is not already on hook
- ringing: a phone starts ringing
- con_req: one phone handler requests a connection with another phone handler
- con_conf: the other phone handler acknowledges the connection request (B is not busy) and A starts hearing an audible ring tone
- con_establish: B has picked up and the connection is now established
- dis_req: phone handler B requests disconnect from phone handler A
- disconnectAB: phone handler A requests disconnect from phone handler B (Note: in the above Figure there should be an additional arrow labeled "disconnectAB" from phone handler A to phone handler B and a "disconnectBA" arrow in the opposite direction as well as a "busy" arrow from phone handler B to phone B; B will hear a busy tone when A hangs up, as will A if B hangs up)
- Using communicating finite state machines, model the behaviour of the protocol machines in the phones A and B. Say exactly which parts of the formal definition given in class corresponds to which set.
- Add the behaviour of the phones A and B.
- Is any of the communication channels in the system bounded?
- Can you find a deadlock situation in the system?