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

Define an assembly language, Define an assembly language  Assembly lan...

Define an assembly language  Assembly language stands for a Low level programming language

What are placement and replacement algorithms, Placement algorithms :calcu...

Placement algorithms :calculate where in available real-memory to execute a program. Common functions are next-fit, first-fit, and best-fit. Replacement algorithms :are

What is the sequence of a page fault causes to occur, A page fault causes t...

A page fault causes the following sequence to occur. 1. Trap (shut in) to the operating system. 2. Save the process registers and process state. 3. Verify that the interr

What is an acyclic graph, What is an acyclic graph? A tree that has bee...

What is an acyclic graph? A tree that has been corrupted by links to other branches, but does not have any cyclic paths in it.

Total physical memory and total virtual memory , A practical task specified...

A practical task specified in the Study Guide, Computer architecture, was to record your computer's specifications. Submit the data you recorded, which will contain the following d

Define tii stands for, TII stands for The abbreviation of TII is Table o...

TII stands for The abbreviation of TII is Table of incomplete instructions.

Exdplain many-to-many model, Many-to-Many Model The many-to-many model-...

Many-to-Many Model The many-to-many model- many user-level threads to many kernel-level threads avoids several of the limitations of the one-to-one model, although extending mu

What is direct access, Normal 0 false false false EN-IN...

Normal 0 false false false EN-IN X-NONE X-NONE MicrosoftInternetExplorer4

Explain contiguous allocation, Contiguous allocation The contiguous-all...

Contiguous allocation The contiguous-allocation method needs each file to occupy a set of contiguous blocks of the disk. Disk addresses explain a linear ordering on the disk. T

Distinguish among pcs and scs scheduling, Q. Distinguish among PCS and SCS ...

Q. Distinguish among PCS and SCS scheduling. Answer: PCS scheduling is completed local to the process. It is how a thread library schedules threads onto available LWPs. SCS sch

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