通常,用户在计算机上安装了许多应用程序,而且这些应用程序都是纯被动实体。磁盘上的程序所包含的数据仅在程序运行时需要,这些数据由可执行代码和应用程序数据组成。当用户启动应用程序时,操作系统会将程序的代码和数据从磁盘加载到内存中,并开始执行代码。一个正在执行的程序称为“进程”。与程序不同,进程是主动实体,由程序执行期间单个实例的状态快照组成。其中包括程序代码、程序分配的内存以及当前的执行状态,如程序当前正在执行的函数的CPU指令、变量内容和内存分配情况。 通常,系统会同时运行许多进程。其中包括用户启动的应用程序(如iTunes或Safari)、操作系统自动启动的进程和不提示用户而运行的进程。例如,时间机器(Time Machine)备份服务每小时在后台自动运行一次,执行数据备份。而同一时刻,可能有同一程序的多个实例在执行,此时操作系统会将每个实例看做不同的进程。图1-3展示了Mac OS X中的实用程序Activity Monitor,我们可以用它查看系统上运行的所有进程。