Linux ̄统进程管理的分析与探究 李洋庞立滨 天津工程职业技术学院 【摘要l系统在执行多道程序时需要共享资源,而这种共享资源就会 导致各个程序之间出现相互制约,这些过程都是动态的,而程序本身是一 组指令的集合,这是静态的过程,我们为了能够准确去描述程序动态的整 VSZ 显示进程占用的虚 拟内存空间大小 RSS 显示进程占用的内存空间 COMMAND 显示进程的命令名 体执行过程,就引入了“进程(Process)”这个概念 进程是具有一定 功能的程序,程序可以包括进程,进程也可以包括程序,进程是操作系统 进程的状态(STAT)。R,进程处于运行(系统的当前进程)或者准 备运行状态(等待系统分配CPU);S,进程处于睡眠状态;T’追踪或停 动态执行的基本单元,既属于基本的分配单元,也是最基本的执行单元, 止;z,僵死进程(zombie),进程已经结束但因没有妥善处理尚未释放所 本文是就以linux中进程的概念、分类、启动方式及使用方法、注意事项进行 分析和研究。 ‘ 【关键词】进程;终端;虚拟内存 一,Linux进程的基本概念 1,进程就是指系统在进行资源分配和调度所需要的最基本单位, 也是一个具有功能的程序的一次运行过程。实际上就是每一个程 序模块还有它执行时所要处理的数据共同组成了进程。 2、理解进程和程序的区别:●程序是静态的,但进程都是动态的 ●程序是永久的,但进程都是有生命的●一个程序可以包含若干个进 程,同样的,一个进程也可以包含若干个程序 3 进程号。Linux之中每一个进程都拥有一个唯一的标识号,被称 为PID(Process ID)。系统启动后的第一个进程是init,它的进程号是 l。init是惟一—一个由系统内核直接运行的进程,也是系统中所有进程的 起源。除了init之外,每个进程都有父进程。 二.kinux进程的分类 当你启动Apache程序的时候,linux系统会自动为它分配一个进程 号,然后我们就可以使用这个进程号来监视和控制这个程序,观察它的 运行状态。我们一般把进程分为以下3大类:1)交互式的进程:由一个 Shell命令来启动的进程。这些进程常和用户发生交互,要有一定的时间 来等待用户的操作。这种进程既可以在后台运行,当然也可以在前台来 运行。如控制台命令shell,文本编辑器等。2)批处理的进程:不与特定 的终端相关联,也就是不需要交互,主要是在后台运行的进程。如编译 器、数据库搜索引擎等。3)守护进程:一般是由系统在开机时自动激活 启动或是由超级管理用户root ̄启动,对调度有严格的要求,不能被低 优先级进程阻塞,一般运行于后台。如音视频应用程序等。 三 进程管理的常用命令 1.ps的应用。一功能:用来显示系统进程的各方面信息,方便我们监 视和控制程序。一格式:psi参数卜参数 ps命令常用选项说明 选项 说明 选项 说明 a 可以列出所有进程 e 在命令后显示相应的环境变量 U 显示进程属主名和启动 时间等较详细的信息 W 显示加宽可以显示较多的资讯 X 显示没有控制终端的进程 一e 显示所有进程 f 显示进程树 -f 显示全部 例如:#ps aux显示系统中正在运行的所有进程的详细信息。#ps auxf显示系统的进程树 ps命令输出信息的含义 选项 说明 选项 说明 PID 显示进程号 TIME 显示进程占用 CPU的时间 PPID 显示父进程号 USER 显示用户名 TTY 显示进程所启动的 %CPU 显示进程占用 终端次要装置 CPU使用率 STAT 显示进程当前状态 %MEM 显示占用内存与系统 内存问题的百分比 START 显示进程开始执行时间 SIZE 显示进程大小+数据 大小+栈空间大小 有资源{W,进程没有固定的pages;<,高优先级的进程;N,低优先级 的进程。作为一个Linux系统管理员,其主要的一个核心任务就是进程 的监视和控制。”ps”就是这样的一个监视Linux的标准工具,它会显示 正在运行的程序信息。比如,哪些程序运行多长时间和使用多少CPU, 哪些程序是哪个用户来运行的等等。当我们需要人为来判定是哪个程 序会让系统变慢或是终止程序的时候,这些信息则是必需的。用户可 以通过ps命令看到所有的进程,包括正在运行的和没有运行的。其中, USER域指明了是由哪个用户启动了这个命令。这个信息可以帮助你缩 小问题范围,假设某一个用户占用了服务器大量的I/O,如果我们能够 很快找到它,那么就可以释放其所占据的资源。通过ps命令,用户可以 实时地查看每个进程的状态,如占用了多少CPU,查看内存的状态及 VSZ(虚拟内存大小)和RSS(常驻集大小)的运行状态。我们可以通过 这些数据,来确定这个进程是在正常运行还是出现了异常。我们是在尽 力确保正确合理地运用系统资源,所以经常要由管理员来决定对进程进 行终止或重启的操作。 2、kill的应用 进程通信:Linux中,kill命令是通过向进程发送指定的信号来结 束进程的。前台进程在运行时,可以用[ctrl+cl键来终止它。后台进程 可以使用kill命令向进程发送强制终止信号,以达到终止进程的目的。一 功能:终止正在运行的进程或作业;一格式:kill[选项】PID 常用信号说明 信号 数值 说明 SIGHUP l 从终端上发出的结束信号,表示与终端的连接断开 SIGINT 2 从键盘上发出的结束信号,(CTRL+C) SIGQUT 3 从键盘上发出的结束信号,(CTRL+\) SIGFPE 8 浮点异常信号(如浮点运算溢出) SIGKILL 9 结束接收信号的进程(强行杀死进程) SIGTERM l5 默认的kill命令信号 SIGCHLD 17 表示子进程结束的信号 SIGSTOP l9 来自键盘的停止执行信号(CTRL+z) 通过进程ID杀死进程用kill ̄令,通过进程名字杀死进程用killall ¥ ̄pkill命 3、进程调度 进程调度就是通过合理的调度,选择下一个要运行的进程,系统资 源才能最大限度地发挥作用,多进程才会有并发执行的效果。而进程之 间是资源竞争通过谦让度来实现的。谦让度的值从一20到l9。高谦让度 表示进程优先级别最低,执行的顺序靠后。nice命令:是在创建进程时 为进程指定谦让度的值。renice命令:是通过进程ID找到相应的进程, 用此命令来修改谦让度,即是更改进程的优先级。 4、交互式的进程管理工具。●系统监视器gnome-system- monitorO终止进程工具xkillQ监视系统任务的工具top。总之,Linux 系统上每个用户任务、每个系统的守护进程,我们都称为进程。Linux 系统则用分时管理的方法能够使所有的任务共同来分享系统上的资 源。而我们要做的就是如何去控制这些进程,让它们能够很好地为用户 服务。 作者简介 李洋.单位:天津工程职业技术学院.邮政编码:500270 辩搋 奈始87