Original Publication Date: 1990-Jan-01
Included in the Prior Art Database: 2005-Mar-14
Chang, A: AUTHOR [+4]
Disclosed is a conventional lock for a preemptable system. The conventional lock is implemented by the and unlockl services.
a conventional lock for a preemptable system.
The conventional lock is implemented by the and unlockl services.
UNIX systems have a non-preemptable kernel. means
that system calls can be coded without having to about being
preempted by another process except when explicitly sleep. The
disadvantage of this is that it dispatch latency and decreases
preemptable UNIX kernel the lockl and unlockl serialize
access to shared data. These services especially designed to have
the following No control blocks need to be allocated by kernel when
a lock is created. The lock structure for deadlock detection. The
owner of a lock executes the priority of the most favored waiter.
The lock call be terminated by a signal. The lock service has a
services require that the caller provide a word of
storage. Typically, the caller will include word in the data
structure that represents the object the lock controls access to.
For example, the file has a lock control word in each open file table
This eliminates the requirement for a create lock destroy lock call.
It also allows the lockl and unlockl to execute faster since they do
not have to convert identifier into an address.
The lock word
contains the process identifier of the of the
lock or LOCK_AVAIL, if it is not owned. The of all processes waiting
on a lock owned by this is anchored in the owner's process table
entry and together all of the waiting processes' process table
Putting the owner's process identifier in the lock allows for easy
determination of the owner of the lock. allows for a fast test for
nested locks. Having a list all processes that are waiting on any
lock owned by this provides the means for crea...