wisemonkeys logo
FeedNotificationProfileManage Forms
FeedNotificationSearchSign in
wisemonkeys logo

Blogs

Dekkers Algorithm

profile
Priti Pandav
Sep 09, 2024
0 Likes
0 Discussions
159 Reads

Dekker's Algorithm is a solution to the mutual exclusion problem in computer science. It allows multiple processes to share a common resource without conflicts.




*Problem Statement:*




Two or more processes want to access a shared resource, but only one process can access it at a time.




*Dekker's Algorithm:*




1. Two processes, P0 and P1, want to access the shared resource.

2. Each process has a flag variable (flag0 and flag1) initialized to false.

3. Process P0 sets flag0 to true and checks flag1. If flag1 is true, P0 waits.

4. Process P1 sets flag1 to true and checks flag0. If flag0 is true, P1 waits.

5. If a process finds the other process's flag false, it enters the critical section (accesses the shared resource).

6. After accessing the resource, the process sets its flag to false.




*Key Points:*




1. Dekker's Algorithm ensures mutual exclusion (only one process accesses the resource at a time).

2. It uses flag variables to communicate between processes.

3. A process waits if it finds the other process's flag true.




*Example:*

```

// Process P0

flag0 = true;

while (flag1) { /* wait */ }

// Critical section

flag0 = false;




// Process P1

flag1 = true;

while (flag0) { /* wait */ }

// Critical section

flag1 = false;

```

Dekker's Algorithm is a simple and efficient solution to the mutual exclusion problem, but it has some limitations, such as:




- It only works for two processes.

- It uses busy-waiting, which can waste CPU cycles.




More advanced algorithms, like Peterson's Algorithm and Lamport's Bakery Algorithm, have been developed to address these limitations.


Comments ()


Sign in

Read Next

My favourite food

Blog banner

What is Virtual Memory

Blog banner

Some web vulnerabilities

Blog banner

Wedding photographer

Blog banner

Outlook mail

Blog banner

 " Healing of Yoga "

Blog banner

'C', 'C++' and 'Java': Head-to-Head

Blog banner

Process Creation

Blog banner

Deadlocks in Operating Systems

Blog banner

Cache memory

Blog banner

"Games and the future"

Blog banner

COMMUNICATION

Blog banner

Direct memory access

Blog banner

Deadlock and Starvation in an Operating System

Blog banner

Operating System

Blog banner

How return on investment is defined in IT services

Blog banner

Basic Security For SOAP Services

Blog banner

What is metaverse?

Blog banner

PODIO

Blog banner

Note on Process, Process creation and Process termination

Blog banner

Multicore and Multithreading

Blog banner

security controls

Blog banner

Memory input output management

Blog banner

5 Powerful Mindset Shifts To Make 2026 Your Breakthrough Year

Blog banner

Benefits of Yoga

Blog banner

DATA WRANGLING

Blog banner

MEMORY MANAGEMENT (techniques)

Blog banner

I/O buffer and its techniques

Blog banner

Memory Management

Blog banner

Memory heirchy

Blog banner

Embedded Operating System

Blog banner

How to grow followers on Instagram business account?

Blog banner

From Websites To Super Apps For Digital User Experience

Blog banner

Spitting Pink in the Sink: Why Your Gums Randomly Bleed

Blog banner

What is a Malware ?

Blog banner

objectives and functions of operating system

Blog banner

The Dark Web: A Breeding Ground for Cybercriminals – How to Guard Against Threats

Blog banner

Firewall in Computer Network

Blog banner

Indian Food

Blog banner

The Role of Summer Camps in Early Childhood Development

Blog banner

Man is free by the birth .

Blog banner

Direct Memory Access

Blog banner