A race condition can occur when the outcome of some computation depends on how two or more interleaved kernel control paths are nested. A critical region is any section of code that should be completely executed by each kernel control path that begins it, before another kernel control path can enter it.
Here are four broad types of synchronization techniques:
- Nonpreemptability of processes in Kernel Mode.
- Atomic operations
- Interrupt disabling.
- Locking.

