操作系统管理系统Linux系统进程实验报告材料.docx
- 文档编号:4738514
- 上传时间:2022-12-08
- 格式:DOCX
- 页数:14
- 大小:769.98KB
操作系统管理系统Linux系统进程实验报告材料.docx
《操作系统管理系统Linux系统进程实验报告材料.docx》由会员分享,可在线阅读,更多相关《操作系统管理系统Linux系统进程实验报告材料.docx(14页珍藏版)》请在冰豆网上搜索。
操作系统管理系统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
然后再次键入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命令时输出的是mandnotfound。
解决方法:
仔细观察发现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命令即可完毕相关进程;而且关闭一个进程也可以不依赖鼠标,在键盘上输入命令也可以完成目标操作。
在实验的过程中屡次出现了因为观察不仔细导致输入错误的情况,说明对于命令的理解并不深入,不知道其代表的意义,只是照着实验手册上的提示输入,以后一定会多注意,先理解手册上的命令再进展操作。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 管理 系统 Linux 进程 实验 报告 材料