Kernel Synchronization in Linux Uniprocessor and Multiprocessor Environment - PowerPoint PPT Presentation

1 / 22
About This Presentation
Title:

Kernel Synchronization in Linux Uniprocessor and Multiprocessor Environment

Description:

Kernel Synchronization in Linux Uni-processor and Multi-processor ... Modern versions of Linux are available. Compaq Alpha. SPARC. PowerPC. Motorola MC680x0 ... – PowerPoint PPT presentation

Number of Views:357
Avg rating:3.0/5.0
Slides: 23
Provided by: clifto9
Category:

less

Transcript and Presenter's Notes

Title: Kernel Synchronization in Linux Uniprocessor and Multiprocessor Environment


1
Kernel Synchronization in Linux Uni-processor and
Multi-processor Environment
By Kathryn Bean and Wafa Jaffal (Group A3)
2
Topics
  • Linux History
  • Kernel Control Path
  • Synchronization Technique
  • SMP Architecture
  • Hardware Support for Synchronization
    (Pentium-based Architecture)
  • Linux/SMP kernel
  • Conclusion

3
Linux History
  • University of Helsinki (1997), Masters thesis
  • Linux, a Portable Operating System by L.
    Torvalds
  • OS for IBM-compatible personal computers (Intel
    80386 microprocessor).
  • Source code under GNU General Public License

4
Kernel Control Path
  • Kernel control path is the sequence of
    instructions executed in Kernel Mode to handle a
    kernel request.
  • Kernel control path executes due to the following
    reasons
  • System calls
  • Exceptions
  • Interrupts

5
Synchronization Technique
  • Nonpreemptability
  • Atomic Operations
  • Interrupt Disabling
  • Locks

6
Condition to be Preempted
  • Kernel control path can preempt a running
    process however, when an interrupt handle
    terminates, the process resumes.
  • Only kernel control path can interrupt another
    kernel control path.

7
Atomic Operation
  • An atomic operation - performed by executing a
    single assembly language instruction
  • Linux kernel provides special functions such as
  • atomic_int(v) ? v

8
Interrupt Disabling
  • Because of its simplicity, interrupt disabling is
    used by kernel functions for implementing a
    critical region.
  • This technique does not always prevent kernel
    control path interleaving.
  • Critical section should be short because any
    communication between CPU and I/O is blocked
    while a kernel control path is running in this
    section.

9
Locking
  • Two kinds of locking
  • Kernel semaphores, used by both uni-processor and
    multiprocessor systems
  • Spin Locks, used by only multiprocessor systems

10
Kernel Semaphore Implementation
  • Kernel semaphore is object of type structure
    semaphore, see include/asm/semaphore.h file
  • Fields
  • count integer number
  • count gt 0 semaphore is available
  • count ? 0 semaphore is busy, count - number
    of processes waiting for resource.
  • Count 0 one use, nothing is waiting
  • The count field is decremented when a process
    acquires the lock and is incremented when the
    same process releases it.

11
Kernel Semaphore Implementation, Continued
  • wait the address of a wait queue.
  • waking integer.
  • The releasing process increments waking field(s).
  • Each of awakened process PI then enters a
    critical region of the down() function
  • Is PIs waking ltgt 0, if waking gt 0 1. acquire
    the resource
  • 2. other PKs waking--
  • if waking lt 0 go back to sleep

12
Kernel Semaphore Implementation, Continued
  • Function
  • down() called, if process wishes to acquire a
    semaphore.
  • count --
  • count ltgt 0, if count ? 0 process enter the
    critical section
  • if count lt 0 process is suspended
  • up() called, if process releases a semaphore
  • count
  • count ltgt 0 if count gt 0 up() terminates
  • if count lt 0 wake up
    other processes
  • Deadlock semaphore requests are performed in
    the address order.

13
SMP Architecture
  • Scalability of Linux - supports multiprocessing
    through Shared Memory Symmetric Multiprocessors
    (SMM) architecture.
  • scalability is the capability of a system to
    adapt to an ever-increasing work load.

14
SMP Architecture, Continued
CPU 1
CPU n
system bus
Graphical card
Memory
  • CPUs share the same memory unit
  • application processing and kernel processing are
    spread amongst all CPUs.

15
Other Multiprocessor Architectures
  • Asymmetric Multiprocessing
  • Master CPU executes the operating system code
    and application programs run on the remaining
    CPUs.
  • Massively Parallel Processing (MPP)
  • Assemble hundreds or thousand of CPUs, each with
    own system memory

16
Hardware Support for Synchronization
  • Shared Memory
  • Memory arbiter (chip between bus and every RAM
    chip) grants access to a CPU if the chip is free
    and delays access if the chip is busy.
  • Cache Synchronization
  • Hardware cache is utilized using the locality
    principle. In multiprocessor environment, each
    CPU has its own cache. Process of updating cache
    -cache snooping

17
Hardware Support for Synchronization, Continued
  • SMP Atomic Operation
  • Lock instruction prefixes for atomic operations
    were introduced.
  • If control unit detects them ? lock the memory
    bus, no other processes can access this memory
    location

18
Hardware Support for Synchronization, Continued
  • Distributed Interrupt Handling

CPU 1
CPU n
Local APIC
Local APIC
ICC bus
I/O APIC
APIC Advanced Programmable Interrupt
Controller ICC Interrupt Controller
Communication I/O APIC - router
IRQ lines
19
Linux/SMP Kernel
  • Process Descriptor Modification
  • has_cpu if has_cpu gt 0 process is running
  • Processor logical number of its CPU
  • Spin Locks
  • Blocked process keeps its own CPU by spinning
    while waiting for a resource.

20
Conclusion
  • Modern versions of Linux are available
  • Compaq Alpha
  • SPARC
  • PowerPC
  • Motorola MC680x0
  • IBM System/390
  • Multiprocessor operating system
  • Supports up to 32 CPUs

21
Bibliography
  • D. P. Bovet, M. Cesati. Understanding the Linux
    Kernel. OReilly, 2000
  • Linus Torvalds. Linux a Portable Operating
    System. Master of Science Thesis, University of
    Helsinki, Finland, 1997
  • D. Mosberg, S. Eranian IA-64 Linux Kernel
  • Prentice Hall PTR, 2002

22
Thank You
  • Any Questions?
Write a Comment
User Comments (0)
About PowerShow.com