Datasheet
Mauerer runc01.tex V2 - 09/04/2008 4:13pm Page 10
Chapter 1: Introduction and Overview
5 ? S< 0:00 _ [migration/1]
6 ? S< 0:00 _ [ksoftirqd/1]
7 ? S< 0:00 _ [migration/2]
8 ? S< 0:00 _ [ksoftirqd/2]
9 ? S< 0:00 _ [migration/3]
10 ? S< 0:00 _ [ksoftirqd/3]
11 ? S< 0:00 _ [events/0]
12 ? S< 0:00 _ [events/1]
13 ? S< 0:00 _ [events/2]
14 ? S< 0:00 _ [events/3]
15 ? S< 0:00 _ [khelper]
...
15162 ? S< 0:00 _ [jfsCommit]
15163 ? S< 0:00 _ [jfsSync]
System call Return from
system call
Must not be
accessed
User
Kernel
Interrupt
Arrows indicate that
CPU executes here
()
Figure 1-5: Execution in kernel and user mode. Most of the time, the CPU executes
code in userspace. When the application performs a system call, a switch to kernel
mode is employed, and the kernel fulfills the request. During this, it may access the
user portion of the virtual address space. After the system c all completes, the CPU
switches back to user mode. A hardware interrupt also triggers a switch to kernel
mode, but this time, the userspace portion must not be accessed by the kernel.
On multiprocessor systems, many threads are started on a per-CPU basis and are restricted to run on
only one specific processor. This is represented by a slash and the number of the CPU that are appended
to the name of the kernel thread.
Virtual and Physical Address Spaces
In most cases, a single virtual address space is bigger than the physical RAM available to the system. And
the situation does not improve when each processhasitsownvirtualaddressspace.ThekernelandCPU
must therefore consider how the physical memory actually available can be mapped onto virtual address
areas.
The preferred method is to use page tables to allocate virtual addresses to physical addresses. Whereas
virtual addresses relate to the combined user and kernel space of a process, physical addresses are used
to address the RAM actually available. This principle is illustrated in Figure 1-6.
The virtual address spaces of both processes shown in the figure are divided into portions of equal size
by the kernel. These portions are known as pages. Physical memory is also divided into pages of the
same size.
10