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().
/usr/src.
The 4.4BSD scheduler subsystem is implemented within the file
sys/kern/sched_4bsd.c.