Top 10 List of Week 07

  1. Process Synchronization
    On the basis of synchronization, processes are categorized as one of the following two types: Independent Process and Cooperative Process. Process synchronization problem arises in the case of Cooperative process also because resources are shared in Cooperative processes.

  2. Petersons Algorithm
    Peterson’s algorithm is a concurrent programming algorithm for mutual exclusion that allows two or more processes to share a single-use resource without conflict, using only shared memory for communication. Petersons Algorithm is used to synchronize two processes. It uses two variables, a bool array flag of size 2 and an int variable turn to accomplish it.

  3. Critical Section
    Critical Section is the part of a program which tries to access shared resources. That resource may be any resource in a computer like a memory location, Data structure, CPU or any IO device. The critical section cannot be executed by more than one process at the same time; operating system faces the difficulties in allowing and disallowing the processes from entering the critical section.

  4. 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.

  5. Dining Philosophers Problem (DPP)
    The dining philosopher is a classic synchronization problem as it demonstrates a large class of concurrency control problems. A solution of the Dining Philosophers Problem is to use a semaphore to represent a chopstick. A chopstick can be picked up by executing a wait operation on the semaphore and released by executing a signal semaphore.

  6. Strategies for handling Deadlock
    Strategies for handling Deadlock:Deadlock Ignorance, Deadlock prevention, Deadlock avoidance, and Deadlock detection and recovery

  7. Semaphore vs Mutex
    Process synchronization plays an important role in maintaining the consistency of shared data. Both the software and hardware solutions are present for handling critical section problem. But hardware solutions for critical section problem are quite difficult to implement. This article will discuss two software based solution to handle critical section problem i.e. Semaphore and Mutex

  8. Bankers Algorithm
    The bankers algorithm is a resource allocation and deadlock avoidance algorithm that tests for safety by simulating the allocation for predetermined maximum possible amounts of all resources, then makes an s-state check to test for possible activities, before deciding whether allocation should be allowed to continue.

  9. Dekkers algorithm
    Dekkers algorithm is the first solution of critical section problem. There are many versions of this algorithms, the 5th or final version satisfies the all the conditions below and is the most efficient among all of them.

  10. Transactional memory
    Transactional memory originated in database theory, provides an alternative strategy for process synchronization.