×

Lock Variable Mechanism | Operating System

Lock Variable Mechanism

The Lock variable mechanism is a synchronization mechanism that is implemented in a user mode. It is a software procedure.

Lock variable is a solution for busy waiting that can be easily applied by more than two processes.

In the lock variable mechanism, we use a lock variable, i.e., Lock. There are two values of Lock variable, which are 1 and 0. If the value of Lock is 1, then it means the critical section is occupied, but if the value of lock is 0, then it means the critical section is empty.

If a process wants to enter into the critical section, then first the process checks the value of Lock variable, and if the value of lock is 0, then we set the value of lock as 1, and after setting the value, the process enters into the critical section. Otherwise, the process waits for its turn.

The Pseudocode of the lock variable mechanism is:

Lock Variable Mechanism

In the following Pseudocode, we have three sections, i.e., Entry section, Critical section, and the exit section.

Initially, the value of the lock variable was 0. When any process wishes to enter into the critical section, it checks the condition of the while loop. It continuously waits until the value of the lock variable is 1. Because to enter, the value of lock variable should be 1. So, it is clear that initially, the critical section is empty, and thus the process enters into the critical section, and the value of the lock variable sets to1. This means another process will wait until the value becomes 0. In the exit section, we will reset the value of lock variable as 0 when the process will exit from the critical section.

Based on four conditions, we judge every Synchronization Mechanism:

  1. Mutual Exclusion
  2. Progress
  3. Bounded Waiting
  4. Portability

In the above four conditions, the Mutual Exclusion, and Progress are the most important. So, it should be provided by each solution.

Now, based on four mentioned conditions, we analyze the synchronization mechanism:

Mutual Exclusion

In few cases, Lock Variable Mechanism does not offer mutual exclusion. By writing the pseudocode in assembly language, we can easily understand this by the point of view of the operating system.  

Lock Variable Mechanism

Suppose we have two processes namely P1 and P2. Process P1 needs to execute into the critical section. Thus, it enters into the entry section. So, initially, the value of the lock variable is 0, so we need to change the value of lock variable from 0 to 1, and then the process can enter in the critical section. 

During this, the CPU preempts the process P1 and scheduled the process P2. Thus, it is found critical section is empty. Hence, the value of the lock variable is 0. The process P2 is also wishing to execute in the critical section. Thus, it enters into the critical section and sets the lock to 1.

 After that CPU wants to switch the state of process P1from waiting state to the running state. Till now, the process P1 did not completed its execution in the critical section. The process P1 previously checked the lock variable value, and that time the Lock variable value was 0. So, P1 can enter the critical section and does not need to verify the updated value of lock.

 Now there are two processes that are present in the critical section, but on the basis of mutual exclusion condition at the same time, no two processes stay in the critical section. So, the lock variable mechanism does not provide the assurance of mutual exclusion.

The limitation of a lock variable mechanism is that more than two processes can see the empty tag at the same time, and also more than one process is able to get enter into the critical section.

That’s why the lock variable mechanism does not offer the facility of mutual exclusion. That’s the reason why lock variable cannot be used.

So, the lock variable mechanism fails at the initial phase. Thus, the lock variable holds a very limited scope.


Related Topics

Trap vs Interrupt in Operating System

What is Trap in Operating System? A trap is a synchronous interrupt used to perform functionality when an error occurs in a user process. A trap in an operating system can...

4 minutes read.

Priority Scheduling in OS

Priority Scheduling is a type of CPU Scheduling algorithm which is used for process scheduling. In Priority Scheduling, we assign some priorities to each process. The process which has higher priority among all...

5 minutes read.

How to implement Monitors using Semaphores

Monitors Monitor is a type of synchronization device designed to solve difficulties caused by semaphores, such as timing errors. Monitors are the type of data types that are abstract by nature...

2 minutes read.

Round-Robin Scheduling Algorithm in OS

Round-Robin is a Preemptive Scheduling Algorithm and is the most commonly used algorithm in CPU Scheduling.In this, each Process is assigned with a fix time interval to execute, which is...

5 minutes read.

Linux Operating System

What is Linux? The Linux operating system is used on various devices, including cellphones, automobiles, supercomputers, household gadgets, personal computers, and business servers. You can find Linux on your phones, thermostats, vehicles,...

8 minutes read.

Bit Vector in Operating System

What is Bit vector? Bit vector is one of the most important methods used in the free space management of operating system. Free space management which is used by the operating...

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

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.

Process State in OS

The Process passes from different states, from its formation to completion. The following are the states of the Process. NewReadyRunningBlock or WaitTerminated or CompletedSuspend readySuspend wait or suspend blocked 1. New: - The state in which a process...

2 minutes read.

What is Scheduling on OS

Scheduling is the process which is used to share the computing resources such as memory, processor time, and bandwidth to the different processes, data flows, threads, and applications which need them. Scheduling is...

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

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.

What is Demand Paging?

Demand Paging is defined as a process in which the pages are loaded into the memory (when the page fault occurs) or on-demand. It consists of the following steps: If there is...

4 minutes read.

CPU Scheduling in OS

What is Scheduling? Scheduling is the process that is used to share the computing resources such as memory, processor time, and bandwidth to the different processes, data flows, threads, and applications that need...

5 minutes read.

DOS Operating System

What is DOS Operating System? An operating system that runs from a hard disk drive is known as the DOS (Disk Operating System).In other words, DOS (Disk Operating System) is defined...

7 minutes read.

Need of Operating System

There are various needs of operating system: Managing Input-Output UnitThe Operating system as a platform for application programsMultitaskingConsistent user interface Managing Input-Output Unit: - With the help of the operating system, the...

2 minutes read.

Difference between Process and Program in the Operating System

What is a process in the Operating System? A process is a program that is going through the execution. It also helps us to execute all the lines of code in...

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

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.

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.