October 2017
Intermediate to advanced
354 pages
9h 28m
English
Hardware-specific atomic instructions can operate only on CPU word- and doubleword-size data; they cannot be directly applied on shared data structures of custom size. For most multi-threaded scenarios, often it can be observed that shared data is of custom sizes, for example, a structure with n elements of various types. Concurrent code paths accessing such data usually comprise a bunch of instructions that are programmed to access and manipulate shared data; such access operations must be executed atomically to prevent races. To ensure atomicity of such code blocks, mutual exclusion locks are used. All multi-threading environments provide implementation of exclusion locks that are based on exclusion protocols. ...