This chapter introduces some conception about kernel synchronization generally.
Critical Regions: Code paths that access and manipulate shared data.
Race Condition: Two threads of execution to be simultaneously executing within the same critical region.
The threads hold locks; locks protect data.
Deadlocks: The threads all wait for each other, but they never make any progress toward releasing the resources that they already hold.
Lock Contention: A lock is currently in use but there is another thread trying to acquire.
Scalability: This is a measurement of how well a system can be expanded.