×

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

Difference between Protection and Security in Operating System

Some operating system mechanisms facilitate us to stop tampering with logical and physical resources. Some of these methods are security and protection. Protection and security are distinct concepts, despite the...

3 minutes read.

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.

Kernel in OS

What is Kernel in OS? The kernel is the core component in the operating system. The job of the kernel is to handle the communication between the hardware and the software. ...

2 minutes read.

Contiguous Memory Allocation in Operating System

Memory is a place where data, facts, figures, and information are stored for temporary or permanent access the data in future, which is also considered as the storage place. Allocation of...

4 minutes read.

Page Table in Operating System

What is a Page Table? A page table is a data structure used by an operating system (OS) to store information about the physical location of the pages in a computer's...

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

Turn Variable or Strict Alternative Approach

Turn Variable or Strict Alternative Approach Turn Variable Approach is used for process synchronization mechanism, which offers synchronization between two processes. Turn variable is implemented on user mode, and it is a software mechanism. We...

3 minutes read.

Memory Management in Operating System

The term "Main Memory" refers to the computer's internal physical memory. It is distinguished from external mass storage devices like disk drives by using the term "main." RAM is another...

4 minutes read.

Booting Process in Operating System

What is Booting? Booting is defined as the term which says that the process of loading the operating system into the memory. The process of booting begins when we switch on...

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

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.

Difference between Rotational Latency and Disk Assess Time in Disk Scheduling

Disk scheduling is used by operating systems to arrange the arrival of I/O requests to the disc. Disk scheduling is necessary because several I/O requests may occur from various processes,...

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.

FCFS (First-Come-First-Serve) Disk Scheduling Algorithm

FCFS Disk Scheduling Algorithm FCFS (First-Come-First-Serve) is the easiest disk scheduling algorithm among all the scheduling algorithms. In the FCFS disk scheduling algorithm, each input/output request is served in the order...

4 minutes read.

What is Deadlock in OS?

Deadlock in Operating System In an Operating System, a process uses various resources, and the resources are used in the following manner: Request the ResourceUse the ResourceRelease the Resource In the Operating System, Deadlock is a condition...

4 minutes read.

Deadlock Avoidance

Deadlock Avoidance In an operating system, for deadlock avoidance, we perform the following: We only grant the request of the resources if the resulting state of the system will not cause any deadlock in the...

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.

Ubuntu Operating System

Ubuntu Operating System Ubuntu is an open-source and a Linux based operating system. Ubuntu is developed for the Network Servers, Computers, and Smartphones. The Ubuntu operating system was developed by Canonical...

3 minutes read.

Evolution of Operating System

Evolution of Operating System The evolution of various types of operating systems can be briefly described as follows: Serial Processing Since 1950, the operating system started to be in use. Before 1950, there...

5 minutes read.

Disk Scheduling Algorithms

Disk Scheduling Algorithms Disk scheduling algorithms are the algorithms that are used for scheduling a disk. Generally, the scheduling refers to a time-table for completing any task or a job. With the help...

2 minutes read.