![]() |
subject > problem > failure > deadlock or livelock > deadlock |
![]() ![]() | ||||
deadlock | ||||
subject | fact |
deadlock | can appear as a hung system where the system is not consuming CPU time | ![]() |
has definition A failure in which two or more threads are stopped, waiting for each other to do something | ![]() | |
has example
| ![]() | |
has example in real life gridlock | ![]() | |
is a subtopic of 10.5 - Defects in Timing and Co-Ordination: Deadlock, Livelocks and Critical Races | ![]() | |
is a kind of deadlock or livelock | ![]() | |
may not hang a system | ![]() | |
deadlock or livelock | can be caused by over-use of locking | ![]() |
can be detected by glass-box testing since you can actually study the progress and states of the various threads | ![]() | |
has black-box testing strategy
| ![]() | |
has testing strategy inspecting to detect such defects, rather than testing alone | ![]() | |
may occur as a result of unusual combinations of conditions that are hard to anticipate or reproduce | ![]() | |
should be tested for by a person with a background in real-time systems who can apply his or her knowledge and experience to best anticipate typical defects | ![]() | |
failure | can be the result of a violation of an implicit requirement | ![]() |
is usually the result of a violation of those requirements that are stated explicitly in a requirements document | ![]() | |
may arise from violations of either functional requirements or non-functional requirements | ![]() | |
problem | has solution which will normally entail developing software, although you may decide that it is better to purchase software or to develop a non-software solution | ![]() |
should be written as a simple problem statement in one or two sentences | ![]() |
Next deadlock or livelock: livelock Up: deadlock or livelock