Monday, June 17, 2013

Thread Scheduling

 Thread Scheduling

  • The process scheduler schedules only the kernel threads.
  • User threads are mapped to kernel threads by the thread library - The OS ( and in particular the scheduler ) is unaware of them.

Contention Scope
  • Contention scope refers to the scope in which threads compete for the use of physical CPUs.
  • On systems implementing many-to-one and many-to-many threads, Process Contention Scope, PCS, occurs, because competition occurs between threads that are part of the same process. ( This is the management / scheduling of multiple user threads on a single kernel thread, and is managed by the thread library. )
  • System Contention Scope, SCS, involves the system scheduler scheduling kernel threads to run on one or more CPUs. Systems implementing one-to-one threads ( XP, Solaris 9, Linux ), use only SCS.
  • PCS scheduling is typically done with priority, where the programmer can set and/or change the priority of threads created by his or her programs. Even time slicing is not guaranteed among threads of equal priority.

Pthread Scheduling

  • The Pthread library provides for specifying scope contention:
  • PTHREAD_SCOPE_PROCESS schedules threads using PCS, by scheduling user threads onto available LWPs using the many-to-many model.
  • PTHREAD_SCOPE_SYSTEM schedules threads using SCS, by binding user threads to particular LWPs, effectively implementing a one-to-one model.

No comments:

Post a Comment