In Chapter 2, "Managing the Panther Workspace," you learned how pressing Option-Command-Escape opens a process list and enables you to force-quit open applications on the system. The Activity Monitor application is similar but contains information on all the system's processes, not just the GUI software that is running. Figure 3.46 shows the default Activity Monitor display.
Figure 3.46 The Process Listing can show you everything that is running on your computer.
Controlling the Process Listing
Using the controls in the Process Listing screen, you can configure the type of output and amount of the information displayed.
The Filter and Show features help limit the amount of data shown within the process listing. Typing into the Find field filters processes that match the given string. For example, typing Internet would limit the displayed processes to those that have the word "Internet" in their name, such as Internet Explorer. The Show pop-up menu filters processes based on the owner. You can change the setting to show the following categories:
All ProcessesAll the processes running on the system.
All Processes HierarchicallyAll the processes running on the system, sorted into a parent/child hierarchy.
My ProcessesThe processes running under your user account.
Administrator ProcessesThe processes running with administrative rights.
Other User ProcessesProcesses running from other user accounts (not including root).
Active ProcessesProcesses that are currently running and active.
Inactive ProcessesProcesses that are running, but sleeping (not consuming CPU time).
Windowed ProcessesProcesses running under the Mac OS X windowing system. (Your GUI applications.)
The process listing is not, as you might first think, a real-time view of the programs running on the system. The process information is always changing. To avoid overwhelming the user with a list that jumps all over the place, the process list is only updated every few seconds. Using the Monitor, Update Frequency menu selection, you can change the rate at which the list is refreshed. The larger the number, the longer you must wait for updates.
Processes are listed based on seven columns: Process ID, Name, User, % CPU, Threads, Real Memory, and Virtual Memory. Each column can be sorted by clicking on the column heading. Click the small triangle in the upper-right corner of the process list to reverse the sorting order.
Using the toolbar icons, you can export a process listing as an XML file, quit a process, or view details about a process using Inspect (Command-I).
If you use the Quit button to force a process to quit, make absolutely sure that it isn't a critical process. Because you now have access to the processes that control Mac OS X, be aware that your actions could result in making your system inoperable.
If you want even more information about a process, you can double-click it within the listing or highlight it and click the Inspect ("I") icon in the toolbar, or choose Process, Inspect (Command-I). A detail window, shown in Figure 3.47, appears.
Figure 3.47 View details about a selected process
At the top of the detail window you can view the following information:
Parent Process IDThe process that started the selected process. For example, if a user starts a program from the command line (the "shell"), the ID of the shell is listed as the program's parent process ID. Processes started at boot time list the parent process ID of 1 (init). Note that the Parent process name is a hyperlinkclicking it opens the details window for the parent process.
Group IDThe ID of the group used to start the process.
%CPUThe amount of CPU time that the process is taking.
UserThe user who owns the process.
The middle portion of the process details window displays information about one of three categories, depending on which button in the button bar is highlighted: Memory, Statistics, or Open Files:
MemoryThe amount of memory (real and virtual) being used by the process. For information on memory "types" visit (http://developer.apple.com/documentation/Performance/Conceptual/Performance/VirtualMemory/Virtual_ Mem_on_Mac_OS_X.html).
StatisticsInformation about how the process is behaving on your system, including threads, CPU time used, and the number of Unix system calls processed.
Open FilesA list of files that are open and in-use by the process.
At the bottom of the details window are three buttons: Sample, Quit, and Close. The Sample button takes a sample trace of the process execution over several seconds (this is mostly only useful for developers). The Quit button will force-quit the process, and Close will close the details window.
Displaying System Statistics
At the bottom of the Activity Monitor window are controls for viewing CPU usage, System Memory, Disk Activity, Disk Usage, and Network activity. These provide an overview of activity and usage across the entire system; they are not at all dependent processes selected in the process listing. Let's run through each pane and the information it contains.
The CPU usage pane, shown in Figure 3.48. displays the current activity level of the CPU(s) on your system.
Figure 3.48 View your system activity level in the CPU pane.
Three types of "activity" are monitored:
UserCPU time that is used by user-started processes and applications.
SystemProcessor usage by the system processes, such as the WindowServer and other components of the operating system. The System CPU time often correlates directly to the user activity. Dragging objects within an application, for example, places a load on the application and on the Mac OS X graphics and event-processing subsystem.
NiceCPU time used by processes running with an altered scheduling priority. All user processes start with the same priority of execution. This priority can be adjusted with the nice and renice commands to provide them with more or less access to CPU time.
The fourth value (idle) is actually just a "lack" of activity (100% minus the other three values). The total number of threads and processes is also displayed.
To the right of the readouts is a scrolling graph that displays the three types of CPU activity.
In the CPU pane and any other pane, you can alter the colors used in the graph by clicking the color wells to the right of each readout.
The System Memory pane shows the overall memory usage for the system, as displayed in Figure 3.49.
Figure 3.49 Monitor your system's memory usage.
Although most of the data labels should be obvious (active memory, inactive memory, total used, and so on), the Wired reading may be confusing if you've never encountered it before. Wired memory cannot be written to virtual memory and must remain in real memory by the system. A properly operating idle system should not display an increase in real memory over an extended period of time. If it does, a memory leak in a system component (such as a device driver) may be slowly eating away at your resources.
The third pane, Disk Activity, tracks your disk usagereads/writes on your drives. This pane is demonstrated in Figure 3.50.
Figure 3.50 View the read/write activity on your local drives.
The Disk Usage pane, shown in Figure 3.51, displays the amount of available free space on any of your currently mounted volumes.
Use the pop-up menu in the Disk Usage pane to choose the drive you want to monitor.
Figure 3.51 Monitor how much remaining space is available on your local and network volumes.
The final pane, Network, displays the amount of data and packets going in and out of your active network interfaces. Figure 3.52 shows the Network pane.
Figure 3.52 The Network pane can be used to monitor incoming and outgoing data.
Displaying Monitor Graphs
You've already seen that the Activity Monitor is capable of producing graphs to display your CPU usage, among other things. Keeping the Activity Monitor window open to view the graphs, however, isn't realistic if you plan to use your computer for actual work.
Thankfully, Apple provides a number of ways of displaying some of the information in floating windows or within the Dock icon. The Monitor menu provides access to all these functions:
Show CPU Usage (Command-2)Displays a floating window with an instantaneous view of the CPU usage.
Floating CPU WindowChanges the appearance of the CPU window. Display it horizontally (Command-4) or vertically (Command-5).
Show CPU History (Command-3)Displays a growing graph of CPU usage over time, just like the CPU pane discussed earlier. This display can be seen in Figure 3.53.
Clear CPU History (Command-K)Clears the current CPU history graph.
Show CPU Monitors on Top of Other WindowsIf selected, the floating windows will always be on top of any other application windows.
Dock IconIf you'd rather display CPU Usage, CPU History, Memory Usage, or Network usage in the Activity Monitor Dock icon, this submenu allows you to choose what the icon will display.
Update FrequencyAs mentioned earlier, the Update frequency changes how frequently the process list is updated as well as the individual graphs.
Figure 3.53 Display your CPU usage in a floating window or in the Dock icon.
The Process Viewer's menus provide a bit more control over the application, such as exporting the current process list to an XML file and sorting the output list.
Use the File menu options to print or export the list of processes. These options can be useful for creating a record of normal system activity to refer to if you think your system is misbehaving:
Save (Command-S)Exports the current list of processes as an XML file that can be viewed with Apple's XML editor (included with the Developer tools). You can also export the process list with the Export button in the toolbar. Learn more about XML's role in Mac OS X in Chapter 20, "Command-Line Configuration and Administration."
Print (Command-P)Prints the process list. Only the processes in the visible portion of the window are printed!