In computer science, resource contention is a conflict over access to a shared resource such as random access memory, disk storage, cache memory, internal busses or external network devices. In recent years, research on the contention is more focused on the resources in the memory hierarchy, e.g., last-level caches, front-side bus, memory socket connection.
Resolving resource contention problems is one of the basic functions of operating systems. Various low-level mechanisms can be used to aid this, including locks, semaphores, mutexes and queues. The other techniques that can be applied by the operating systems include intelligent scheduling, application mapping decision, and page colouring.
When multiple processes wish to use a shared resource, this can lead to resource contention. Access to memory areas is often controlled by semaphores, which allows a pathological situation called a deadlock, when different threads or processes try to allocate resources already allocated by each other. A deadlock usually leads to a program becoming partially or completely unresponsive.
- Knauerhase, Rob (2008). "Using OS Observations to Improve Performance in Multicore Systems". IEEE Micro. 28 (3): 54–66. doi:10.1109/mm.2008.48.
- Zhang, Xiao (2009). "Towards practical page coloring-based multicore cache management". EuroSys.