ULE scheduler

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

ULE scheduler
Original author(s)Jeff Roberson[1]
Initial release26 January 2003 (2003-01-26)[2]
Stable release3.0 (27 February 2008) [±]
Repository Edit this at Wikidata
Written inC
Operating systemFreeBSD
LicenseBSD 2-clause

ULE is the default scheduler for the FreeBSD operating system (versions 7.1 and forward) for the i386 and AMD64 architectures.[3] It was introduced in FreeBSD version 5,[4] but it was disabled by default for a time in favor of the traditional BSD scheduler until it reached maturity. The original BSD scheduler does not make full use of SMP or SMT,[5] which is important in modern computing environments. The primary goal of the ULE project is to make better use of SMP and SMT environments. ULE should improve performance in both uniprocessor and multiprocessor environments,[6] as well as interactive response under heavy load.[7] The user may switch between the BSD scheduler and ULE using a kernel compile-time tunable.[8]


  1. ^ "SCHED_ULE(4) man page". Retrieved 2 September 2008.
  2. ^ "FreeBSD CVS log". Retrieved 27 August 2008.
  3. ^ "FreeBSD 7.1-RELEASE Release Announcement". retrieved on 5 January 2009
  4. ^ "ULE: A Modern Scheduler for FreeBSD" (PDF). Retrieved 23 June 2008.
  5. ^ Kirk McKusick & Neville-Neil 2004, 4.4. Thread Scheduling.
  6. ^ "FreeBSD 7.0-RELEASE Release Notes". Retrieved 23 June 2008.
  7. ^ Jeff Roberson. "ULE 2.0". Archived from the original on 17 May 2008. Retrieved 2 September 2008.
  8. ^ "FreeBSD Handbook". Chapter 8 Configuring the FreeBSD Kernel. Retrieved 18 March 2009.