操作系统管理Linux 系统进程实验报告.docx

上传人:b****8 文档编号:23732405 上传时间:2023-05-20 格式:DOCX 页数:18 大小:770.88KB
下载 相关 举报
操作系统管理Linux 系统进程实验报告.docx_第1页
第1页 / 共18页
操作系统管理Linux 系统进程实验报告.docx_第2页
第2页 / 共18页
操作系统管理Linux 系统进程实验报告.docx_第3页
第3页 / 共18页
操作系统管理Linux 系统进程实验报告.docx_第4页
第4页 / 共18页
操作系统管理Linux 系统进程实验报告.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

操作系统管理Linux 系统进程实验报告.docx

《操作系统管理Linux 系统进程实验报告.docx》由会员分享,可在线阅读,更多相关《操作系统管理Linux 系统进程实验报告.docx(18页珍藏版)》请在冰豆网上搜索。

操作系统管理Linux 系统进程实验报告.docx

操作系统管理Linux系统进程实验报告

操作系统实验报告

题目:

管理Linux系统进程姓名:

日期:

实验目的

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

2)回顾ps命令和选项。

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

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

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

6)确定一个进程,终止它。

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

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

9)根据命令名终止进程。

实验环境

一台运行RedHatLinux操作系统的计算机。

实验内容与步骤

注:

本报告中蓝色字表示填空的内容,红色字表示仍然在纠结。

步骤1:

登录进入GNOME。

在Linux登录框中填写指导老师分配的用户名和口令,登录Linux系统。

步骤2:

访问命令行。

单击红帽子,在“GNOME帮助”菜单中单击“系统工具”-“终端”命令,打开“终

端”窗口。

步骤3:

回顾系统进程概念。

每个运行的程序都会创建一个进程,进程分配到一个唯一的进程标识符(PID)。

PID

被系统用于标识和跟踪进程,直到进程结束。

操作系统内核管理所有进程的初始化和终止。

每一个进程都要求系统资源(例如CPU时间和RAM空间)在其中工作。

当进程启动的时候,

操作系统把系统资源分配给每个进程,当进程终止的时候,系统回收这些资源。

在Linux系

统启动的时候,首先启动的两个进程是sched(调度)和init(初始化),它们管理着其他进程。

Linux系统中有几种不同类型的进程:

守护进程:

由Linux内核启动的进程,为了特定目的而存在。

例如,lpsched守护进程

存在只是为了处理打印作业。

父进程:

派生其他进程的进程是父进程。

一个叫做init的守护进程是第一个调用的进程。

每一个进程,除了init之外,都有一个父进程。

子进程:

由其他进程派生出来的进程叫做子进程。

孤儿进程:

在进程返回输出之前,它的父进程结束了,这样的进程叫做孤儿进程。

僵进程:

子进程没有带着输出返回给父进程。

这样的进程在系统中变成丢失的进程。

使用此前的信息,完成以下填空:

1)Linux系统中,几乎每一个启动的进程,都会由内核分配一个唯一的PID

进程标识符,用于跟踪从进程启动到进程结束。

2)当启动新进程的时候,内核也给它们分配系统资源,如CPU时间和RAM空间。

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

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

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

6)运行用于提供服务的Linux系统进程是守护进程。

7)如果父进程在子进程之前结束,它创建了一个孤儿进程。

步骤4:

回顾ps命令和信息。

ps命令用于列出当前系统中运行的进程。

如果一个进程耗时太长,或者看上去好像已经终止了,表现为一个终端窗口不再响应或

挂起,通常需要使用ps查看系统中的进程。

通过列出进程,可以查看初始化进程的命令或

程序的名字,以及所有它派生出来的子进程。

通过多次执行ps命令,查看进程的时间——

进程占用的CPU时间,可以检查一个进程是否还在运行。

如果时间小再增长,那么进程可

能已经终止了。

如果进程占用太长的时间或者已经停止,可以使用ps命令检查进程的进程

ID(PID),然后杀死进程。

ps命令的输出将显示PID号和与其相关的命令或程序。

PID号通常用于终止一个进程。

ps命令(ps[-options])的3个主要选项如下表所示。

表3-5ps命令选项

ps选项意义功能

Ps无选项显示当前shell或终端窗口中,当前用户的进程信息

ps–e每一个显示系统中每一个进程的信息

ps–f完全产生一个完全列表,给出每个进程的所有可用信息

ps-uuserid用户显示特定用户的所有进程

基本的ps命令显示在当前shell中的进程信息,用户只能够查看在这个终端窗口中初始

化的进程。

输入ps命令,将结果填入表3-6中。

表3-6实验记录

PID

TTY

TIME

CMD

14439

pts/1

00:

00:

00

bash

14456

pts/1

00:

00:

00

Ps

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

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

UID

PID

PPID

C

STIME

TTY

TIME

CMD

root

14439

14436

0

19:

03

pts/1

00:

00:

00

bash

root

14457

14439

0

19:

04

pts/1

00:

00:

00

ps-f

步骤5:

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

输入ps-ef命令,显示运行在系统中的各个进程的完全信息。

执行该命令,并与ps–f

命令的输出结果对照,一致吗?

有何不同?

不一致,1)ps-ef的进程很多____2)ps-ef的CMD很多,但两者的bash很相似

3)最后一个CMD一个是ps-f,一个是ps-ef

注意分析当前终端窗口中的输出结果:

a.显示了多少个进程?

____见截图________________________________________________________________

b.进程ID的PID是什么?

___进程标识符______________________________________________________

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

___ps_________________________________________________________________

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

___init[5]________________________________________________________________

e.再次运行ps–ef命令,计算进程的数目:

___115_________________________________________________________________

然后执行下列命令把输出结果输入到wc命令中:

ps-ef|wc-l

第一个数字显示的是行的数目,也是进程的数目:

___117_________________________________________________________________

执行manps命令,可以打开Linux用户命令手册,了解ps命令的用法,输入wq命令

可退出用户手册的阅读。

man命令可以执行吗?

结果如何?

不可以,见截图____________________________________________________

步骤6:

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

为了终止一个进程,必须找到该进程的PID。

大多数运行的系统中,有上百个进程在运

行,ps-ef的列表可能很长。

如果知道启动进程的执行程序的名字,可以更快地找到PID。

通过把ps命令的输出结果输入到grep中,可以搜索想要终止的特定进程,确定正确的

PID。

grep命令可以在其他命令的输出中搜索所有类型的特征字符串。

-l(长的输出)选项将

显示和找到的PID相关的进程的名字;-e选项显示PID和初始化命令的名字。

a.单击红帽子,在“GNOME帮助”菜单中单击“游戏”-“堆麻将”命令,打开“堆

麻将”游戏。

(在这个步骤时没有认出哪个是堆麻将游戏,故而用游戏lagno代替)

b.在当前的终端窗口中,执行命令:

ps–e|grepmahjongg

(“堆麻将”游戏的进程名是“mahjongg”),查找和“堆麻将”游戏调度守护进程相关的

所有进程。

c.显示了多少个相关进程?

显示了2个,见截图

d.显示进程中最小的进程ID号是多少?

___15015_________________________________________________________________

c.在当前终端窗口中执行命令:

pgrep–lmahjongg

查找所有和“堆麻将”游戏调度守护进程相关的进程。

ps和pgrep命令输出之间有什么不同?

ps除了显示PID和CMD以外,还显示了TIME和TTY

步骤7:

确定一个要终止的进程。

当试图终止一个程序,或者释放一个挂起的终端窗口的时候,杀死和不响应的应用相关

的PID可能还是不够的,一般需要杀死那个进程的父进程,在少数情况下,甚至要杀死父

进程的父进程。

为了沿着层次结构,从子进程追溯到派生它们的父进程,必须能够查找PID

和PPID。

必须首先确定最低级不响应进程的PID。

通常,可以试着去杀死那个进程。

如果这样做

不能够停止那个进程,可能需要杀死它的父进程。

杀死父进程将杀死所有它派生的子进程。

杀死一个父进程也比杀死几个子进程快得多。

1)在GNOME当前终端窗口中,输入ps命令。

有多少进程正在运行?

为什么只有这么少的进程?

2个,因为Ps无选项显示当前shell或终端窗口中,当前用户的进程信息

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

它表示什么?

bash和ps_________________________________________________________________

3)这个进程的PID是多少?

___14439和17368___________________________________________________

4)在bashshell中输入命令csh,打开一个Cshell会话,当前系统的会话提示符是什么?

___$_______________________________________________________________

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

现在什么进程正在运

行?

____bash-shps–f________________________________________________________

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

_____是_______________________________________________________________

7)输入命令sleepl000&,创建一个进程,把执行挂起1000秒(大约15分钟)。

&表示

在后台运行命令,返回shell提示符,这样您可以继续工作。

8)再次输入ps-f命令。

-sh(csh)的PID是sleep命令的PPID吗?

哪个PID是csh(Cshell)

的子进程?

_是_____25061和25062

9)输入命令kill-9退出Cshell。

然后再次键入ps-f命令。

什么PID是

sleep父命令的PPID?

____14439________________________________________________________________

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

_____pts/1_______________________________________________________________

步骤8:

使用kill命令终止一个进程。

信号用于终止、挂起和继续进程。

有时候使用Ctrl+c可以终止一个不响应的进程。

样向进程发送一个中断(INT)信号,终止它及所有它派生的子进程。

kill命令提供了一个终止不想要的命令进程的直接方法。

当想停止一个运行了很长时间

的命令的时候,或者当需要终止一个不能够正常退出的进程的时候,它很有用。

指定PID

正常地杀死一个进程。

kill[-signal]process-id

为了使用kill命令终止一个进程,应该首先键入ps找出进程的PID,然后键入kill紧跟

着PID。

如果使用kill而没有指定信号,则信号15(SIGTERM)将被发送给特定PID号的进

程。

这叫做软杀死,通常终止了进程。

如果可能,最好软杀死进程,这样它可以正确地关闭

文件,温和地终止进程。

如果需要强制终止一个进程,可以使用带-9选项的kill命令。

这个选项叫做强制杀死,

当shell对所有其他终止信号都不响应的时候,需要使用它来杀死shell。

kill-9process-id

注意:

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

硬的方法,不允许正确的进程终止。

a.输入命令ps–f,显示在当前shell中运行的进程的完整信息。

现在什么进程正在运

行?

____图________________________________________________________________

b.因为sleep进程现在是一个孤儿进程,已经被init进程(PID#l)收养,输入命令,对

sleep的PID执行软杀死。

如果sleep已经终止(超过15分钟),则重复步骤7中的8)、9)

操作,然后软杀死sleep程序。

再次输入ps-f命令。

现在什么进程正在运行?

____图________________________________________________________________

步骤9:

按照用户查找和终止一个进程。

ps命令可以带-u(用户)选项使用,查找指定用户的进程。

这个命令比ps-ef使用得更

多,因为一般只能够管理属于自己的进程。

我们可以通过用户登录名或者UID号来查找用

户的进程。

用户只能够终止自己的进程,但是超级用户可以终止系统中所有运行的进程。

ps–ulogin-ID或UID

1)启动计算器和“堆麻将”游戏GNOME应用程序。

2)使用带-u选项的ps命令,查找以登录ID(例如,userX)或者数字UID(例如,1004)

运行的所有进程。

计算器应用程序的PID是什么?

___25152____图_____________________________________________________________

3)使用软杀死终止计算器应用程序,“堆麻将”是否仍然在桌面上运行?

___是_______图__________________________________________________________

4)使用ps-e命令组合grep,查找“堆麻将”程序的PID号,而不是使用ps-u查找整

个列表。

您使用什么命令?

提示:

猜猜“堆麻将”程序的命令名中可能有哪个字母,使用grep搜索那些字母。

___ps–e|grepkmah_______图________________________________

5)终止“堆麻将”程序。

它是否还在桌面上运行?

____不在________________________________________________________________

6)退出Cshell。

步骤10:

删除所有在本实验中创建的文件和目录。

步骤11:

关闭终端窗口,注销。

遇到的问题

1.步骤4中发现每次输入ps命令输出的进程PID都不一样。

解决方法:

查询XX得知:

即使程序相同,启动的时间不同或者操作系统中已经启动程序的数量不同,这个PID号码也就不同。

也就是说这个PID号码是自动生成的

2.步骤4中第一次输入ps–f命令时输出的是commandnotfound。

解决方法:

仔细观察发现ps与-f之间有空格,第一次输入时没有输空格。

3.步骤5中输入命令ps–ef|wc–l时结果显示wc无效选项。

解决方法:

观察发现把l误输为1,l的意思为line行数。

4.步骤5中运行ps–ef输出的进程数和运行ps–ef|wc–l直接显示出的进程数不同,一个为115,一个为117,为什么?

解决方法:

该命令统计给定文件中的字节数、字数、行数。

如果没有给出文件名,则从标准输入读取。

wc同时也给出所有指定文件的总统计数。

字是由空格字符区分开的最大字符串。

wc–l统计输出的行数,即是符合条件的用户数。

(这是XX搜到的结果,但是对于这个问题仍然很困惑。

5.步骤六中直接输入ps–e|greplagno没有用。

解决方法:

先通过ps–ef显示lagno的进程名iagno再使用命令ps–e|grepiagno。

实验感受

本次实验让我对Linux操作系统有了进一步的认识,也了解到在终端执行ps命令的好处,对进程也有了一些比书本上更具体化的概念。

在实验中留下最深刻印象的发现是,软件卡壳的时候,在Linux操作系统中用kill命令即可结束相关进程;而且关闭一个进程也可以不依赖鼠标,在键盘上输入命令也可以完成目标操作。

在实验的过程中多次出现了因为观察不仔细导致输入错误的情况,说明对于命令的理解并不深入,不知道其代表的意义,只是照着实验手册上的提示输入,以后一定会多注意,先理解手册上的命令再进行操作。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 理学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1