实验7Linux的进程管理.ppt_第1页
实验7Linux的进程管理.ppt_第2页
实验7Linux的进程管理.ppt_第3页
实验7Linux的进程管理.ppt_第4页
实验7Linux的进程管理.ppt_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验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用户可以增加进程的优先级, 而且可以用于任何进程;其他用户只能改变 自己拥有进程的优先级,且优先级只能为0 20。 4定时执行程序 用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)下使

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论