文档详情

实验7Linux的进程管理

M****1
实名认证
店铺
PPT
458KB
约34页
文档ID:605139573
实验7Linux的进程管理_第1页
1/34

单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,点击此处结束放映,单击此处编辑母版标题样式,实验7 Linux的进程管理,一、实验目的,二、实验工具与设备,三、实验预备知识,四、实验内容和步骤,五、实验总结,一、实验目的,1熟悉和理解进程和进程树的概念,掌握有关进程的管理机制2了解进程与程序、并行与串行执行的区别3掌握使用Linux命令管理和操作进程的方法二、实验工具与设备,已安装,Linux,系统的计算机三、实验预备知识,Linux,用分时管理方法使所有的任务共同分享系统资源我们讨论进程的时候,不会去关心这些进程究竟是如何分配的,或者是内核如何管理、分配时间片的,我们所关心的是如何去控制这些进程,让它们能够很好地为用户服务进程和作业的概念有区别一个正在执行的进程称为一个作业,作业可以包含一个或多个进程,尤其是当使用了管道和重定向命令例如,作业“,ls/usr/bin|wc-w”,同时启动了两个进程作业控制即控制正在运行的进程的行为例如,用户可以挂起一个进程,过一会再继续执行该进程shell将记录所有启动的进程情况用户可以任意地挂起进程或重新启动进程作业控制是许多shell(包括bash和tcsh)的一个特性,使用户能在多个独立作业间进行切换。

一般而言,进程与作业控制相关联时,才被称为作业在大多数情况下,用户在同一时间只运行一个作业,即用户最后向,shell,键入的命令但是,用户通过作业控制可以同时运行多个作业,并在需要时在这些作业之间进行切换例如,用户在编辑一个文本文件的过程中,若需要终止编辑做其他事情时,可以利用作业控制让编辑器暂时挂起,返回,shell,提示符开始处理其他事情;其他事情结束后,可以重新启动挂起的编辑器,返回到刚才终止的位置,就像用户从来没有离开编辑器一样执行一个程序即启动一个进程启动一个进程有两个主要途径:手工启动和调度启动,后者是事先进行设置,根据用户要求自行启动1,手工启动,手工启动:用户输入命令,直接启动一个进程手工启动进程可以分为多种,根据启动的进程类型不同、性质不同,实际结果也不一样1,)前台启动,前台启动是手工启动一个进程的最常用方式一般地,键入命令“,ls-l”,即可启动一个进程,而且是一个前台的进程这时候,系统处于一个多进程状态虽然只是启动了一个进程,实际上有许多运行在后台的、系统启动时已经自动启动的进程正在悄悄运行着若在键入“,ls-l”,命令后立即用命令“,ps-x”,查看,没有看到,ls,进程,这是由于,ls,进程结束太快,用,ps,查看时,该进程已经执行结束。

如果启动一个比较耗时的进程,例如:,find/-name fox.jpg,然后把该进程挂起,用命令,ps,查看,可以看到一个,find,进程2,)后台启动,直接从后台手工启动一个进程用得比较少,除非是该进程比较耗时,且用户也不急于需要结果的时候假设用户要启动一个需要长时间运行的格式化文本文件的进程,为了不使整个,shell,在格式化过程中都处于“瘫痪”状态,从后台启动该进程可以不妨碍用户同时做其他工作从后台启动进程实际上是在命令结尾加上一个,&,号键入命令以后,出现一个数字,该数字就是该进程的编号,又称为,PID,;然后出现提示符,用户可以继续其他工作例如:,troff me notes note_form&,1,4513,实际上,前台启动与后台启动的共同特点,是新进程都由当前,shell,进程产生,即,shell,创建了新进程,称这种关系为进程间的父子关系这里,,shell,是父进程,新进程是子进程一个父进程可以有多个子进程,一般子进程结束后才能继续父进程;如果从后台启动,就不用等待子进程结束一种比较特殊的情况是在使用管道符的时候例如:,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,显示本机运行的所有进程的详细列表,其中,,USER,:表示进程的拥有者CPU,:表示,CPU,时间的占用比例MEM,:表示内存的占用比例SIZE,:表示进程的大小RSS,:表示常驻内存部分大小START,:表示进程的启动时间PID,:进程的,ID,编号,每个进程都有一个惟一的,PID,号,初始化程序,init,的,PID,为,1,,进程越靠近“进程树”的根,则进程的,PID,就越小TTY,:表示提交该进程的终端号STAT,:表示该进程所处的状态常见的进程状态有如下几个R,:表示正在运行,要占用,CPU,的时间;,S,:表示处于睡眠状态,不占用,CPU,的时间;,D,:表示处于不可终止的睡眠状态;,T,:表示已停止或被跟踪;,TIME,:表示该进程已运行的时间COMMAND,:进程所对应的命令3,)绘制进程树,为了绘制进程树,需要获得更多有关进程的信息,特别是要知道每个进程的父进程的,ID,号可用以下命令显示所有进程的详细信息:,ps Al,运行该命令后,得到当前系统的进程信息,如图,7-2,所示,其中,,F:表示进程的标志;,UID:表示进程拥有者的ID号;,PPID:表示进程的父进程ID号,其中初始化程序init父进程ID号为0;,PRI:时间片的长度;,NI:进程的优先级;,UCHAN:进程中处于睡眠状态的内核函数名称。

图,7-2,执行,ps Al,命令显示的进程信息,操作:根据图7-2显示的进程信息,参照图7-3所示绘制自己系统的进程树图,7-3,根据图,7-2,显示的进程信息绘制的进程树,2,用,kill,命令删除进程,当用户在某个终端仿真程序窗口中因运行的程序失败而使终端停止反应,或某个进程已不再有用,可以用,kill,命令删除该进程通常,用户只能删除自己拥有的进程,只有,root,用户可以删除任意用户的进程命令格式:,kill,其中,,是指要删除进程的,ID,号操作:用,kill 949,命令将进程,ID,号为,949,的进程删除说明:由于进程,949,为进程,1346,的父进程,所以在删除进程,949,的同时,也将进程,1346,终止了操作:用,ps,命令重新显示进程的信息kill,实际上是将一个终止信号发送到目标进程,该进程接收到这个信号后,结束进程的运行并释放占用的资源该命令类似于,Windows,系统中用,Ctrl+Alt+Del,结束任务的操作某些进程不能通过简单的,kill,命令删除,可以用“无条件”删除命令删除进程,即,kill 9,子进程的运行受父进程状态的影响,即如果父进程被删除,则子进程也将终止。

但也可以使程序的运行不受父进程的影响可以在运行该程序(命令)时用以下方式:,nohup,有些程序本身已被设计为不受父进程影响(大部分的守护程序均属这类程序),对于这些程序,只需以正常的方式运行即可对于需要长时间运行的程序,为了不影响系统的工作,可以用后台运行的方法运行该程序Linux,支持进程的后台执行,即在运行的命令后加一个后台执行符“,&”,,使相应的命令放到后台去执行操作:连续执行下列命令,观察后台程序的执行情况:,make dep|mail sa s make dep&,ls,以下命令在字符界面(非仿真终端)下操作:,在用户执行,logout,后,未执行完毕的后台进程仍继续执行:,nohup&,结束所有进程:,kill 0,3,设置和更改进程的优先级,进程具有优先级优先级一般是用一个数来表示的,这个数可以是负数,这个数越小,表示的优先级越高,默认的优先级为,0,如果优先级是一个负数,表示该进程具有较高的优先级,,+20,为最低优先级具有较高优先级的进程可以获得更多的,CPU,时间直接运行一个程序,该进程获得默认的优先级(即优先级为,0,),也可以在运行程序时指定优先级,方法:,nice-,。

例如:,nice -10 find/-name abc*printfname,以优先级,-10,运行“,find”,命令,nice -10 find/-name abc*printfname find,获得的优先级为,10,操作:在字符界面下输入下列命令:,nice -10 find/-name abc*printfname,ps Al,nice -10 find/-name abc*printfname,ps Al,比较前后两次操作显示的进程信息可以用renice命令改变一个正在运行进程的优先级命令格式:renice ,只有root用户可以增加进程的优先级,而且可以用于任何进程;其他用户只能改变自己拥有进程的优先级,且优先级只能为0204,定时执行程序,用,at,命令可以定时执行指定的程序命令格式:,at,操作:按以下方法设定在当天的,16:00,将,/root/abc,的文件以电子邮件方式发送给用户,student01,和,student02,1,)在提示符后输入命令,:,at 16:00,2,)按回车键后,光标停留在下一行,并显示“,at”,,在该提示符后输入如下命令行,:,cat/root/abc|mail s file abc student01 student02,(,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写出实验报告2根据实验所用的系统的进程信息绘制出该系统的进程树3试分析:若删除进程号为1的进程(即初始化程序init),将会发生什么情况,并在系统中执行并观察结果。

下载提示
相似文档
正为您匹配相似的精品文档
相关文档