实验8linux的进程管理

上传人:ji****n 文档编号:54800788 上传时间:2018-09-19 格式:PPT 页数:35 大小:491KB
返回 下载 相关 举报
实验8linux的进程管理_第1页
第1页 / 共35页
实验8linux的进程管理_第2页
第2页 / 共35页
实验8linux的进程管理_第3页
第3页 / 共35页
实验8linux的进程管理_第4页
第4页 / 共35页
实验8linux的进程管理_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《实验8linux的进程管理》由会员分享,可在线阅读,更多相关《实验8linux的进程管理(35页珍藏版)》请在金锄头文库上搜索。

1、实验8 Linux的进程管理,一、实验目的 二、实验工具与设备 三、实验预备知识 四、实验内容和步骤 五、实验总结,一、实验目的,1熟悉和理解进程和进程树的概念,掌握有关进程的管理机制。 2了解进程与程序、并行与串行执行的区别。 3掌握使用Linux命令管理和操作进程的方法。,二、实验工具与设备,已安装Linux系统的计算机。,三、实验预备知识,Linux用分时管理方法使所有的任务共同分享系统资源。我们讨论进程的时候,不会去关心这些进程究竟是如何分配的,或者是内核如何管理、分配时间片的,我们所关心的是如何去控制这些进程,让它们能够很好地为用户服务。进程和作业的概念有区别。一个正在执行的进程称为

2、一个作业,作业可以包含一个或多个进程,尤其是当使用了管道和重定向命令。例如,作业“ls /usr/bin|wc -w”同时启动了两个进程。,作业控制即控制正在运行的进程的行为。例如,用户可以挂起一个进程,过一会再继续执行该进程。shell将记录所有启动的进程情况。用户可以任意地挂起进程或重新启动进程。作业控制是许多shell(包括bash和tcsh)的一个特性,使用户能在多个独立作业间进行切换。,一般而言,进程与作业控制相关联时,才被称为作业。在大多数情况下,用户在同一时间只运行一个作业,即用户最后向shell键入的命令。但是,用户通过作业控制可以同时运行多个作业,并在需要时在这些作业之间进行

3、切换。例如,用户在编辑一个文本文件的过程中,若需要终止编辑做其他事情时,可以利用作业控制让编辑器暂时挂起,返回shell提示符开始处理其他事情;其他事情结束后,可以重新启动挂起的编辑器,返回到刚才终止的位置,就像用户从来没有离开编辑器一样。,执行一个程序即启动一个进程。启动一个进程有两个主要途径:手工启动和调度启动,后者是事先进行设置,根据用户要求自行启动。 1手工启动手工启动:用户输入命令,直接启动一个进程。手工启动进程可以分为多种,根据启动的进程类型不同、性质不同,实际结果也不一样。,(1)前台启动前台启动是手工启动一个进程的最常用方式。一般地,键入命令“ls -l”即可启动一个进程,而且

4、是一个前台的进程。这时候,系统处于一个多进程状态。虽然只是启动了一个进程,实际上有许多运行在后台的、系统启动时已经自动启动的进程正在悄悄运行着。若在键入“ls -l”命令后立即用命令“ps -x”查看,没有看到ls进程,这是由于ls进程结束太快,用ps查看时,该进程已经执行结束。如果启动一个比较耗时的进程,例如:find / -name fox.jpg 然后把该进程挂起,用命令ps查看,可以看到一个find进程。,(2)后台启动直接从后台手工启动一个进程用得比较少,除非是该进程比较耗时,且用户也不急于需要结果的时候。假设用户要启动一个需要长时间运行的格式化文本文件的进程,为了不使整个shell

5、在格式化过程中都处于“瘫痪”状态,从后台启动该进程可以不妨碍用户同时做其他工作。从后台启动进程实际上是在命令结尾加上一个&号。键入命令以后,出现一个数字,该数字就是该进程的编号,又称为PID;然后出现提示符,用户可以继续其他工作。,例如:troff me notes note_form &1 4513实际上,前台启动与后台启动的共同特点,是新进程都由当前shell进程产生,即shell创建了新进程,称这种关系为进程间的父子关系。这里,shell是父进程,新进程是子进程。一个父进程可以有多个子进程,一般子进程结束后才能继续父进程;如果从后台启动,就不用等待子进程结束。,一种比较特殊的情况是在使用

6、管道符的时候。例如:nroff -man ps.1|grep kill|more这时,实际上是同时启动了三个进程,所有放在管道两边的进程都将被同时启动,它们都是当前shell的子程序,互相之间可以称为兄弟进程。 2调度启动用户事先进行调度安排,指定任务运行的时间或场合,由系统自动完成工作。,四、实验内容和步骤,在一个Linux系统中,所有正在运行的进程组成一种树状的关系,初始化程序(init程序)是这棵进程树的根。init程序直接启动了许多系统进程,这些程序大多数属于守护程序(daemon)。守护程序在内存中运行以后,处于睡眠状态,基本上不占用CPU时间,当对应的请求到达时,该进程被激活并完成

7、相应的处理工作,之后再转入睡眠状态。,可以用一些Linux命令操作和管理进程。 1用ps命令观察Linux正在运行的进程 (1)ps命令:用于观察正在运行的进程的情况。ps命令包括较丰富的可选参数,常见的可选参数包括如下几个。 -A:显示所有用户启动的进程。 -a:显示所有其他用户的进程。,-u:显示进程拥有者、进程启动时间等更详细的信息。 -x:显示不是由终端提供的进程信息。 -r:只显示正在运行的进程。 -m:显示线程信息。 -w:宽行显示进程信息。 -l:用长格式显示进程信息。 -t:只显示由终端/dev/tty提交的进程。,(2)执行ps命令操作:ps命令可以显示本机正在运行的所有进程

8、(包括其他用户和系统运行的进程)的详细列表。命令格式:ps aux执行该命令将显示类似图7-1所示信息。根据命令的执行结果,分析各进程的运行情况。,图7-1 显示本机运行的所有进程的详细列表,其中, USER:表示进程的拥有者。 %CPU:表示CPU时间的占用比例。 %MEM:表示内存的占用比例。 SIZE:表示进程的大小。 RSS:表示常驻内存部分大小。 START:表示进程的启动时间。 PID:进程的ID编号,每个进程都有一个惟一的PID号,初始化程序init的PID为1,进程越靠近“进程树”的根,则进程的PID就越小。,TTY:表示提交该进程的终端号。 STAT:表示该进程所处的状态。常

9、见的进程状态有如下几个。 R:表示正在运行,要占用CPU的时间; S:表示处于睡眠状态,不占用CPU的时间; D:表示处于不可终止的睡眠状态; T:表示已停止或被跟踪; TIME:表示该进程已运行的时间。 COMMAND:进程所对应的命令。,(3)绘制进程树为了绘制进程树,需要获得更多有关进程的信息,特别是要知道每个进程的父进程的ID号。可用以下命令显示所有进程的详细信息:ps Al运行该命令后,得到当前系统的进程信息,如图7-2所示,其中,,F:表示进程的标志;UID:表示进程拥有者的ID号;PPID:表示进程的父进程ID号,其中初始化程序init父进程ID号为0;PRI:时间片的长度;NI

10、:进程的优先级;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的父进程

11、,所以在删除进程949的同时,也将进程1346终止了。操作:用ps命令重新显示进程的信息。kill实际上是将一个终止信号发送到目标进程,该进程接收到这个信号后,结束进程的运行并释放占用的资源。该命令类似于Windows系统中用Ctrl+Alt+Del结束任务的操作。某些进程不能通过简单的kill命令删除,可以用“无条件”删除命令删除进程,即kill 9 ,子进程的运行受父进程状态的影响,即如果父进程被删除,则子进程也将终止。但也可以使程序的运行不受父进程的影响。可以在运行该程序(命令)时用以下方式:nohup 有些程序本身已被设计为不受父进程影响(大部分的守护程序均属这类程序),对于这些程序,

12、只需以正常的方式运行即可。,对于需要长时间运行的程序,为了不影响系统的工作,可以用后台运行的方法运行该程序。Linux支持进程的后台执行,即在运行的命令后加一个后台执行符“&”,使相应的命令放到后台去执行。操作:连续执行下列命令,观察后台程序的执行情况:make dep | mail sa s “make dep“ &ls 以下命令在字符界面(非仿真终端)下操作: 在用户执行logout后,未执行完毕的后台进程仍继续执行:nohup & 结束所有进程:kill 0,3设置和更改进程的优先级进程具有优先级。优先级一般是用一个数来表示的,这个数可以是负数,这个数越小,表示的优先级越高,默认的优先级

13、为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*“ printfnameps Alnice -1

14、0 find / -name “abc*“ printfnameps Al,比较前后两次操作显示的进程信息。可以用renice命令改变一个正在运行进程的优先级。命令格式:renice 只有root用户可以增加进程的优先级,而且可以用于任何进程;其他用户只能改变自己拥有进程的优先级,且优先级只能为020。,4定时执行程序用at命令可以定时执行指定的程序。命令格式:at 操作:按以下方法设定在当天的16:00将/root/abc的文件以电子邮件方式发送给用户student01和student02。 (1)在提示符后输入命令:at 16:00。 (2)按回车键后,光标停留在下一行,并显示“at”,在

15、该提示符后输入如下命令行: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的“开始”菜单中选择“系统工具系统监视器”选项,弹出“系统监视器”对话框,

16、如图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),将会发生什么情况,并在系统中执行并观察结果。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 初中教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号