Thread Scheduling in FreeBSD 5.2

  • Authors:
  • Marshall Kirk McKusick;George V. Neville-Neil

  • Affiliations:
  • Usenix Association;-

  • Venue:
  • Queue - RFID
  • Year:
  • 2004

Quantified Score

Hi-index 0.00

Visualization

Abstract

A busy system makes thousands of scheduling decisions per second, so the speed with which scheduling decisions are made is critical to the performance of the system as a whole. This article - excerpted from the forthcoming book, "The Design and Implementation of the FreeBSD Operating System" - uses the example of the open source FreeBSD system to help us understand thread scheduling. The original FreeBSD scheduler was designed in the 1980s for large uniprocessor systems. Although it continues to work well in that environment today, the new ULE scheduler was designed specifically to optimize multiprocessor and multithread environments. This article first studies the original FreeBSD scheduler, then describes the new ULE scheduler. The article does not describe the realtime scheduler that is also available in FreeBSD.