Top 10 List of Week 07

  1. Process Synchronization
    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. Process Synchronization is divied into two types, Independent Processes and Cooperative Processes.

  2. Semaphores in Process Synchronization
    The first time I heard there was a semaphore in Operating Systems, I thought it was like semaphores taught in scouts, not quite the same though. Anyway, semaphores in operating systems was first introduced by Djikstra, a technique to manage concurrent processes by using a simple integer value. There are two types of semaphore, Binary and Counting, both are a variable that is non-negative and shared between threads.

  3. Race Condition
    Race condition is a condition where two or more operations are performed at the same time, accessing the same memory. This occurs at critical section.

  4. Introduction of Deadlock in Operating System
    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. There are some excercises here in the link.

  5. Monitors vs Semaphores
    Both Monitors and Semaphores are used for process synchronization, with many differences. There are some example codes in the link to help understand the differences.

  6. Recovery from Deadlock in Operating System
    Previously mentioned that deadlock can happen in operating systems. There are two approaches of breaking a deadlock, Process Termination and Resource Preemption.

  7. Peterson’s Algorithm in Process Synchronization
    Peterson’s Algorithm is usually used to synchronize two processes as producers and consumers shares one heap memory. This article clearly explains and have some code examples.

  8. Banker’s Algorithm in Operating System
    In short, Banker’s Algorithm is used as a deadlock avoidance algorithm. It uses allocation simulation for allocations and deciding whether the allocation should be allowed to continue.

  9. Deadlock Detection Algorithm in Operating System
    This algorithm is different from Banker’s Algorithm. This helps decide if in scenario of multi instance resources for various processes are in deadlock or not. There are steps on creating the said algorithm.

  10. Starvation and Aging in Operating System
    Starvation or indefinite blocking is phenomenon associated with the Priority scheduling algorithms, in which a process ready to run for CPU can wait indefinitely because of low priority. Aging is a technique of gradually increasing the priority of processes that wait in the system for a long time. Note that Deadlock and Stavation differs.