 |
|
| |
|
 |
 |
at Global Oneness Community.
Share your dreams and let others help you with the interpretation!
Dream Sharing Forum
|
 |
Lock computer science - Implementation |  | Lock computer science - Implementation: Encyclopedia II - Lock computer science - Implementation |  | Locks typically require hardware support for efficient implementation. This usually takes the form of one or more atomic instructions such as "test-and-set", "fetch-and-add" or "compare-and-swap". These instructions allow a single process to test if the lock is free, and if free, acquire the lock in a single atomic operation.
Uniprocessor architectures have the option of using uninterruptable sequences of instructions, using special instructions or instruction prefixes to disable interrupts temporarily, but this technique does not wor ...
See also:Lock computer science, Lock computer science - Types, Lock computer science - Implementation, Lock computer science - Granularity, Lock computer science - Database locks |  | | Lock computer science, Lock computer science - Database locks, Lock computer science - Granularity, Lock computer science - Implementation, Lock computer science - Types, Semaphore (programming), Monitor (synchronization), Mutual exclusion, Critical section, Double-checked locking, Lock-free and wait-free algorithms |  | |
|  |  | Lock computer science: Encyclopedia II - Lock computer science - Implementation
Lock computer science - Implementation
Locks typically require hardware support for efficient implementation. This usually takes the form of one or more atomic instructions such as "test-and-set", "fetch-and-add" or "compare-and-swap". These instructions allow a single process to test if the lock is free, and if free, acquire the lock in a single atomic operation.
Uniprocessor architectures have the option of using uninterruptable sequences of instructions, using special instructions or instruction prefixes to disable interrupts temporarily, but this technique does not work for multiprocessor shared-memory machines. Proper support for locks in a multiprocessor environment can require quite complex hardware and/or software support, with substantial synchronization issues.
The reason an atomic operation is required is because of concurrency, where more than one task executes the same logic. For example, consider the following C code:
if (lock == 0) lock = myPID; /* lock free - set it */
The above example does not guarantee that the task has the lock, since more than one task can be testing the lock at the same time. Since both tasks will detect that the lock is free, both tasks will attempt to set the lock, not knowing that the other task is also setting the lock. Dekker's or Peterson's algorithm are possible substitutes if atomic locking operations are not available.
Careless use of locks can result in deadlock. This occurs when a process holds a lock and then attempts to acquire a second lock. If the second lock is already held by another process, the first process will be blocked. If the second process then attempts to acquire the lock held by the first process, the system has "deadlocked": no progress will ever be made. A number of strategies can be used to avoid or recover from deadlocks, both at design-time and at run-time.
Other related archivesC, Concurrency control, Critical section, Dekker's, Double-checked locking, Lock-free and wait-free algorithms, Monitor (synchronization), Mutual exclusion, Peterson's algorithm, Semaphore (programming), Uniprocessor, atomic, compare-and-swap, computer science, concurrency control, database management system, deadlock, exception, execution, fetch-and-add, lock-free, multiprocessor, process, semaphore, spinlock, synchronization, test-and-set, threads of execution
 Adapted from the Wikipedia article "Implementation", under the G.N U Free Docmentation License. Please also see http://en.wikipedia.org/wiki |
|
|
More material related to Lock Computer Science can be found here:
|
|
« Back
|
Search the Global Oneness web site |
|
|
|
|
 |
Sneak-Peek of Global Oneness Community
Hi friend! The Global Oneness Community, the place for information and sharing about Oneness is not really launched yet (you will see there is still some clean up to do) ...but it is now open for a sneak-peek! And if you wish - please register and become one of the very first members to do so! Jonas
Forum Home,
Articles,
Photo Gallery,
Videos,
News,
Sitemap
...and much more!
|