上述的描述是在一台计算机上只有一颗CPU,并且该CP只有 个核心的情形,在这种环境下,虽然系统可以运行多个任务,但是在 某一个时间点,CP只能执行一个进程。但是如果一台计算机有多颗 CPU,每颗CPU有多个核心的情形下,多任务的处理方式是不同的, 因此在某个时间点上,可以有多个进程同时运行。 进程的的基本定义是:在自身的虚拟地址空间运行的一个独立的 程序,从操作系统的角度来看,所有在系统上运行的东西,都可以称 为一个进程。 需要注意的是程序和进程是有区别的,进程虽然有程序产生,但 是它并不是程序,程序是一个进程指令的集合,它可以启用一个或多 个进程,同时,程序只占用磁盘空间,而不占用系统运行资源,而进 程仅占用系统内存空间,是动态的、可变的,关闭进程,占用的内存 资源随之释放 例如,用户在 Linux上打开一个文件、就会产生一个打开文件的 进程,关闭文件,进程也随机关闭。如果在系统上启动一个服务,例 如启动 tomcat服务,就会产生一个对应的java的进程。而如果启动 apache服务,就会产生多个httpd进程。 关于进程的更详细的介绍,请参阅《操作系统原理》。 1.2进程的分类 按照进程的功能和运行的程序分类,进程可划分为两大类 系统进程:可以执行内存资源分配和进程切换等管理工作。该进 程的运行不受用户的干预,即使是root用户也不能干预系统进程的 运行。 用户进程:通过执行用户程序、应用程序或内核之外的系统程序 而产生的进程,此类进程可以在用户的控制下运行或关闭。 用户进程又可以细分为交互进程、批处理进程和守护进程三类。 交互进程:由一个shel1终端启动的进程,在执行过程中,需要 与用户进行交互操作,可以运行于前台,也可以运行在后台。 批处理进程:该进程是一个进程集合,负责按顺序启动其他的进 程 2《Linux操作系统》讲稿/河南中医学院/阮晓龙/rx@hactcm.edu.cn2 《Linux 操作系统》讲稿 / 河南中医学院 / 阮晓龙 / rxl@hactcm.edu.cn 上述的描述是在一台计算机上只有一颗 CPU,并且该 CPU 只有一 个核心的情形,在这种环境下,虽然系统可以运行多个任务,但是在 某一个时间点,CPU 只能执行一个进程。但是如果一台计算机有多颗 CPU,每颗 CPU 有多个核心的情形下,多任务的处理方式是不同的, 因此在某个时间点上,可以有多个进程同时运行。 进程的的基本定义是:在自身的虚拟地址空间运行的一个独立的 程序,从操作系统的角度来看,所有在系统上运行的东西,都可以称 为一个进程。 需要注意的是程序和进程是有区别的,进程虽然有程序产生,但 是它并不是程序,程序是一个进程指令的集合,它可以启用一个或多 个进程,同时,程序只占用磁盘空间,而不占用系统运行资源,而进 程仅占用系统内存空间,是动态的、可变的,关闭进程,占用的内存 资源随之释放。 例如,用户在 Linux 上打开一个文件、就会产生一个打开文件的 进程,关闭文件,进程也随机关闭。如果在系统上启动一个服务,例 如启动 tomcat 服务,就会产生一个对应的 java 的进程。而如果启动 apache 服务,就会产生多个 httpd 进程。 关于进程的更详细的介绍,请参阅《操作系统原理》。 1.2 进程的分类 按照进程的功能和运行的程序分类,进程可划分为两大类: 系统进程:可以执行内存资源分配和进程切换等管理工作。该进 程的运行不受用户的干预,即使是 root 用户也不能干预系统进程的 运行。 用户进程:通过执行用户程序、应用程序或内核之外的系统程序 而产生的进程,此类进程可以在用户的控制下运行或关闭。 用户进程又可以细分为交互进程、批处理进程和守护进程三类。 交互进程:由一个 shell 终端启动的进程,在执行过程中,需要 与用户进行交互操作,可以运行于前台,也可以运行在后台。 批处理进程:该进程是一个进程集合,负责按顺序启动其他的进 程