Introduction
Imagine a situation where several tasks in a system wait for each other to finish, but none can move forward. This problem causes the entire system to stop making progress, creating a freeze. Understanding why this happens helps us design systems that avoid getting stuck.