Operating System Tutorial

Operating System Tutorial Types of Operating System Evolution of Operating System Functions of Operating System Operating System Properties Operating System Services Components of Operating System Needs of the Operating System

Operating Systems

Linux Operating System Unix Operating System Ubuntu Operating System Chrome Operating Systems Fedora Operating System MAC Operating System MS Windows Operating System Solaris Operating System Cooperative Operating System CorelDRAW Operating System CentOS FreeBSD Operating Systems Batch Operating System MS-DOS Operating System Commercial Mobile Operating Systems

Differences

Difference Between Multi-programming and Multitasking Difference between C-LOOK and C-SCAN Difference between Rotational Latency and Disk Assess Time Trap vs Interrupt Difference between C-SCAN and SSTF Difference between SCAN and FCFS Difference between Seek Time and Disk Access Time Difference between SSTF and LOOK Difference between Process and Program in the Operating System Difference between Protection and Security in Operating System

How To

How to implement Monitors using Semaphores How to Install a Different Operating System on a PC

Questions

What is Kernel and Types of Kernel What is DOS Operating System What is Thread and Types of Thread What is Process Scheduler and Process Queue What is Context Switching What is CPU Scheduling What is Producer-Consumer Problem What is Semaphore in Operating System Monitors in Operating System What is Deadlock What is Paging and Segmentation What is Demand Paging What is Virtual Memory What is a Long term Scheduler What is Page Replacement in Operating System What is BSR Mode What is Convoy Effect What is Job Sequencing in Operating System Why is it critical for the Scheduler to distinguish between I/O-bound and CPU-bound programs Why is there a Need for an Operating System

Misc

Process Management Process State Scheduling Algorithm FCFS (First-come-First-Serve) Scheduling SJF (Shortest Job First) Scheduling Round-Robin CPU Scheduling Priority Based Scheduling HRRN (Highest Response Ratio Next) Scheduling Process Synchronization Lock Variable Mechanism TSL Mechanism Turn Variable Mechanism Interested Variable Mechanism Deadlock Avoidance Strategies for Handling Deadlock Deadlock Prevention Deadlock Detection and Recovery Resource Allocation Graph Banker’s Algorithm in Operating System Fixed Partitioning and Dynamic Partitioning Partitioning Algorithms Disk Scheduling Algorithms FCFS and SSTF Disk Scheduling Algorithm SCAN and C-SCAN Disk Scheduling Algorithm Look and C-Look Disk Scheduling Algorithm File in Operating System File Access Methods in Operating System File Allocation Method Directory Structure in Operating System N-Step-SCAN Disk Scheduling Feedback Queue in Operating System Contiguous Memory Allocation in Operating System Real-time Operating System Starvation in Operating System Thrashing in Operating System 5 Goals of Operating System Advantages of Operating System Advantages of UNIX Operating System Bit Vector in Operating System Booting Process in Operating System Can a Computer Run Without the Operating System Dining Philosophers Problem in Operating System Free Space Management in Operating System Inter Process Communication in Operating System Swapping in Operating System Memory Management in Operating System Multiprogramming Operating System Multitasking Operating Systems Multi-user Operating Systems Non-Contiguous Memory Allocation in Operating System Page Table in Operating System Process Scheduling in Operating System Segmentation in Operating System Simple Structure in Operating System Single-User Operating System Two Phase Locking Protocol Advantages and Disadvantages of Operating System Arithmetic operations in binary number system Assemblers in the operating system Bakery Algorithm in Operating System Benefits of Ubuntu Operating System CPU Scheduling Criteria in Operating System Critical Section in Operating System Device Management in Operating System Linux Scheduler in Operating System Long Term Scheduler in Operating System Mutex in Operating System Operating System Failure Peterson's Solution in Operating System Privileged and Non-Privileged Instructions in Operating System Swapping in Operating System Types of Operating System Zombie and Orphan Process in Operating System 62-bit operating system Advantages and Disadvantages of Batch Operating System Boot Block and Bad Block in Operating System Contiguous and Non - Contiguous Memory Allocation in Operating System Control and Distribution Systems in Operations Management Control Program in Operating System Convergent Technologies in Operating System Convoy Effect in Operating System Copy Operating Systems to SSD Core Components of Operating System Core of UNIX Operating System Correct Value to return to the Operating System Corrupted Operating System Cos is Smart Card Operating System Cosmos Operating Systems Examples Generation of Operating System Hardware Solution in Operating System Process Control Block in Operating System Function of Kernel in Operating System Operating System Layers History of Debian Operating Systems Branches and Architecture of Debian Operating Systems Features and Packages of Debian Operating Systems Installation of Operating System on a New PC Organizational Structure and Development in Debian Operating Systems User Interface in Operating System Types Of Memory in OS Operating System in Nokia Multilevel Paging in OS Memory Mapping Techniques in OS Memory Layout of a Process in Operating System Hardware Protection in Operating System Functions of File Management in Operating System Core of Linux Operating System Cache Replacement Policy in Operating System Cache Line and Cache Size in Operating System What is Memory Mapping? Difference Between Network Operating System And Distributed Operating System What is the difference between a Hard link and a Soft Link? Principles of Preemptive Scheduling Process Scheduling Algorithms What is NOS? What is the Interrupt I/O Process? What is Time Sharing OS What is process termination? What is Time-Sharing Operating System What is Batch File File system manipulation What is Message-passing Technique in OS Logical Clock in Distributed System

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.