Resource Lock

Return to Glossary

Resource Lock is a synchronization mechanism for enforcing limits on access to a resource in an environment where there are many threads of execution. Locks are one way of enforcing concurrency control policies.

Generally, locks are advisory locks, where each thread cooperates by acquiring the lock before accessing the corresponding data. Some systems also implement mandatory locks, where attempting unauthorized access to a locked resource will force an exception in the entity attempting to make the access.

A (binary) semaphore is the simplest type of lock. In terms of access to the data, no distinction is made between shared (read only) or exclusive (read and write) modes. Other schemes provide for a shared mode, where several threads can acquire a shared lock for read-only access to the data. Other modes such as exclusive, intend-to-exclude and intend-to-upgrade are also widely implemented.

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.

Source: https://en-academic.com/dic.nsf/enwiki/153136