SCHED_4BSD(9) | Kernel Developer's Manual | SCHED_4BSD(9) |
sched_4bsd
—
#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);
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
().
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.
July 14, 2007 | NetBSD 8.99 |