SCHED_ULE(4) BSD Kernel Interfaces Manual SCHED_ULE(4)NAME
sched_ule -- ULE scheduler
SYNOPSIS
options SCHED_ULE
DESCRIPTION
The sched_ule scheduler provides a number of advanced scheduler features not present in sched_4bsd(4), the traditional system scheduler.
These features address SMP and interactivity and include:
o Thread CPU affinity.
o CPU topology awareness, including for hyper-threading.
o Per-CPU run queues.
o Interactivity heuristics that detect interactive applications and schedules them preferentially under high load.
The following sysctls are relevant to the operation of sched_ule:
kern.sched.name
This read-only sysctl reports the name of the active scheduler.
kern.sched.quantum
This read-write sysctl reports or sets the length of the quantum (in micro-seconds) granted to a thread.
SEE ALSO sched_4bsd(4), sysctl(8)HISTORY
The sched_ule scheduler first appeared in FreeBSD 5.1.
AUTHORS
Jeff Roberson <jeff@FreeBSD.org>
BSD August 10, 2012 BSD
Check Out this Related Man Page
SCHED_4BSD(9) BSD Kernel Developer's Manual SCHED_4BSD(9)NAME
sched_4bsd -- The 4.4BSD thread scheduler
SYNOPSIS
#include <sys/sched.h>
void
resetpriority(lwp_t *l);
void
sched_tick(struct cpu_info *ci);
void
sched_schedclock(lwp_t *l);
void
sched_pstats_hook(struct proc *p, int minslp);
void
sched_setrunnable(lwp_t *l);
void
updatepri(lwp_t *l);
DESCRIPTION
The traditional 4.4BSD scheduler employs a ``multilevel feedback queues'' algorithm, favouring interactive, short-running threads to CPU-
bound ones.
resetpriority() recomputes the priority of a thread running in user mode. If the resulting priority is higher than that of the current
thread, a reschedule is arranged.
sched_tick() gets called from hardclock(9) every 100ms to force a switch between equal priority threads.
The priority of the current thread is adjusted through sched_schedclock(). The priority of a thread gets worse as it accumulates CPU time.
sched_pstats_hook() gets called from sched_pstats() every Hz ticks in order to recompute the priorities of all threads.
sched_setrunnable() checks if an LWP has slept for more than one second. If so, its priority is updated by updatepri().
CODE REFERENCES
The 4.4BSD scheduler subsystem is implemented within the file sys/kern/sched_4bsd.c.
SEE ALSO csf(9), hardclock(9), mi_switch(9), sched_m2(9), userret(9)
Marshall Kirk McKusick, Keith Bostic, Michael J. Karels, and John S. Quarterman, The Design and Implementation of the 4.4BSD Operating
System, Addison Wesley, 1996.
BSD July 14, 2007 BSD