Top 10 List of Week 07

  1. About Synchronization
    Process is categorized into two types on the basis of synchronization, independent process and cooperative process. Process synchronization is the task phenomenon of coordinating the execution of processes in such a way that no two processes can have access to the same shared data and resources. This article explains the topic in short paragraphs that’s easy to digest.

  2. What are Semaphores?
    Semaphores are integer variables that are used to solve the critical section problem by using two atomic operations, wait and signal that are used for process synchronization. The article provides an example and brief explanations about the concept, quite a good read.

  3. Monitors vs. Semaphores
    Monitors and semaphores are used for process synchronization and allow processes to access the shared resources using mutual exclusion. However, only one process can be active in a monitor at a time. This article concisely shows the distinction between the two in details.

  4. What’s a Deadlock?
    Deadlock is a situation where a set of processes are blocked because each process is holding a resource and waiting for another resource acquired by some other process. As always, articles from geeksforgeeks explains concepts in a clear way. It even includes some exercises to test understanding about the concept.

  5. Race Conditions and Deadlocks
    A race condition occurs when two threads access a shared variable at the same time. The first thread reads the variable, and the second thread reads the same value from the variable. The article is very thorough on its explanation.

  6. Deadlock and Starvation
    Another one by geeksforgeeks, this one explains about the differences between a deadlock and starvation very clearly. It includes a convenient table that lists the distinction between the two.

  7. Deadlock Prevention
    It turns out, deadlock can be prevented sometimes. This article explains three techniques on preventing deadlocks, namely lock ordering, lock timeout, and deadlock detection. Examples are included.

  8. Detection Algorithm
    I looked up more about deadlock detection from the previous link and found an algorithm for it. Deadlock Detection Algorithm helps decide if in scenario of multi instance resources for various processes are in deadlock or not. The article offers an example and an explanation of the deadlock detection algorithm.

  9. Banker’s Algorithm
    Turns out, there are more algorithms related to deadlock prevention. I find the name banker’s algorithm to be interesting. Turns out, it is named so because it is used in banking system to check whether loan can be sanctioned to a person or not. The algorithm’s behavior mimics that of a banker.

  10. How to Recover from Deadlocks
    When a deadlock is detected, the system must recover from the deadlock. There are two approaches: process termination and resource preemption. This article explains briefly about the two approaches in short paragraphs that are easy to understand.