semaphore

(redirected from semaphores)
Also found in: Dictionary, Thesaurus, Encyclopedia.
See: indicator
Mentioned in ?
References in periodicals archive ?
To eliminate the allocation delay, the RT-kernel reserves a memory space (called the System Semaphore Pool) where semaphore objects are stored.
struct MRT_sem_s { int index; /* semaphore ID */ int value; /* semaphore Value */ priority_t priority; /* Ceiling priority */ unsigned int flags; /* semaphore policy flags */ int owner; /* semaphore owner */ long ups; /* # of sem up() calls */ long downs; /* # of sem down() calls */ MRT proc_t *carrier; /* the process that has */ /* locked a mutex semaphore */ link_t alloclk; /* Allocated list link */ link_t locklk; / Locked list link */ char name[MAXPNAME]; /* semaphore name */ plist_t plist; /* Priority List of waiting */ /* processes */ }; typedef struct MRT_sem s MRT_sem t;
index: Identifies the Semaphore Descriptor into the System Semaphore Pool.
value: The semaphore value that can be set by the mrt_semalloc() System Call.
priority: The ceiling priority used by the Priority Ceiling Protocol and the Semaphore Inheritance Protocol not implemented in the current version.
It is also used to insert/remove a RT-Semaphore into/from the Free list of the System Semaphore Pool.
struct mrt_semattr_s { int value; /* semaphore Value */ unsigned int flags; /* semaphore policy/status flags */ priority_t priority; /* Ceiling priority */ /* for future uses */ char name [MAXPNAME]; /* semaphore name */ }; typedef struct mrt_semattr_s mrt_semattr_t;
struct mrt_semint_s { int index; /* semaphore ID */ int owner; /* semaphore owner */ int inQ; /* # of process enqueued */ }; typedef struct mrt_semint_s mrt_semint_t;
index: It identifies the Semaphore Descriptor into the System Semaphore Pool.
struct_mrt_down_s { int index; /* semaphore ID */ lcounter_t timeout;/* timout in ticks */ }; typedef struct mrt_down_s mrt_down_t;
The Unbounded Priority Inversion problem is an undesired situation where a higher priority process waits for a semaphore locked by a lower priority process and a medium priority process preempts it delaying the semaphore release and therefore the high priority process execution.