Process and Thread State Diagrams © 2004, D. J. Foreman
Basic Transitions # ready queues may be >1 © 2004, D. J. Foreman
Java Thread States waiting Ready/Running new Terminated © 2004, D. J. Foreman
UNIX Process States C New D Pre-empted Ready in memory Ready Swapped A=system call or interrupt B=interrupt/return C=RAM available D=no RAM C New D Pre-empted Ready in memory swap in/out Ready Swapped int/sig A re-sched User Running Waiting in memory Kernel Running Waiting Swapped B Terminated Blocking I/O or Wait requested © 2004, D. J. Foreman
Windows Thread States Runnable Not runnable CPU scheduled New Ready Running preempted Block requested Block released Waiting Terminated Page/stack wait Not runnable © 2004, D. J. Foreman
Linux Process/Thread States New Ready Running Terminated H/W Any signal or event Uninterruptible Interruptible Signal Stopped* ULT=kernel-level process * Requires action from another process © 2004, D. J. Foreman
UNIX Kernel Monolithic Kernel Module (one block of code) contains: Process Management Memory Management File Management Device Mgmt Infrastructure © 2004, D. J. Foreman
Memory Mgmt Basic functions: MUCH more on this in another chapter Block allocation (user free storage) Isolation (storage key setting or equivalent) Virtualization of addresses MUCH more on this in another chapter © 2004, D. J. Foreman
File Mgmt Bound to physical device File "handles" Directory maintenance (as needed) Error handling Detection Recovery Movement of data to/from device © 2004, D. J. Foreman