IBM REDP-4285-00 Tablet User Manual


 
Chapter 1. Understanding the Linux operating system 7
Draft Document for Review May 4, 2007 11:35 am 4285ch01.fm
In a multi-processor environment, interrupts are handled by each processor. Binding
interrupts to a single physical processor may improve system performance. For further
details, refer to 4.4.2, “CPU affinity for interrupt handling”.
1.1.7 Process state
Every process has its own state to show what is currently happening in the process. Process
state changes during process execution. Some of the possible states are as follows:
TASK_RUNNING
In this state, a process is running on a CPU or waiting to run in the queue (run queue).
TASK_STOPPED
A process suspended by certain signals (ex. SIGINT, SIGSTOP) is in this state. The process
is waiting to be resumed by a signal such as SIGCONT.
TASK_INTERRUPTIBLE
In this state, the process is suspended and waits for a certain condition to be satisfied. If a
process is in TASK_INTERRUPTIBLE state and it receives a signal to stop, the process
state is changed and operation will be interrupted. A typical example of a
TASK_INTERRUPTIBLE process is a process waiting for keyboard interrupt.
TASK_UNINTERRUPTIBLE
Similar to TASK_INTERRUPTIBLE. While a process in TASK_INTERRUPTIBLE state can
be interrupted, sending a signal does nothing to the process in
TASK_UNINTERRUPTIBLE state. A typical example of TASK_UNINTERRUPTIBLE
process is a process waiting for disk I/O operation.
TASK_ZOMBIE
After a process exits with exit() system call, its parent should know of the termination. In
TASK_ZOMBIE state, a process is waiting for its parent to be notified to release all the
data structure.
Figure 1-6 Process state
Processor
TASK_INTERRUPTIBLE
TASK_INTERRUPTIBLE
TASK_RUNNING
(READY)
TASK_RUNNING
(READY) TASK_RUNNING
TASK_RUNNING
TASK_ZOMBIE
TASK_ZOMBIE
TASK_STOPPED
TASK_STOPPED
exit()
TASK_UNINTERRUPTIBLE
TASK_UNINTERRUPTIBLE
Preemption
Scheduling
fork()