资源预览内容
第1页 / 共36页
第2页 / 共36页
第3页 / 共36页
第4页 / 共36页
第5页 / 共36页
第6页 / 共36页
第7页 / 共36页
第8页 / 共36页
第9页 / 共36页
第10页 / 共36页
亲,该文档总共36页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
实验实验8Linux8Linux的进程管理的进程管理一、实验目的一、实验目的1熟悉和理解进程和进程树的概念,掌握熟悉和理解进程和进程树的概念,掌握有关进程的管理机制。有关进程的管理机制。2了解进程与程序、并行与串行执行的区了解进程与程序、并行与串行执行的区别。别。3掌握使用掌握使用Linux命令管理和操作进程的命令管理和操作进程的方法。方法。(2)后台启动)后台启动直接从后台手工启动一个进程用得比较少,除直接从后台手工启动一个进程用得比较少,除直接从后台手工启动一个进程用得比较少,除直接从后台手工启动一个进程用得比较少,除非是该进程比较耗时,且用户也不急于需要结果的非是该进程比较耗时,且用户也不急于需要结果的非是该进程比较耗时,且用户也不急于需要结果的非是该进程比较耗时,且用户也不急于需要结果的时候。假设用户要启动一个需要长时间运行的格式时候。假设用户要启动一个需要长时间运行的格式时候。假设用户要启动一个需要长时间运行的格式时候。假设用户要启动一个需要长时间运行的格式化文本文件的进程,为了不使整个化文本文件的进程,为了不使整个化文本文件的进程,为了不使整个化文本文件的进程,为了不使整个shellshell在格式化过在格式化过在格式化过在格式化过程中都处于程中都处于程中都处于程中都处于“ “瘫痪瘫痪瘫痪瘫痪” ”状态,从后台启动该进程可以状态,从后台启动该进程可以状态,从后台启动该进程可以状态,从后台启动该进程可以不妨碍用户同时做其他工作。从后台启动进程实际不妨碍用户同时做其他工作。从后台启动进程实际不妨碍用户同时做其他工作。从后台启动进程实际不妨碍用户同时做其他工作。从后台启动进程实际上是在命令结尾加上一个上是在命令结尾加上一个上是在命令结尾加上一个上是在命令结尾加上一个&号。键入命令以后,出号。键入命令以后,出号。键入命令以后,出号。键入命令以后,出现一个数字,该数字就是该进程的编号,又称为现一个数字,该数字就是该进程的编号,又称为现一个数字,该数字就是该进程的编号,又称为现一个数字,该数字就是该进程的编号,又称为PIDPID;然后出现提示符,用户可以继续其他工作。;然后出现提示符,用户可以继续其他工作。;然后出现提示符,用户可以继续其他工作。;然后出现提示符,用户可以继续其他工作。例如:例如:例如:例如:troff me notes note_form &troff me notes note_form &1 1 45134513实际上,前台启动与后台启动的共同特点,实际上,前台启动与后台启动的共同特点,实际上,前台启动与后台启动的共同特点,实际上,前台启动与后台启动的共同特点,是新进程都由当前是新进程都由当前是新进程都由当前是新进程都由当前shellshell进程产生,即进程产生,即进程产生,即进程产生,即shellshell创建了创建了创建了创建了新进程,称这种关系为进程间的父子关系。这里,新进程,称这种关系为进程间的父子关系。这里,新进程,称这种关系为进程间的父子关系。这里,新进程,称这种关系为进程间的父子关系。这里,shellshell是父进程,新进程是子进程。一个父进程可是父进程,新进程是子进程。一个父进程可是父进程,新进程是子进程。一个父进程可是父进程,新进程是子进程。一个父进程可以有多个子进程,一般子进程结束后才能继续父以有多个子进程,一般子进程结束后才能继续父以有多个子进程,一般子进程结束后才能继续父以有多个子进程,一般子进程结束后才能继续父进程;如果从后台启动,就不用等待子进程结束。进程;如果从后台启动,就不用等待子进程结束。进程;如果从后台启动,就不用等待子进程结束。进程;如果从后台启动,就不用等待子进程结束。一种比较特殊的情况是在使用管道符的一种比较特殊的情况是在使用管道符的时候。例如:时候。例如:nroff -man ps.1|grep kill|more这时,实际上是同时启动了三个进程,这时,实际上是同时启动了三个进程,所有放在管道两边的进程都将被同时启动,所有放在管道两边的进程都将被同时启动,它们都是当前它们都是当前shell的子程序,互相之间可以的子程序,互相之间可以称为兄弟进程。称为兄弟进程。2调度启动调度启动用户事先进行调度安排,指定任务运行用户事先进行调度安排,指定任务运行的时间或场合,由系统自动完成工作。的时间或场合,由系统自动完成工作。四、实验内容和步骤四、实验内容和步骤在在一一个个Linux系系统统中中,所所有有正正在在运运行行的的进进程程组组成成一一种种树树状状的的关关系系,初初始始化化程程序序(init程程序序)是是这这棵棵进进程程树树的的根根。init程程序序直直接接启启动动了了许许多多系系统统进进程程,这这些些程程序序大大多多数数属属于于守守护护程程序序(daemon)。守守护护程程序序在在内内存存中中运运行行以以后后,处处于于睡睡眠眠状状态态,基基本本上上不不占占用用CPU时时间间,当当对对应应的的请请求求到到达达时时,该该进进程程被被激激活活并并完完成成相相应应的的处理工作,之后再转入睡眠状态。处理工作,之后再转入睡眠状态。可以用一些可以用一些Linux命令操作和管理进程。命令操作和管理进程。1用用ps命令观察命令观察Linux正在运行的进程正在运行的进程(1)ps命令命令:用于观察正在运行的进程的:用于观察正在运行的进程的情况。情况。ps命令包括较丰富的可选参数,常见的命令包括较丰富的可选参数,常见的可选参数包括如下几个。可选参数包括如下几个。-A:显示所有用户启动的进程。:显示所有用户启动的进程。-a:显示所有其他用户的进程。:显示所有其他用户的进程。 -u:显示进程拥有者、进程启动时间等更:显示进程拥有者、进程启动时间等更详细的信息。详细的信息。-x:显示不是由终端提供的进程信息。:显示不是由终端提供的进程信息。-r:只显示正在运行的进程。:只显示正在运行的进程。-m:显示线程信息。:显示线程信息。-w:宽行显示进程信息。:宽行显示进程信息。-l:用长格式显示进程信息。:用长格式显示进程信息。-t:只显示由终端:只显示由终端/dev/tty提交的进程。提交的进程。(2)执行)执行ps命令命令操作:操作:ps命令可以显示本机正在运行命令可以显示本机正在运行的所有进程(包括其他用户和系统运行的的所有进程(包括其他用户和系统运行的进程)的详细列表。进程)的详细列表。命令格式:命令格式:ps aux执行该命令将显示类似图执行该命令将显示类似图7-1所示信息。所示信息。根据命令的执行结果,分析各进程的运行根据命令的执行结果,分析各进程的运行情况。情况。图图7-1 显示本机运行的所有进程的详细列表显示本机运行的所有进程的详细列表其中,其中,其中,其中,USERUSER:表示进程的拥有者。:表示进程的拥有者。:表示进程的拥有者。:表示进程的拥有者。%CPU%CPU:表示:表示:表示:表示CPUCPU时间的占用比例。时间的占用比例。时间的占用比例。时间的占用比例。%MEM%MEM:表示内存的占用比例。:表示内存的占用比例。:表示内存的占用比例。:表示内存的占用比例。SIZESIZE:表示进程的大小。:表示进程的大小。:表示进程的大小。:表示进程的大小。RSSRSS:表示常驻内存部分大小。:表示常驻内存部分大小。:表示常驻内存部分大小。:表示常驻内存部分大小。STARTSTART:表示进程的启动时间。:表示进程的启动时间。:表示进程的启动时间。:表示进程的启动时间。PIDPID:进程的:进程的:进程的:进程的IDID编号,每个进程都有一个惟一的编号,每个进程都有一个惟一的编号,每个进程都有一个惟一的编号,每个进程都有一个惟一的PIDPID号,初始化程序号,初始化程序号,初始化程序号,初始化程序initinit的的的的PIDPID为为为为1 1,进程越靠近,进程越靠近,进程越靠近,进程越靠近“ “进程树进程树进程树进程树” ”的根,则进程的的根,则进程的的根,则进程的的根,则进程的PIDPID就越小。就越小。就越小。就越小。TTYTTY:表示提交该进程的终端号。:表示提交该进程的终端号。:表示提交该进程的终端号。:表示提交该进程的终端号。STATSTAT:表示该进程所处的状态。常见的进程状:表示该进程所处的状态。常见的进程状:表示该进程所处的状态。常见的进程状:表示该进程所处的状态。常见的进程状态有如下几个。态有如下几个。态有如下几个。态有如下几个。R R:表示正在运行,要占用:表示正在运行,要占用:表示正在运行,要占用:表示正在运行,要占用CPUCPU的时间;的时间;的时间;的时间;S S:表示处于睡眠状态,不占用:表示处于睡眠状态,不占用:表示处于睡眠状态,不占用:表示处于睡眠状态,不占用CPUCPU的时间;的时间;的时间;的时间;D D:表示处于不可终止的睡眠状态;:表示处于不可终止的睡眠状态;:表示处于不可终止的睡眠状态;:表示处于不可终止的睡眠状态;T T:表示已停止或被跟踪;:表示已停止或被跟踪;:表示已停止或被跟踪;:表示已停止或被跟踪;TIMETIME:表示该进程已运行的时间。:表示该进程已运行的时间。:表示该进程已运行的时间。:表示该进程已运行的时间。COMMANDCOMMAND:进程所对应的命令。:进程所对应的命令。:进程所对应的命令。:进程所对应的命令。(3)绘制进程树)绘制进程树为了绘制进程树,需要获得更多有关进为了绘制进程树,需要获得更多有关进程的信息,特别是要知道每个进程的父进程程的信息,特别是要知道每个进程的父进程的的ID号。可用以下命令显示所有进程的详细号。可用以下命令显示所有进程的详细信息:信息:ps Al运行该命令后,得到当前系统的进程信运行该命令后,得到当前系统的进程信息,如图息,如图7-2所示,其中,所示,其中,F:表示进程的标志;:表示进程的标志;UID:表示进程拥有者的:表示进程拥有者的ID号;号;PPID:表示进程的父进程:表示进程的父进程ID号,其中初号,其中初始化程序始化程序init父进程父进程ID号为号为0;PRI:时间片的长度;:时间片的长度;NI:进程的优先级;:进程的优先级;UCHAN:进程中处于睡眠状态的内核:进程中处于睡眠状态的内核函数名称。函数名称。 图图7-2 执行执行ps Al命令显示的进程信息命令显示的进程信息操作:根据图操作:根据图操作:根据图操作:根据图7-27-2显示的进程信息,参照图显示的进程信息,参照图显示的进程信息,参照图显示的进程信息,参照图7-37-3所示绘所示绘所示绘所示绘制自己系统的进程树。制自己系统的进程树。制自己系统的进程树。制自己系统的进程树。图图7-3 根据图根据图7-2显示的进程信息绘制的进程树显示的进程信息绘制的进程树2用用kill命令删除进程命令删除进程当用户在某个终端仿真程序窗口中因运当用户在某个终端仿真程序窗口中因运行的程序失败而使终端停止反应,或某个进行的程序失败而使终端停止反应,或某个进程已不再有用,可以用程已不再有用,可以用kill命令删除该进程。命令删除该进程。通常,用户只能删除自己拥有的进程,只有通常,用户只能删除自己拥有的进程,只有root用户可以删除任意用户的进程。用户可以删除任意用户的进程。命令格式:命令格式:kill 其中,其中,是指要删除进程的是指要删除进程的ID号。号。操作:用操作:用操作:用操作:用kill 949kill 949命令将进程命令将进程命令将进程命令将进程IDID号为号为号为号为949949的进程的进程的进程的进程删除。删除。删除。删除。说明:由于进程说明:由于进程说明:由于进程说明:由于进程949949为进程为进程为进程为进程13461346的父进程,所的父进程,所的父进程,所的父进程,所以在删除进程以在删除进程以在删除进程以在删除进程949949的同时,也将进程的同时,也将进程的同时,也将进程的同时,也将进程13461346终止了。终止了。终止了。终止了。操作:用操作:用操作:用操作:用psps命令重新显示进程的信息。命令重新显示进程的信息。命令重新显示进程的信息。命令重新显示进程的信息。killkill实际上是将一个终止信号发送到目标进程,实际上是将一个终止信号发送到目标进程,实际上是将一个终止信号发送到目标进程,实际上是将一个终止信号发送到目标进程,该进程接收到这个信号后,结束进程的运行并释放该进程接收到这个信号后,结束进程的运行并释放该进程接收到这个信号后,结束进程的运行并释放该进程接收到这个信号后,结束进程的运行并释放占用的资源。该命令类似于占用的资源。该命令类似于占用的资源。该命令类似于占用的资源。该命令类似于WindowsWindows系统中用系统中用系统中用系统中用Ctrl+Alt+DelCtrl+Alt+Del结束任务的操作。结束任务的操作。结束任务的操作。结束任务的操作。某些进程不能通过简单的某些进程不能通过简单的某些进程不能通过简单的某些进程不能通过简单的killkill命令删除,可以命令删除,可以命令删除,可以命令删除,可以用用用用“ “无条件无条件无条件无条件” ”删除命令删除进程,即删除命令删除进程,即删除命令删除进程,即删除命令删除进程,即 kill 9 kill 9 子进程的运行受父进程状态的影响,即子进程的运行受父进程状态的影响,即如果父进程被删除,则子进程也将终止。但如果父进程被删除,则子进程也将终止。但也可以使程序的运行不受父进程的影响。可也可以使程序的运行不受父进程的影响。可以在运行该程序(命令)时用以下方式:以在运行该程序(命令)时用以下方式: nohup 有些程序本身已被设计为不受父进程影有些程序本身已被设计为不受父进程影响(大部分的守护程序均属这类程序),对响(大部分的守护程序均属这类程序),对于这些程序,只需以正常的方式运行即可。于这些程序,只需以正常的方式运行即可。对于需要长时间运行的程序,为了不影响系统的对于需要长时间运行的程序,为了不影响系统的对于需要长时间运行的程序,为了不影响系统的对于需要长时间运行的程序,为了不影响系统的工作,可以用后台运行的方法运行该程序。工作,可以用后台运行的方法运行该程序。工作,可以用后台运行的方法运行该程序。工作,可以用后台运行的方法运行该程序。LinuxLinux支持支持支持支持进程的后台执行,即在运行的命令后加一个后台执行进程的后台执行,即在运行的命令后加一个后台执行进程的后台执行,即在运行的命令后加一个后台执行进程的后台执行,即在运行的命令后加一个后台执行符符符符“ “&”&”,使相应的命令放到后台去执行。,使相应的命令放到后台去执行。,使相应的命令放到后台去执行。,使相应的命令放到后台去执行。操作:连续执行下列命令,观察后台程序的执行操作:连续执行下列命令,观察后台程序的执行操作:连续执行下列命令,观察后台程序的执行操作:连续执行下列命令,观察后台程序的执行情况:情况:情况:情况: make dep | mail sa s make dep &make dep | mail sa s make dep & ls ls以下命令在字符界面(非仿真终端)下操作:以下命令在字符界面(非仿真终端)下操作:以下命令在字符界面(非仿真终端)下操作:以下命令在字符界面(非仿真终端)下操作:在用户执行在用户执行在用户执行在用户执行logoutlogout后,未执行完毕的后台进程仍继续执后,未执行完毕的后台进程仍继续执后,未执行完毕的后台进程仍继续执后,未执行完毕的后台进程仍继续执行:行:行:行:nohup nohup & &结束所有进程:结束所有进程:结束所有进程:结束所有进程:kill 0kill 03设置和更改进程的优先级设置和更改进程的优先级进程具有优先级。优先级一般是用一个数来进程具有优先级。优先级一般是用一个数来进程具有优先级。优先级一般是用一个数来进程具有优先级。优先级一般是用一个数来表示的,这个数可以是负数,这个数越小,表示的表示的,这个数可以是负数,这个数越小,表示的表示的,这个数可以是负数,这个数越小,表示的表示的,这个数可以是负数,这个数越小,表示的优先级越高,默认的优先级为优先级越高,默认的优先级为优先级越高,默认的优先级为优先级越高,默认的优先级为0 0。如果优先级是一。如果优先级是一。如果优先级是一。如果优先级是一个负数,表示该进程具有较高的优先级,个负数,表示该进程具有较高的优先级,个负数,表示该进程具有较高的优先级,个负数,表示该进程具有较高的优先级,+20+20为最为最为最为最低优先级。具有较高优先级的进程可以获得更多的低优先级。具有较高优先级的进程可以获得更多的低优先级。具有较高优先级的进程可以获得更多的低优先级。具有较高优先级的进程可以获得更多的CPUCPU时间。时间。时间。时间。直接运行一个程序,该进程获得默认的优先直接运行一个程序,该进程获得默认的优先直接运行一个程序,该进程获得默认的优先直接运行一个程序,该进程获得默认的优先级(即优先级为级(即优先级为级(即优先级为级(即优先级为0 0),也可以在运行程序时指定优),也可以在运行程序时指定优),也可以在运行程序时指定优),也可以在运行程序时指定优先级,方法:先级,方法:先级,方法:先级,方法:nice -nice - 。例如:例如:例如:例如:nice -10 find / -name abc* printfname nice -10 find / -name abc* printfname 以优先以优先以优先以优先级级级级-10-10运行运行运行运行“ “find”find”命令命令命令命令nice -10 find / -name abc* printfname findnice -10 find / -name abc* printfname find获得获得获得获得的优先级为的优先级为的优先级为的优先级为1010操作:在字符界面下输入下列命令:操作:在字符界面下输入下列命令:操作:在字符界面下输入下列命令:操作:在字符界面下输入下列命令: nice -10 find / -name abc* printfnamenice -10 find / -name abc* printfname ps Al ps Al nice -10 find / -name abc* printfname nice -10 find / -name abc* printfname ps Al ps Al比较前后两次操作显示的进程信息。比较前后两次操作显示的进程信息。可以用可以用renice命令改变一个正在运行进命令改变一个正在运行进程的优先级。程的优先级。命令格式:命令格式:renice 只有只有root用户可以增加进程的优先级,用户可以增加进程的优先级,而且可以用于任何进程;其他用户只能改变而且可以用于任何进程;其他用户只能改变自己拥有进程的优先级,且优先级只能为自己拥有进程的优先级,且优先级只能为020。4定时执行程序定时执行程序用用用用atat命令可以定时执行指定的程序。命令可以定时执行指定的程序。命令可以定时执行指定的程序。命令可以定时执行指定的程序。命令格式:命令格式:命令格式:命令格式:at at 操作:按以下方法设定在当天的操作:按以下方法设定在当天的操作:按以下方法设定在当天的操作:按以下方法设定在当天的16:0016:00将将将将/root/abc/root/abc的文件以电子邮件方式发送给用户的文件以电子邮件方式发送给用户的文件以电子邮件方式发送给用户的文件以电子邮件方式发送给用户student01student01和和和和student02student02。(1)在提示符后输入命令)在提示符后输入命令:at 16:00at 16:00。(2)按回车键后,光标停留在下一行,并显)按回车键后,光标停留在下一行,并显示示“at”,在该提示符后输入如下命令行,在该提示符后输入如下命令行:cat /root/abc | mail s file abc student01 cat /root/abc | mail s file abc student01 student02student02(3)按回车键后,光标另起一行,仍然)按回车键后,光标另起一行,仍然显示显示“at”,按,按“Ctrl+d”组合键结束,组合键结束,同时系统显示如下信息同时系统显示如下信息:job 1 at 2003-02-10 16:00该信息说明这项任务将在当天该信息说明这项任务将在当天16:00定时执定时执行。行。at命令后面还可以带有参数,请熟悉它们的命令后面还可以带有参数,请熟悉它们的使用。使用。5在在GNOME图形用户界面下监视系统图形用户界面下监视系统的进程的进程可以在图形用户界面(可以在图形用户界面(GNOME)下使用)下使用“系统监视器系统监视器”监视进程信息。监视进程信息。启动系统监视器的方法:在启动系统监视器的方法:在GNOME的的“开始开始”菜单中选择菜单中选择“系统工具系统工具系统监视器系统监视器”选项,弹出选项,弹出“系统监视器系统监视器”对话框,如图对话框,如图7-4所所示。示。选择选择“进程列表进程列表”选项卡,监视系统进程选项卡,监视系统进程的使用情况和有关的使用情况和有关CPU、内存等的使用情况。、内存等的使用情况。图图7-4 GNOME中监视系统的进程信息中监视系统的进程信息附:上机内容附:上机内容(1)使用)使用at命令定时执行某命令,如定时命令定时执行某命令,如定时列举列举/var/log目录文件的详细信息,并将其目录文件的详细信息,并将其保存到某文本文件。保存到某文本文件。(2)使用)使用cron和和crontab周期性执行某任周期性执行某任务,例如截断日志务,例如截断日志(3)使用)使用ps和和top命令查看进程信息命令查看进程信息(4)后台执行)后台执行top命令,分别用命令,分别用kill和和killall杀死该进程。杀死该进程。五、实验总结五、实验总结1写出实验报告。写出实验报告。2根据实验所用的系统的进程信息。绘制根据实验所用的系统的进程信息。绘制出该系统的进程树。出该系统的进程树。3试分析:若删除进程号为试分析:若删除进程号为1的进程(即初的进程(即初始化程序始化程序init),将会发生什么情况,并在),将会发生什么情况,并在系统中执行并观察结果。系统中执行并观察结果。
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号