Consider an airport with one runway and twelve gates (G0..G11).
Departing planes leave from one of the gates, join the departure queue
at the runway after taxiing for 3 minutes, and finally when they reach
the head of the queue, take off occupying the runway for 2
minutes. Thus, the departing planes are in one of three positions -
1: at the gate; 2: at the runway queue; and 3: on the runway. If the
departure queue is full, they have to wait at the gate.
Arriving planes occupy the runway for 2 minutes, then take another 3
minutes to reach their gate. If the runway is busy when a plane
arrives, it has to keep circling, but for no more than 15 minutes. If
multiple planes issue arrival requests, they are placed on an arrival
queue. Arriving planes are in one of three positions - 1: circling;
2: on the runway; and 3: at the gate.
Develop a SystemC model to simulate the runway system. Treat all the
numbers used above (2 minutes, etc.) as variable. Assume the arriving
or departing planes issue some signal to the controller when they are
ready to fly/land. Make any reasonable assumptions. Feel free to add
any other features to make the simulation realistic.
Would the runway assignment strategy be different if all the flight
schedules were known in advance (random delays would still need to be
Extend your design to the case where there are 2 or 3 runways. Check
by simulations if it is worth assigning dedicated runways for arriving
and departing flights.