Module 20: Multi-core Computing Multi-processor Scheduling
  Lecture 40: Multi-core Computing Synchronization
 


Thread Scheduling

  • An application can be implemented as a set of threads that cooperate and execute concurrently in the same address space.
  • Load Sharing: pool of threads, pool of processors.
  • Gang scheduling: Bunch of related threads scheduled together.
  • Dedicated processor assignment: Each program gets as many processors as there are parallel threads.
  • Dynamic scheduling: More like demand scheduling.

Multi-core Computing Synchronization

Problem

  • Multiple concurrent processes or threads using shared memory to communicate.
    • Concurrent access to the same data may lead to inconsistencies.
  • An innocent looking code may not work when concurrency is involved.
  • Remember Producer-Consumer code.