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
.