FreeBSD Kernel Internals, Dr. Marshall Kirk McKusick
FreeBSD Kernel Internals, Dr. Marshall Kirk McKusick
The first hour of Marshall Kirk McKusick's course on FreeBSD kernel internals based on his book, The Design and Implementation of the FreeBSD Operating System.
I got the freebsd kernel source from the first install CD(in directory:\7.0-RELEASE\src\),isn't right? if so,how can i read it? Is there any tools? (1 Reply)
I got the freebsd kernel source from the first install CD(in directory:\7.0-RELEASE\src\),isn't right? if so,how can i read it? Is there any tools? (4 Replies)
All,
I am a bit of a BSD newbie and haven't really played with it for years, but I have had a recent situation whereby someone attempted to load a custom kernel module and ended up breaking my BSD server.
I managed to fix it by doing the following:
Booting into loader mode:
unload
set... (3 Replies)
Hi,
Does anybody have a good pointer on Linux kernel internals for ARM architecture? I can locate plenty for x86 but since ARM is RISC I think there would be subtle changes. So if somebody has a knowledge of good document on Linux Kernel internals for ARM or even a comparative study of kernel on... (0 Replies)
Hello,
Long-time Unix hacker here - I've worked on four variants of the kernel prior to the introduction of Linux. In my spare time, I've written Linux (Ubuntu) device drivers, kernel modules, cross-compiled, and built the kernel.
I'd like to do Linux internals/device drivers as a day job,... (1 Reply)
Discussion started by: OriginalVersion
1 Replies
LEARN ABOUT NETBSD
sched_4bsd
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