What is a semaphore?

Answer Posted / sagarika mishra

In computer science, a semaphore is a protected variable or
abstract data type which constitutes the classic method for
restricting access to shared resources such as shared
memory in a multiprogramming environment. A counting
semaphore is a counter for a set of available resources,
rather than a locked/unlocked flag of a single resource. It
was invented by Edsger Dijkstra. Semaphores are the classic
solution to preventing race conditions in the dining
philosophers problem, although they do not prevent resource
deadlocks.
Semaphores can only be accessed using the following
operations. Those marked atomic should not be interrupted
(that is, if the system decides that the "turn is up" for
the program doing this, it shouldn't stop it in the middle
of those instructions) for the reasons explained below.
P(Semaphore s) // Acquire Resource
{
wait until s > 0, then s := s-1;
/* must be atomic because of race conditions */
}

V(Semaphore s) // Release Resource
{
s := s+1; /* must be atomic */
}

Init(Semaphore s, Integer v)
{
s := v;
}

Is This Answer Correct ?    29 Yes 12 No



Post New Answer       View All Answers


Please Help Members By Posting Answers For Below Questions

Will disk cleanup delete my files?

507


When I startup my computer the screen is black?

526


How do I merge folders on mac?

530


describe the situation in which priority inversion can occur

911


Why is my computer so slow?

543






How do I compare files in notepad ++?

518


Can I factory reset my laptop without a recovery disc?

537


What is the best free operating system?

528


What is the difference between concurrency and parallelism?

551


Is i3 good for gaming?

577


How do you clear cache on a laptop?

529


what are latest technologies ? and how will keep yourself up to date ?

2433


Is kernel a os?

516


Give some examples of use of thread in a single user multiprocessing system

6158


windows 3.1 is

571