In this paper, we identify and analyze deadlock problems in the
Metropolis simulation environment. We propose a data structure
called the dynamic synchronization dependency graph (DSDG) that
reflects the runtime blocking dependencies among processes. We
also devise an associated deadlock detection algorithm to monitor
the simulation. The goal of the synchronization dependency analysis
is to help the designer identify the components (e.g. processes and media) and synchronization constructs (e.g. await and synch)
that are causing any deadlock problem and provide an error trace
or a history of dependency snapshots that show how the system arrives
at this state. We use a real world Metropolis design, the resize
component in a picture-in-picture (PiP) video processing system, to
demonstrate the usefulness and effectiveness of the deadlock analysis
approach. We also use a high level mapping model that includes
a functional specification, an abstract architecture model and the
mapping to illustrate how the design problems from the functionarchitecture
mapping can be analyzed.