Dismiss
InnovationQ will be updated on Sunday, Oct. 22, from 10am ET - noon. You may experience brief service interruptions during that time.
Browse Prior Art Database

Transformation of Simple Locks in Pageable Kernel

IP.com Disclosure Number: IPCOM000104179D
Original Publication Date: 1993-Mar-01
Included in the Prior Art Database: 2005-Mar-18
Document File: 2 page(s) / 50K

Publishing Venue

IBM

Related People

De Backer, PL: AUTHOR [+2]

Abstract

In a pageable kernel, simple locks used to protect critical sections can have a severely increased contention time because the critical sections allowed to incur a page fault. The page fault would, therefore, reduce the effectiveness of the kernel since others needing the lock will simply spin, consuming CPU until the I/O is completed.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 54% of the total text.

Transformation of Simple Locks in Pageable Kernel

      In a pageable kernel, simple locks used to protect critical
sections can have a severely increased contention time because the
critical sections allowed to incur a page fault.  The page fault
would, therefore, reduce the effectiveness of the kernel since others
needing the lock will simply spin, consuming CPU until the I/O is
completed.

      Symmetric Multi-Processor (SMP): This is a hardware term
describing the physical layout and design of the processor planar.
Multiple processor units share global memory and have equal access to
I/O in a SMP system.

      Thread: A thread is a simple execution path through the
application and kernel.  Multiple threads are allowed per single
process image.

      Lock: Locks are used by software (and hardware) to serialize
access to either a critical section of code or to a shared data
structure.  There are two types of locks: blocking locks and simple
or spin locks.  Blocking locks cause any thread requesting the lock
to go to sleep (stop being runnable) if the lock is currently held by
another thread.  Spin locks do not put the waiting threads to sleep;
rather, the waiting threads run a spin loop and keep requesting the
lock until it is freed by the owner.

      Blocking locks are used for large critical sections or if the
kernel wants to differentiate between threads wanting to read a data
structure and those wanting to modify a data structure.

    ...