Kernel Synchronization and Locking

Kernel address space is shared by all user-mode processes, which enables concurrent access to kernel services and data structures. For reliable functioning of the system, it is imperative that kernel services be implemented to be re-entrant. Kernel code paths accessing global data structures need to be synchronized to ensure consistency and validity of shared data. In this chapter, we will get into details of various resources at the disposal of kernel programmers for synchronization of kernel code paths and protection of shared data from concurrent access.

This chapter will cover the following topics:

  • Atomic operations
  • Spinlocks
  • Standard mutexes
  • Wait/wound mutex
  • Semaphores
  • Sequence locks
  • Completions
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.21.158.148