Oogway
Top 10 List of Week 07
Ghifari Aulia Azhar Riza --- Tangsel

Top 10 List of Week 07

  1. Critical Section
    This site explains what is critical section, the characteristic properties of the code that form a Critical Section, and how to avoid critical section.

  2. Peterson’s Solution
    Peterson’s Solution provides a good algorithmic description of solving the critical section problem and illustrates some of the complexities involved in designing software that addresses the requirements of mutual exclusion, progress, and bounded waiting. This site also explains the disadvantages of Peterson’s Solution.

  3. Semaphores
    Semaphore is simply a variable that is non-negative and shared between threads. This variable is used to solve the critical section problem and to achieve process synchronization in the multiprocessing environment. Semaphores has two types: Binary Semaphore and Counting Semaphore. This site has a implementation of semaphore in C++ to help us understand.

  4. Dekker’s Algorithm
    To obtain such a mutual exclusion, bounded waiting, and progress there have been several algorithms implemented, one of which is Dekkers Algorithm.

  5. Mutual Exclusion
    This site explains what is mutual exclusion and mutual exlusion conditions to have a good solution for critical section problem.

  6. Process Synchronization
    Process Synchronization is the task of coordinating the execution of processes in a way that no two processes can have access to the same shared data and resources. This site explains how process synchronization works.

  7. Bakery Algorithm
    The Bakery algorithm is one of the simplest known solutions to the mutual exclusion problem for the general case of N process. Bakery Algorithm is a critical section solution for N processes. The algorithm preserves the first come first serve property.

  8. Achieving Mutual Exclusion
    This site explains how to achieve mutual exclusion. Such as Disabling Interrupts, Lock Variable, and Strict Alteration.

  9. Sleeping Barber Problem in Process Synchronization
    The analogy is based upon a hypothetical barber shop with one barber. There is a barber shop which has one barber, one barber chair, and n chairs for waiting for customers if there are any to sit on the chair. If there is no customer, then the barber sleeps in his own chair. When a customer arrives, he has to wake up the barber. If there are many customers and the barber is cutting a customer’s hair, then the remaining customers either wait if there are empty chairs in the waiting room or they leave if no chairs are empty. If you want to know the solution check the website :).

  10. Monitors in Process Synchronization
    The monitor is one of the ways to achieve Process synchronization. The monitor is supported by programming languages to achieve mutual exclusion between processes. For example Java Synchronized methods. Java provides wait() and notify() constructs.