1. Consider the airport simulator discussed in class (also described in the textbook). Extend this simulator to include queueing of aircraft departing from the airport. Assume the airport still has only a single runway that is used for both arriving and departing aircraft. Specifically, when an aircraft leaves the gate area, it must wait until the runway is available before it can depart. Each departing aircraft uses the runway for D units of time. If multiple landing and departing aircraft are waiting to use the runway, the runway should be alternated between arriving and departing aircraft, i.e., if the runway was last used by a departing (arriving) aircraft, an arriving (departing) aircraft should be given priority if there are both arriving and departing aircraft waiting to use it. Among departing aircraft, the runway should be used in first-come-first-serve order. To complete this problem: (A) write an event oriented discrete-event simulation of this system, and (B) show the value of all the state variables and the pending event list in your simulation over simulation time, showing when variables are modified. Do this by extending the example presented in class (see lecture notes on the web) using a two-dimensional space-time graph and snap shots of the pending event list. Assume D is equal to 2 units of simulation time, and aircraft arrive at the airport at simulation times 1, 3, and 9.
2. Show a process-oriented simulation program for implementing the simulation described in the first problem. Use the primitives discussed in class (and used in the example) to complete this problem.
3. Consider the WaitUntil(p,t) process-oriented simulation primitive that causes a process to wait t units of simulation time (like AdvanceTime(t)) unless the predicate p becomes true while it is waiting. If p becomes true, the process is “interrupted” and stops waiting at the simulation time when p became true. (A) Using this primitive, extend your simulator for the previous problem to model the following situation: if an aircraft is departing, but an equipment problem occurs while it is using the runway to depart, the aircraft must instead return to the gate and remain there until the end of the simulation. Assume a separate simulation process is used to generate equipment problems. Show both the modified version of your aircraft process, and the code the failure process executes to simulate an equipment failure. (B) Describe how you could implement the WaitUntil(p,t) primitive assuming you can create new primitives for manipulating the pending event list (indicate what new primitives you would need).
1. Consider problem (3) in part I above. Propose an alternative approach to implementing the WaitUntil(p,t) primitive that does not require any new primitives for manipulating the pending event list.
2. Read the paper entitled “Large-scale Process-Oriented Optimistic Parallel Simulation,” Winter Simulation Conference, December 1998 (by Perumalla and Fujimoto) (pdf file). Here, a technique called stack reconstruction is proposed for realizing process-oriented simulation programs. Explain why this method is better suited for realizing process-oriented simulations where processes might migrate among workstations from different manufacturers during the execution of a distributed simulation compared to the conventional approach for implementing processes using threads. Specifically, discuss what problems would need to be addressed to migrate a thread between machine from different manufacturers using conventional threads, and how this issue is addressed with the stack reconstruction mechanism.