semaphore

semaphore

[′sem·ə‚fȯr]
(computer science)
A memory cell that is shared by two parallel processes which rely on each other for their continued operation, and that provides an elementary form of communication between them by indicating when significant events have taken place.
McGraw-Hill Dictionary of Scientific & Technical Terms, 6E, Copyright © 2003 by The McGraw-Hill Companies, Inc.

semaphore

(programming, operating system)
The classic method for restricting access to shared resources (e.g. storage) in a multi-processing environment. They were invented by Dijkstra and first used in T.H.E operating system.

A semaphore is a protected variable (or abstract data type) which can only be accessed using the following operations:

P(s) Semaphore s; while

V(s) Semaphore s; s = s+1;

Init(s, v) Semaphore s; Int v; s = v;

P and V stand for Dutch "Proberen", to test, and "Verhogen", to increment. The value of a semaphore is the number of units of the resource which are free (if there is only one resource a "binary semaphore" with values 0 or 1 is used). The P operation busy-waits (or maybe sleeps) until a resource is available whereupon it immediately claims one. V is the inverse, it simply makes a resource available again after the process has finished using it. Init is only used to initialise the semaphore before any requests are made. The P and V operations must be indivisible, i.e. no other process can access the semaphore during the their execution.

To avoid busy-waiting, a semaphore may have an associated queue of processes (usually a FIFO). If a process does a P on a semaphore which is zero the process is added to the semaphore's queue. When another process increments the semaphore by doing a V and there are tasks on the queue, one is taken off and resumed.
This article is provided by FOLDOC - Free Online Dictionary of Computing (foldoc.org)

semaphore

(1) A hardware or software flag used to indicate the status of some activity. See flag.

(2) A shared space for interprocess communications (IPC) controlled by "wake up" and "sleep" commands. The source process fills a queue and goes to sleep until the destination process uses the data and tells the source process to wake up. See IPC.
Copyright © 1981-2025 by The Computer Language Company Inc. All Rights reserved. THIS DEFINITION IS FOR PERSONAL USE ONLY. All other reproduction is strictly prohibited without permission from the publisher.
The following article is from The Great Soviet Encyclopedia (1979). It might be outdated or ideologically biased.

Semaphore

 

a fixed signaling device used on railroads equipped with semiautomatic block signaling, staff systems, and centralized switches and signals. One, two, or three arms are mounted on a semaphore tower together with signal actuators to change the position of the arms. A particular position of the arms signals the locomotive engineer that he is cleared to proceed, has orders to stop, or must change speed. At night or when the visibility is poor as a result of fog, snow, or rain, semaphores are supplemented with signal lights.

The order to stop is given when the upper arm of the semaphore is horizontal and the red stop light is on. The order to reduce speed is given when the lower arms are positioned along the axis of the tower and a yellow light is on. When the upper arm is at an angle of 135° to the axis of the tower and the light is green, the track is clear and the train is permitted to move at the normal speed.

The Great Soviet Encyclopedia, 3rd Edition (1970-1979). © 2010 The Gale Group, Inc. All rights reserved.
Mentioned in
Copyright © 2003-2025 Farlex, Inc Disclaimer
All content on this website, including dictionary, thesaurus, literature, geography, and other reference data is for informational purposes only. This information should not be considered complete, up to date, and is not intended to be used in place of a visit, consultation, or advice of a legal, medical, or any other professional.