1.1 Related Work
Deadlock detection and resolution techniques have already been
extensively studied in the areas of operating systems and database
systems [5, 17, 12, 16]. In those domains, deadlock prevention is
possible if particular resource allocation policies are applied. Deadlock
avoidance is used as a part of scheduling algorithms to choose
at least one possible execution path where no deadlock will occur.
A resource allocation graph or state graph is usually used to analyze
and identify deadlock situations for deadlock detection. Though it is
possible to incorporate these techniques in a system design to eliminate
deadlocks, they are not general enough to apply to arbitrary
designs due to the design flexibility required by today’s platformbased
embedded system designs. Our deadlock analysis mechanism
is integrated in the design framework (rather than the designs) to
help designers analyze design errors while allowing full design flexibility.