Write a note on semaphores, Operating System

Assignment Help:

Write a note on semaphores

A semaphore is a tool meant for synchronizing multiple processes trying to access a shared variable. That is a semaphore is used to deal with the critical section problem or in other words to evade the race condition. A semaphore S is in fact an integer variable that apart from initialization is accessed only through two standard atomic operations:

*Wait and signal.

 

The traditional definition of wait in pseudo code is:

    wait (S) {

             while (S<=0)

                ; // no-op

             S--;

    }

The traditional definition of signal in pseudo code is:

    signal (S) {

               S++;

    }

 

For each process P,

    do {

WAIT

           Critical Section

SIGNALS

 

          } while (1);

 

A semaphore is able to be defined as:

typedef struct {

             int value;

             struct process *L;

} semphore;

 

Once more, the wait semaphore operation can be defined as:

void wait (semaphore S) {

                S.value--;

                if (S.value < 0) {

                    add this process to S.L;

                    block();

                }

}

 

As well, the signal semaphore operation is able to be defined as:

void signal( semaphore S) {

                   S.value++;

                   if (S.value <= 0) {

                       remove a process P from S.L;

                       wakeup(P);

                   }

}


Related Discussions:- Write a note on semaphores

Explain fixed partitioning techniques, FIXED PARTITIONING In a fixed p...

FIXED PARTITIONING In a fixed partitioning, the operating system inhabiting some fixed portion of main memory is available for use of multiple processes -Using fixed partit

What do you mean by system calls, What do you mean by system calls? Sys...

What do you mean by system calls? System calls give the interface among a process and the operating system. When a system call is implemented, it is treated as by the hardware

Control the access of the three global variables, Give a brief introduction...

Give a brief introduction about the operation of your program and show that you understand the idea behind threads and mutual exclusion variable. Why do we need to use mutual exclu

What are turnaround time and response time, What are turnaround time and re...

What are turnaround time and response time? Turnaround time is the interval among the submission of a job and its completion. Response time is the interval among submission

Business, why some companies do not pay sufficient attention to staff induc...

why some companies do not pay sufficient attention to staff induction

Removing system dependencies, Removing System Dependencies Because port...

Removing System Dependencies Because portions of the client - server application program may execute on different machines, it is very important for the developer to remove the

Define a election algorithm, Consider a setting where processors are not as...

Consider a setting where processors are not associated with unique identifiers but the total number of processors is known and the processors are organized along a bidirectional ri

Threads, What is single and multithreading and thread pool?

What is single and multithreading and thread pool?

Unix , A friend has promised to log in at a particular time. However, he ne...

A friend has promised to log in at a particular time. However, he needs to be contacted as soon as he logs in. The shell script checks after every minute whether he has logged in o

Write Your Message!

Captcha
Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd