×

Process Synchronization | Operating System

Process Synchronization

Process Synchronization means managing the process in such a manner so that no two processes have access to share similar data and resources.

We can use Process Synchronization in a Multi-Process System in which the number of processes are executed collectively and where more processes want to use similar resources at the same time.

 Due to this, shared data can become inconsistent. Thus, the changes done in one process should not affect another process when another process needs to access similar shared data or resources. To stop this kind of data incoherence, the processes must be synchronized with each other.

Based on synchronization, processes are classified into two types:

  1. Independent Process
  2. Cooperative Process

Independent Process: - If due to any process execution, another process is getting affects, then this type of process is called as Independent Process.

Cooperative Process: - If due to any process execution, another process does not affect then this type of process is called as Cooperative Process.

The issue of Process Synchronization is occurring in the cooperative process, and the reason is resources are shared in a Cooperative process.

Rare Condition

Rare Condition is the situation which may arise when multiple processes wants to access and manipulates similar data concurrently. The output of the processes depends on the specific order in which the process access the data.

Critical Section Problem

If more than one process wants to access the similar code segment, then that segment is called the Critical Section. There are shared variables present in the critical section, which helps in synchronization so that the data variables consistency is maintained.

In other words, the Critical Section is a collection of instructions/statements or a region of code, which is executed atomically like accessing a resource file, global data, input port, output port, etc.

In Critical Section, only one process can be executed, the rest of the other processes wait in the critical section for their execution and need to wait until the current process finish its execution.

  • With the help of the wait() function, the entry to the critical section is managed. It is represented by P().
  • With the help of the signal() function, the exit from the critical section is managed, and it is represented by V().

Sections of a Program in a Critical Section

There are four sections of a Program in a Critical Section

  1. Entry Section
  2. Critical Section
  3. Exit Section
  4. Remainder Section
Process Synchronization

Entry Section: - Entry Section is that portion of the process that takes a decision in the context of the entry of a specific process.

Critical Section: - Critical Section is that section of a program which permits a process to enter and alter the shared variable.

Exit Section: - Exit section permits the processes which are waiting in the entry section to enter into the critical section. Exit Section also contains the information related to the process which has finished its execution and then removes that process from the Exit Section.

Remainder Section: - The part which is not present in any section, i.e., Critical, Exit, and Entry Section, is known as the Remainder Section.

Rules for Critical Section

The rules for the Critical Section are:

  1. Mutual Exclusion
  2. Progress
  3. Bound Waiting

Mutual Exclusion: - In mutual exclusion, if there is a process which is running in a critical section, then no other process is allowed to enter into the critical section.

Progress: - In Progress, if a process does not want to run into the critical section, then it should not deter other processes to enter into the critical section.

Bounded Waiting: This rule says that every process is allotted with a time limit so that they do not need to wait for more time.

Solutions to the Critical Section

There are various methods used to solve the Critical Section Problem:

  1. Peterson Solution
  2. Synchronization Hardware
  3. Mutex Locks
  4. Semaphore Solution

Peterson Solution: - Peterson Solution is one of the methods which is used to solve the problem of the critical section. It was developed by a scientist named ‘Peterson’. That’s why the solution was named ‘Peterson Solution.’

In Peterson’s solution, if a process is running inside the critical section, then another process performs the task of executing the remaining code and vice versa. In this, at one time, only a single process can execute inside the critical section.

Synchronization Hardware

The problem of the Critical Section can be solved with the help of hardware. Most of the OS provides the facility of lock functionality in which if a process wants to enter into the critical section, it needs to acquire a lock and can release the lock if it wants to leave the critical section.

So, if some other process wants to enter into the critical section when it is already acquired by a process, then due to the locked process, it will not be able to enter into the critical section. It can only enter into the critical section if it is free by obtaining the lock itself.

Mutex Locks

Synchronization Hardware method is not easy. That’s why another method Mutex Lock was introduced.

In Mutex Lock method, a LOCK over the resources of the critical section is used within the critical section. It is acquired by the entry section of code. In the section of exit, it releases the LOCK.

Semaphore Solution

Semaphore is another method or a solution which is used to solve the problem of critical section. Semaphore Solution is just like a non-negative variable which is shared among the threads.

Semaphore is a type of signaling method in which a thread which is waiting on the semaphore can give a signal with the help of another thread.

In semaphore, two atomic operations are performed:

  1. Wait
  2. Signal for the Process Synchronization.

Related Topics

MS-DOS Operating System

It is also referred to occasionally as "DOS", an abbreviation for disc operating systems. Operating systems with a graphical user interface (GUI) in different iterations of the graphical Microsoft Windows...

5 minutes read.

Batch Operating System

Computers were once quite huge devices that operated from a console. Tape drives, punch cards, line printers were often utilized for the output, and tape drivers or card readers for...

4 minutes read.

File Access Methods in Operating System

File Access Methods in OS There are various types of file access methods in the operating system: Sequential Access MethodDirect Access MethodIndex Sequential Access Method Sequential Access Method: - Sequential Access Method is...

3 minutes read.

What is Thread and Types of Thread

What is Thread A thread means a lightweight process. Thread is the basic unit of CPU execution, which consists of thread ID, Program counter, set of registers to hold the information of current...

7 minutes read.

Difference between C-SCAN and SSTF Disk Scheduling Algorithm

C-SCAN / Circular Elevator The circular SCAN (C-SCAN) scheduling method is a modified version of the SCAN disc scheduling technique that addresses the SCAN algorithm's inefficiency by more equitably serving requests....

3 minutes read.

SCAN Disk Scheduling Algorithm

SCAN Disk Scheduling Algorithm The SCAN disk scheduling algorithm is another type of disk scheduling algorithm. In this algorithm, we move the disk arm into a specific direction (direction can be moved towards...

4 minutes read.

Paging and Segmentation in OS

What is Paging in OS? Paging is a storage technique used for memory management. In paging, the (OS) Operating System retrieves the processes from the secondary memory into the main memory,...

6 minutes read.

Unix Operating System

Unix Operating System Unix Operating System is a multiuser, portable, time-sharing, and multitasking operating system that was developed in 1969. Unix operating system was developed by a group of AT &...

3 minutes read.

Android Operating System

What is Android Operating System? Android is a Linux-based and open-source operating system mainly established for mobile devices like tablet computers and Smartphones. The Android operating system was established by the...

5 minutes read.

Free Space Management in Operating System

What is Free Space Management? The system always keeps the records of the free disks blocks for allocating space to files when they are created. To use the space free from...

4 minutes read.

Segmentation in Operating System

The term segmentation in operating system refers to the division of computer memory into segments. Segmentation is a technique used by many modern operating systems to provide better memory management....

4 minutes read.

Deadlock Prevention in Operating System

Deadlock Prevention The conditions which we used for deadlock prevention are: Mutual ExclusionHold and WaitNo PreemptionCircular Wait 1. Mutual Exclusion: - From the resource point of view, the mutual exclusion means that simultaneously more...

4 minutes read.

Swapping in Operating System

Swapping in operating systems refers to temporarily transferring a program or process from main memory to a secondary storage device, such as a hard drive or solid-state drive when there...

4 minutes read.

FCFS Scheduling in OS

FCFS: First Come First Serve Scheduling in OS FCFS is a non-preemptive and preemptive scheduling algorithm that is easy to understand and use. In this, the process which reaches first is...

3 minutes read.

Multi-user Operating Systems

Introduction Since only one user may interact with the computer at any given time, the operating system we use on our personal computers, laptops, tablets, and phones is sometimes referred to...

8 minutes read.

What is Context Switching

Context Switching is the switching of CPU from one process to another process. Context switching means storing the process state so that we can reload the process when needed, and the execution...

3 minutes read.

Real-time Operating System

In this essay, we will thoroughly understand the real-time operating system. Real-Time Operating System: What do you mean? For any task to be completed, a real-time operating system (RTOS), a special-purpose operating...

5 minutes read.

Process Management in OS

A Program will not do anything unless a CPU executes its instructions. An executing program is called a process. The Process requires computer resources to complete its task. More than...

3 minutes read.

Commercial Mobile Operating Systems

Introduction to Commercial Mobile Operating Systems A computer program's common services are managed by an operating system (OS), which also handles computer hardware and software resources. The user can communicate with...

7 minutes read.

Difference between SCAN and FCFS Disk Scheduling Algorithm

SCAN / Elevator Algorithm A different form of disc scheduling method is the SCAN disc scheduling algorithm. We move the disc arm in a certain direction in this process (the direction...

3 minutes read.