IBM has a new article by Martin Streicher that explains just how Unix processes are able to multitask.
Speaking UNIX, Part 8: UNIX processes
03 Apr 2007
On UNIX® systems, each system and end-user task is contained within a process. The system creates new processes all the time and processes die when a task finishes or something unexpected happens. Here, learn how to control processes and use a number of commands to peer into your system.
At a recent street fair, I was mesmerized by the one-man band. Yes, I am easily amused, but I was impressed nonetheless. Combining harmonica, banjo, cymbals, and a kick drum — at mouth, lap, knees, and foot, respectively — the veritable solo symphony gave a rousing performance of the Led Zeppelin classic “Stairway to Heaven” and a moving interpretation of Beethoven’s Fifth Symphony. By comparison, I’m lucky if I can pat my head and rub my tummy in tandem. (Or is it pat my tummy and rub my head?)
Lucky for you, the UNIX® operating system is much more like the one-man band than your clumsy columnist. UNIX is exceptional at juggling many tasks at once, all the while orchestrating access to the system’s finite resources (memory, devices, and CPUs). In lay terms, UNIX can readily walk and chew gum at the same time.
This month, let’s probe a little deeper than usual to examine how UNIX manages to do so many things simultaneously. While spelunking, let’s also glimpse the internals of your shell to see how job-control commands, such as Control-C (terminate) and Control-Z (suspend), are implemented. Headlamps on! To the bat cave!
The article provides a wonderful overview with commands you can run to monitor your own Unix (or Linux or even MacOSX) box. Understanding how Unix/Linux/MacOSX works is not always so easy. I can’t stress enough that DBAs need to know the operating system that their databases reside on.
This was reported on Digg, Slashdot and a myriad of other sites.