《进程管理课件》由会员分享,可在线阅读,更多相关《进程管理课件(26页珍藏版)》请在金锄头文库上搜索。
1、Chapter 7 进程管理1Chapter 6 进程管理1进程的概念进程的概念n概述概述Linux是是一一个个多多用用户户多多任任务务的的操操作作系系统统。操操作作系系统统负负责责管管理理多多个个用用户的请求和多个任务。户的请求和多个任务。 操操作作系系统统根根据据每每个个任任务务的的优优先先级级为为每每个个任任务务分分配配合合适适的的时时间间片片,每每个时间片大约都有几十毫秒。个时间片大约都有几十毫秒。每每个个任任务务都都会会被被系系统统运运行行一一段段时时间间,然然后后挂挂起起,系系统统转转而而处处理理其其他他任任务务;过过一一段段时时间间以以后后再再回回来来处处理理这这个个任任务务,直
2、直到到该该任任务务完完成成,从从任务队列中去除。任务队列中去除。 2一、 进程的概念n概述概述操作系统通过使用一系列的技术来协助完成多项任务的执行:操作系统通过使用一系列的技术来协助完成多项任务的执行:利用进程调度技术将一个利用进程调度技术将一个CPU虚拟为多个虚拟为多个CPU,从而为多个任务,从而为多个任务的执行提供了逻辑上足够多的的执行提供了逻辑上足够多的CPU。利利用用虚虚拟拟存存储储技技术术将将系系统统的的内内存存空空间间的的大大小小虚虚拟拟为为硬硬盘盘空空间间的的大大小小,从而为多个任务的执行提供了足够的内存空间。从而为多个任务的执行提供了足够的内存空间。利利用用虚虚拟拟设设备备和和
3、假假脱脱机机技技术术将将有有限限的的物物理理设设备备虚虚拟拟为为被被用用户户使使用用的的足够多的逻辑设备,从而为多个任务的执行提供了足够的外部设备。足够多的逻辑设备,从而为多个任务的执行提供了足够的外部设备。 3一、 进程的概念n程序、进程和作业程序、进程和作业1.程序程序程序是机器指令的集合,一般地,它以文件的形式存储在磁盘上。程序是机器指令的集合,一般地,它以文件的形式存储在磁盘上。2.进程进程进程是一个程序在其自身的虚拟地址空间中的一次执行活动。进程是一个程序在其自身的虚拟地址空间中的一次执行活动。3.作业作业作作业业是是指指用用户户提提交交给给计计算算机机进进行行加加工工的的一一项项任
4、任务务,它它是是由由用用户户程程序序、数据以及某种形式的控制信息组成。数据以及某种形式的控制信息组成。 4一、 进程的概念n程序、进程和作业程序、进程和作业程序和进程的比较程序和进程的比较程程序序只只是是一一个个静静态态的的指指令令集集合合;而而进进程程是是一一个个程程序序的的动动态态执执行行过过程程,它它具具有生命期,动态产生和消亡。有生命期,动态产生和消亡。进进程程是是资资源源申申请请、调调度度和和独独立立运运行行的的单单位位,因因此此,它它使使用用系系统统中中的的运运行行资资源源;程程序序不不能能申申请请系系统统资资源源,不不能能被被系系统统调调度度,也也不不能能作作为为独独立立运运行行
5、的的单单位,因此,它不占用系统的运行资源。位,因此,它不占用系统的运行资源。程程序序和和进进程程无无一一一一对对应应的的关关系系。一一方方面面一一个个程程序序可可以以由由多多个个进进程程所所共共用用;另一方面,一个进程在生命期内可以顺序执行若干个程序。另一方面,一个进程在生命期内可以顺序执行若干个程序。进程和作业的比较进程和作业的比较作作业业是是指指用用户户提提交交给给计计算算机机进进行行加加工工的的一一项项任任务务,而而在在这这项项任任务务中中可可以以有有不止一个程序,因此,当一个作业运行时就对应了多个进程。不止一个程序,因此,当一个作业运行时就对应了多个进程。5一、 进程的概念n作业控制作
6、业控制进进程程控控制制指指的的是是控控制制正正在在运运行行的的进进程程的的行行为为。在在Linux中中也也称称为为作作业控制。业控制。 Shell将将记记录录所所有有启启动动的的进进程程情情况况,在在每每个个进进程程执执行行过过程程中中,用用户户可以任意地挂起进程或重新启动进程。可以任意地挂起进程或重新启动进程。 作作业业控控制制是是许许多多Shell的的一一个个特特性性,使使用用户户能能在在多多个个独独立立进进程程间间进进行切换。行切换。 6一、 进程的概念n进程的类型和启动方式进程的类型和启动方式类型:类型:交交互互进进程程:是是由由一一个个shell启启动动的的进进程程。交交互互进进程程
7、既既可可以以在在前前台台运运行,也可以在后台运行。行,也可以在后台运行。批批处处理理进进程程:不不与与特特定定的的终终端端相相关关联联,提提交交到到等等待待队队列列中中顺顺序序执执行行进程。进程。守护进程:在守护进程:在Linux启动时初始化,需要时运行于后台的进程。启动时初始化,需要时运行于后台的进程。7一、 进程的概念n进程的类型和启动方式进程的类型和启动方式启动方式:启动方式:在在Linux系统中每个进程都具有一个进程号(系统中每个进程都具有一个进程号(PID),用于系统识),用于系统识别和进程调度。启动一个进程有两个主要途径:手工启动和调度启别和进程调度。启动一个进程有两个主要途径:手
8、工启动和调度启动。动。1.手工启动手工启动由用户输入命令,直接启动一个进程便是手工启动进程。由用户输入命令,直接启动一个进程便是手工启动进程。手工启动进程又可以分为手工启动进程又可以分为前台启动前台启动和和后台启动后台启动。前台启动前台启动手工启动一个进程的最常用的方式。手工启动一个进程的最常用的方式。后台启动后台启动很少用。很少用。2.调度启动调度启动这种启动方式是事先进行设置,根据用户要求让系统自行启动。这种启动方式是事先进行设置,根据用户要求让系统自行启动。 8二、 查看系统中的进程在在Linux系统中使用系统中使用ps命令对进程进行查看。命令对进程进行查看。ps是一个功能非常强是一个功
9、能非常强大的进程查看命令。大的进程查看命令。ps命令的格式:命令的格式:# ps 选项选项ps命令的常用选项命令的常用选项选项选项说明说明-a显示所有用户的进程(不包括没有控制终端的进程)显示所有用户的进程(不包括没有控制终端的进程) -u显示用户名和启动时间显示用户名和启动时间 -x显示没有控制终端的进程显示没有控制终端的进程 -e显示所有进程,包括没有控制终端的进程(不包括进程状态栏)显示所有进程,包括没有控制终端的进程(不包括进程状态栏)-c当程序被交换到交换空间时,用于显示命令栏当程序被交换到交换空间时,用于显示命令栏 -l长格式显示长格式显示-w宽行输出,不截取命令行宽行输出,不截取
10、命令行 9二、 查看系统中的进程ps命令输出的重要信息的含义命令输出的重要信息的含义输出项输出项说明说明PID进程号进程号 PPID父进程的进程号父进程的进程号 TTY进程启动的终端进程启动的终端 STAT进程当前状态,进程当前状态,S代表休眠状态,代表休眠状态,R代表运行状态代表运行状态 TIME进程自从启动以来占用进程自从启动以来占用CPU的总时间的总时间 COMMDAN/CMD进程的命令名进程的命令名 USER用户名用户名 %CPU占用占用CPU时间与总时间的百分比时间与总时间的百分比%MEM占用内存与系统内存总量的百分比占用内存与系统内存总量的百分比SIZE进程代码大小进程代码大小+数
11、据大小数据大小+栈空间大小(单位:栈空间大小(单位:KB)10三、 控制系统中的进程nKill命令命令当需要终止一个前台进程的时候,通常足使用当需要终止一个前台进程的时候,通常足使用Ctrl+C组合键;如组合键;如果不能解决的,这时就必须求助于果不能解决的,这时就必须求助于kill命令。该命令可以终止后台命令。该命令可以终止后台进程。进程。下列情况需要终止系统中的某个进程下列情况需要终止系统中的某个进程该进程占用了过多的该进程占用了过多的CPU时间。时间。该进程锁住了一个终端,使得其他前台进程无法运行。该进程锁住了一个终端,使得其他前台进程无法运行。该进程已经运行了相当长的时间,但足没有产生预
12、期的效果。该进程已经运行了相当长的时间,但足没有产生预期的效果。该进程产生了过多的到屏幕或到磁盘文件的输出。该进程产生了过多的到屏幕或到磁盘文件的输出。该进程无法正常终止。该进程无法正常终止。11三、 控制系统中的进程kill命令的格式:命令的格式:# kill -s 信号信号| -p a 进程号进程号1 进程进程2 或或# kill l 信号信号Kill命令的参数命令的参数选项选项说明说明pid指定被终止进程的指定被终止进程的PID-s signal指定需要送出的信号,既可以是信号名也可以是对应的数指定需要送出的信号,既可以是信号名也可以是对应的数字。如果没有指定该参数,则使用默认信号字。如
13、果没有指定该参数,则使用默认信号TERM-p指定指定kill命令只显示进程的命令只显示进程的PlD,并不真正送出结束信号,并不真正送出结束信号 -e显示信号名称列表显示信号名称列表 12三、 控制系统中的进程nLinux进程优先级进程优先级(PR),使用,使用034的整数代表;的整数代表;整数值越低,标整数值越低,标示该进程优先级越高示该进程优先级越高nnice命令命令nnice命令用于指定进程运行的优先级。其命令格式为:命令用于指定进程运行的优先级。其命令格式为:# nice n command例如:默认进程优先级为例如:默认进程优先级为16,要指定以,要指定以26这个优先级允许,如下这个优
14、先级允许,如下# nice 10 命令命令例如:要指定以例如:要指定以0这个优先级运行一个命令,如下这个优先级运行一个命令,如下# nice 16 命令命令nrenice命令命令n可以改变一个正在运行进程的优先级。其命令格式为:可以改变一个正在运行进程的优先级。其命令格式为:# renice n pid例如:例如:# renice -10 801将原优先级为将原优先级为16的进程调整为的进程调整为6(优先级变高)(优先级变高)13三、 控制系统中的进程nnohup命令命令如如果果希希望望退退出出登登录录后后自自己己的的进进程程仍仍然然能能在在后后台台继继续续运运行行,可可以以使使用用nohup
15、命令。命令。nohup命命令令将将命命令令执执行行后后的的数数据据信信息息和和错错误误信信息息储储存存到到文文件件nohup.out中。中。nohup命令的格式为命令的格式为:# nohup 命令命令 &例如:例如:# nohup ping 192.168.10.1 /dev/null &执行该命令后,即使用户退出了,仍然在后台运行该命令执行该命令后,即使用户退出了,仍然在后台运行该命令14三、 控制系统中的进程ntop命令命令top命命令令具具有有进进程程状状态态显显示示和和迸迸程程控控制制的的功功能能。Top命命令令以以动动态态的的方式进行显示,每间隔方式进行显示,每间隔5秒钟刷新一次。秒
16、钟刷新一次。top命令的格式为命令的格式为:# top 选项选项选项选项说明说明-d指定每两次屏幕刷新之间的时间间隔指定每两次屏幕刷新之间的时间间隔-q立即更新所显示的信息立即更新所显示的信息-S使用累计模式使用累计模式-s在安全模式下运行在安全模式下运行top-I忽略空闲进程和假死进程忽略空闲进程和假死进程-c显示整个命令行而不仅只是显示命令名显示整个命令行而不仅只是显示命令名15四、 自动安排进程任务1.At和和batch用户可以事先进行调度安排,指定任务运行的时间或者场合,到时候系统会用户可以事先进行调度安排,指定任务运行的时间或者场合,到时候系统会自动完成这一切工作。自动完成这一切工作
17、。 常用的命令:常用的命令:at:安排作业在某一时刻执行一次。:安排作业在某一时刻执行一次。batch:安排作业在系统负载不重时执行一次。:安排作业在系统负载不重时执行一次。cron:安排周期性运行的作业。:安排周期性运行的作业。nat命令命令使用使用at执行作业,必须将服务执行作业,必须将服务atd启动起来启动起来#/etc/init.d/atd start语法格式如下语法格式如下: at -V -q 队列队列 -f 文件名文件名 -mldbv at c 作业作业1 作业作业2 1 作业作业n例如:例如:# at f /home/text 5:00 9/21/200416四、 自动安排进程任
18、务At命令选项说明命令选项说明选项选项说明说明-m作业结束后将发送邮件给执行作业结束后将发送邮件给执行at命令的用户命令的用户-f 从指定的文件从指定的文件file中读取执行的命令,而不是从标准输入中读取执行的命令,而不是从标准输入-lat命令的一个别名,用于检查安排的作业序列命令的一个别名,用于检查安排的作业序列-q 指定使用的队列,队列名称是单个字母,指定使用的队列,队列名称是单个字母,a为默认队列为默认队列-dat命令的一个别名,用于删除指定队列中要执行的命令序列命令的一个别名,用于删除指定队列中要执行的命令序列-V打印打印at程序版本程序版本-c将作业内容输出到控制台将作业内容输出到控
19、制台17四、 自动安排进程任务nat命令的执行结果命令的执行结果执执行行at命命令令安安排排作作业业时时,所所有有的的输输出出,包包括括标标准准输输出出和和错错误误信信息息,都将会发送给提交这一命令的用户。都将会发送给提交这一命令的用户。 如如果果不不希希望望这这样样把把正正常常的的输输出出初初错错误误信信息息放放在在一一起起,可可以以把把标标准准输输出重定向到其他文件或空设备。出重定向到其他文件或空设备。18四、 自动安排进程任务nat命令的配置文件命令的配置文件/etc/at.allow和和/etc/at.deny。如如果果/ec/at.allow文文件件存存在在,那那么么只只有有列列在在
20、此此文文件件中中的的用用户户才才可可以以便用机命令便用机命令;若若/etc/at.allow文文件件不不存存在在,则则检检查查/etc/at.deny文文件件是是否否存存在在。若若/etc/at.deny存在,则在此文件中列出的用户都不能使用该命令。存在,则在此文件中列出的用户都不能使用该命令。如如果果两两个个文文件件都都不不存存在在,则则只只有有超超级级用用户户可可以以使使用用该该命命令令。如如果果两两个文件都存在而且均为空,则所有用户都可以使用该命令。个文件都存在而且均为空,则所有用户都可以使用该命令。19四、 自动安排进程任务nbatch命令命令命令的功能:命令的功能:安安排排一一个个或
21、或多多个个命命令令在在系系统统负负载载较较轻轻(即即平平均均负负载载降降到到0.8以以下下)时运行。时运行。命令的格式和用法:命令的格式和用法:与与at命令的格式和用法基本一致,只是不用指定运行时间。命令的格式和用法基本一致,只是不用指定运行时间。例如:例如:# batch f /home/text 20四、 自动安排进程任务2.应用程序应用程序croncron命令可以来完成不断重复的任务。命令可以来完成不断重复的任务。cron命令在系统启动时就由一个命令在系统启动时就由一个Shell脚本自动启动,进入后台。脚本自动启动,进入后台。一般的用户没有运行该命令的权限。一般的用户没有运行该命令的权限
22、。n使用使用at执行作业,必须将服务执行作业,必须将服务atd启动起来启动起来#/etc/init.d/crond start工作原理:工作原理:Cron启启动动后后,首首先先检检查查是是否否有有用用户户设设置置了了crontab文文件件,如如果果没没有有就就转转入入“休休眠眠”状状态态,释释放放系系统统资资源源。然然后后每每分分钟钟过过后后,查查看看当当前前是是否否有有需需要要运运行行的的命命令令。命命令令执执行行结结束束后后,任任何何输输出出都都将将作作为为邮邮件件发发给给crontab的的所所有有者者,或或者者是是/etc/crontab文文件件中中MAILTO环环境境变量中指定的用户。
23、变量中指定的用户。21四、 自动安排进程任务2.应用程序应用程序cronncrontab命令命令crontab命命令令用用于于安安装装、删删除除或或者者列列出出用用于于驱驱动动cron后后台台进进程程的的表表格。格。每个用户都可以有自己的每个用户都可以有自己的crontab文件。文件。crontab文件是通过文件是通过crontab命令创建的。命令创建的。crontab命令的格式:命令的格式:crontab -u user crontab -u user -l|-r|-e22四、 自动安排进程任务 crontab 命令选项说明命令选项说明选项选项说明说明-u 指定具体用户的指定具体用户的cro
24、ntab文件将被修改文件将被修改-l 该选项将在标准输出上显示当前的该选项将在标准输出上显示当前的crontab-r 删除当前的删除当前的crontab-e 使用使用VISUAL或或EDITER环境变量指定的编辑器编辑环境变量指定的编辑器编辑当前的当前的crontab文件;当结束编辑离开时,编辑后的文件;当结束编辑离开时,编辑后的文件将自动安装文件将自动安装23四、 自动安排进程任务当用户安装一个新的当用户安装一个新的crontab文件时,需要安装来源文件,该文件文件时,需要安装来源文件,该文件每一行的格式为:每一行的格式为:Minute hour day-of-month month-of-
25、year day-of-week commands每行中都由用空格间隔的每行中都由用空格间隔的6个字段组成。个字段组成。 这些项都不能为空,必须填入。这些项都不能为空,必须填入。每个时间字段都可以指定多个值,每个时间字段都可以指定多个值,它们之间用逗号间隔。如果用户不需要指定其中的几项,那么可以它们之间用逗号间隔。如果用户不需要指定其中的几项,那么可以使用使用“*”代替。代替。 cron守守护护进进程程每每分分钟钟被被唤唤醒醒一一次次,当当crontab中中的的时时间间和和日日期期与与系系统统的的当当前前时时间间和和日日期期相相同同时时,就就执执行行commands字字段段所所指指定定的的命命
26、令令、程序或脚本。程序或脚本。注注意意:命命令令应应该该给给出出绝绝对对路路径径,并并且且用用户户必必须须具具有有运运行行所所对对应应的的命命令或程序的权限,这样,令或程序的权限,这样, cron才能启动此用户安排的作业。才能启动此用户安排的作业。24举例假设用户假设用户linux需要创建自己的需要创建自己的cron文件。文件内容为在每周的周文件。文件内容为在每周的周日凌晨日凌晨1点对点对/home/linux目录下的文件进行备份,备份的文件名目录下的文件进行备份,备份的文件名为为/home/linux_bak/bak_linux.tar.gz。实现如下:实现如下:25作 业1、说明进程的类型和启动方式。、说明进程的类型和启动方式。26