The kernel is the core of the operating system(s) running on the ARM9 and ARM11 CPUs. Among other things, it is responsible for memory management, access control, and process scheduling. It furthermore provides userland applications with fundamental functionality like memory allocation, multithreading, and interprocess communication.
Low-level system information is exposed by the kernel via mapping the Configuration Memory page in all processes.
Little is known about the scheduler behavior of the 3DS kernel.
Threads on the ARM11 appcore seem to use cooperative multithreading, i.e. the only way for a CPU to be assigned to another thread is by invoking a system call. Most system calls trigger the scheduler, although some of them only conditionally do.
Threads on the ARM11 syscore have been hypothesized to use preemptive multithreading, but this is unconfirmed so far.
It is unknown how the ARM9 CPU core and the two remaining New3DS ARM11 cores are scheduled.