Deadlock detection and recovery in Linux

Vinita Sopan Kondhalka · California State University ScholarWorks (system-wide DSpace) · 2012

A deadlock occurs when there is a cyclic dependency between two or more threads, or processes, for some set of resources within operating system environment. A set of processes is deadlocked if each process is waiting for an event that only another process in the set can cause. My thesis aims at creating a tool, which can be used by an application developer for detecting the occurrence of a deadlock. It also helps the developer in analyzing the cause of deadlock, since the project provides him with information, such as the deadlocked processes and the resources causing it. The developer can also view the log file, which is generated by this tool to study the sequence of events, such as locking or unlocking of the resources. The outline of the project is as follows: A wrapper function dd_semop has been developed around the system call semop. An application program has to include a header file libdeadlock.h in order to use this wrapper functionality. A daemon process has also been developed dl_mgmt, which carries out the major functionality for deadlock detection and recovery. The wrapper function communicates with the daemon process, which runs in the background and actually verifies whether a lock can be granted or not and communicates back the possibility of a deadlock. Once the tool provides the output and depending on the users feedback to it, the tool provides a mechanism to continue execution without deadlock. Thus, this research project provides a comprehensible tool to study and manage deadlocks in a Linux flavor known as Fedora. Deadlock is thus a potential problem. Timely detection of deadlock and its cause are essential for resolving the error and maintaining forward progress

Read the paper · More papers on PaperTik