操作系统实验3_1(必做)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验三操作系统进程管理

一、实验目的

1) 掌握系统进程的概念,加深对Linux / UNIX进程管理的理解。

2) 学会使用ps命令和选项。

3) 列出当前shell中的进程。

4) 列出运行在系统中的所有进程。

5) 根据命令名搜索特定的进程。

6) 使用kill命令终止进程。

7) 根据用户名查找和终止进程。

二、实验环境

一台运行Red Hat Linux操作系统的计算机。

三、实验内容与步骤

步骤1:创建一个普通用户(参见实验二),以普通用户身份登录进入GNOME。

步骤2:打开一个“终端”窗口(参见实验二)。

步骤3:回顾系统进程概念,完成以下填空:

1) Linux系统中,几乎每一个启动的进程,都会由内核分配一个唯一的_PID_进程标识符,用于跟踪从进程启动到进程结束。

2) 当启动新进程的时候,内核也给它们分配系统资源,如_处理机_和__内存___。

3) 永远不向父进程返回输出的进程叫做_僵进程___。

4) 由父进程派生出来的进程叫做__子___进程。

5) ___父___进程是一个派生另一个进程的进程。

6) 运行用于提供服务的Linux系统进程是__交互进程____。

7) 如果父进程在子进程之前结束,它创建了一个__管道___进程。

步骤4:回顾ps命令和信息。基本的ps命令显示当前shell中的进程信息,用户只能够查看当前终端窗口中初始化的进程。输入ps命令,将结果填入表3-3中。

表3-3 实验记录

下面,在当前终端窗口中,练习使用给出的每个选项的ps命令。

输入ps -f 命令,显示运行在系统中的某个进程的完全信息,填入表3-4中。

表3-4 实验记录

步骤5:列出系统中运行的所有进程。

输入ps -ef 命令,显示运行在系统中的各个进程的完全信息。执行该命令,并与ps –f 命令的输出结果对照,一致吗?有何不同?

答:不一致,后者显示了所有进程的完全可用信息,后者信息较多

分析当前终端窗口中的输出结果,记录下来用于写实验报告。

a. 显示了多少个进程?58个

b. 进程ID的PID是什么?

c. 启动进程的命令(CMD) 是什么?sched

d. 请观察,什么命令的PID号是1?init[5]

e. 执行ps –ef >aaa命令,将ps命令的输出送到文本文件aaa。再次运行cat aaa | wc命令,计算进程的数目。其中,cat是显示文本文件命令。“|”是管道命令,就是将前一个命令的输出作为后一个命令的输入。wc 命令用来计算文本的行数,第一个数字显示的是行的数目,可以用来计算进程的数目。计算出进程数目并做记录。

执行man ps命令,可以打开Linux用户命令手册。了解ps命令的用法。输入wq命令可退出用户手册的阅读。man命令可以执行吗?结果如何?

可以。

步骤6:确定一个要终止的进程。

当试图终止一个程序,或者释放一个挂起的终端窗口的时候,杀死和不响应的应用相关的PID可能还是不够的,一般需要杀死那个进程的父进程,在少数情况下,甚至要杀死父进程的父进程。为了沿着层次结构,从子进程追溯到派生它们的父进程,必须能够查找PID 和PPID。

必须首先确定最低级不响应进程的PID。通常,可以试着去杀死那个进程。如果这样做不能够停止那个进程,可能需要杀死它的父进程。杀死父进程将杀死所有它派生的子进程。杀死一个父进程也比杀死几个子进程快得多。

1)在GNOME当前终端窗口中,输入ps命令。有多少进程正在运行?为什么只有这

么少的进程?

答:2个,只显示当前用户的进程

2)正在运行的进程的名字是什么?它表示什么?

答:bash和ps 前者是linux平台的内定shell,后者是查看进程的命令。

3)进程的PID是多少?

答:20365和20397

4)在bash shell中输入命令csh,打开一个C shell会话,当前系统的会话提示符是什

么?(注:csh是和bash类似的另外一种命令解释程序)

5)输入ps -f 命令,显示在当前shell中运行的进程的所有信息。现在什么进程正在

运行?

6) bash的PID是-sh (csh) 的PPID吗?答:是

7) 输入命令sleep l000&,创建一个进程,把执行挂起1000秒(大约15分钟) 。&表示在后台运行命令,返回shell提示符,这样您可以继续工作。

8) 再次输入ps -f命令。-sh (csh) 的PID是sleep命令的PPID吗?哪些PID是csh (C shell) 的子进程?

9) 输入命令kill -9 退出C shell。然后再次键入ps -f命令。什么PID是sleep父命令的PPID?

sleep进程现在是什么类型的进程?

pts/1

步骤7:使用kill命令终止一个进程。

信号用于终止、挂起和继续进程。kill命令提供了一个终止不想要的命令进程的直接方法。当想停止一个运行了很长时间的命令的时候,或者当需要终止一个不能够正常退出的进程的时候,它很有用。指定PID正常地杀死一个进程。

kill [-signal] process_id

为了使用kill命令终止一个进程,应该首先键入ps找出进程的PID,然后键入kill紧跟着PID。如果使用kill而没有指定信号,则信号15 (SIGTERM) 将被发送给特定PID号的进程。这叫做软杀死,通常终止了进程。如果可能,最好软杀死进程,这样它可以正确地关闭文件,温和地终止进程。

如果需要强制终止一个进程,可以使用带-9选项的kill命令。这个选项叫做强制杀死,当shell对所有其他终止信号都不响应的时候,需要使用它来杀死shell。

kill -9 process_id

注意:对于shell之外的进程,把kill –9 (SIGKILL) 作为最后的选项,因为它是一种生

相关文档
最新文档