实验9 进程管理与系统监视.docx
- 文档编号:8924747
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:20
- 大小:598.29KB
实验9 进程管理与系统监视.docx
《实验9 进程管理与系统监视.docx》由会员分享,可在线阅读,更多相关《实验9 进程管理与系统监视.docx(20页珍藏版)》请在冰豆网上搜索。
实验9进程管理与系统监视
广东技术师范学院实验报告
学院:
计算机科学学院
专业:
班级:
成绩:
姓名:
学号:
组别:
组员:
实验地点:
工业中心204
实验日期:
指导教师签名:
预习情况
操作情况
考勤情况
数据处理情况
实验9项目名称:
进程管理
1、实验目的
理解进程管理的基本原理方法,掌握在Linux系统中查看进程状态、控制进程以及调整进程优先级等基本方法。
2、实验内容
2.1进程管理的基本概念
什么是进程管理?
要理解这个概念,就必须理解什么是进程。
进程是在《操作系统原理》课程中的一个核心概念。
进程(Process)是程序的一个执行过程。
进程需要占用各种系统资源,包括CPU、内存等,需要读写各类文件,调用各种系统功能。
自然,从进程的创建到撤销,操作系统会为它安排一切。
不过,操作系统的安排是根据固定的算法所进行,纵使这些算法能根据当前情况不断调整,但不可能预先知道你的需要,然后让某个进程在特定某个时间挂起,让某个进程的优先级升高等等。
因此,进程管理是指根据当前实际需求,对进程加以特定的控制。
作为一个管理员,定时查看当前系统中各个进程的具体状态,捕捉各种进程运行的异常,合理分配各类资源,特别是CPU资源给不同的进程,对各类进程有计划地控制等等,都属于进程管理的内容。
系统为管理员提供了一系列的工具和命令,以让管理员完成管理工作。
2.2进程管理的基本方法
2.2.1查看进程状态
获知进程状态是进程管理的第一步。
UNIX系统为进程留了许多接口、命令和工具。
最典型的是/proc文件系统。
这是一个特殊的文件系统。
在此文件系统中,每个目录对应于一个进程,目录的名称即为进程的PID号。
进入某个进程对应的目录,里面有若干文件,这些文件记录了该进程当前运行的各种相关状态信息。
应用程序可通过对这些文件打开并读取(部分甚至还能通过写文件控制进程)来获取进程信息。
例子:
查看/proc文件系统
#cd/proc/
#ls
012294163922131442868637691853274688280864256
1124523816397421723829511838100856130869666876674
……
#cd1
#ls
#credlwppsinfosigactstatus
对于管理员,更常用的方法是利用ps命令来获知进程的基本状态。
请参考以下例子并完成问题。
命令:
ps
功能:
列出当前活动进程的状态
格式:
ps[选项][参数]
选项:
如果不使用任何选项,则列表显示当前工作站的活动进程,并且仅显示部分字段的内容。
由于关于ps的选项很多,没必要全部列出并记忆,更常用的做法是记住一些有特定功能的选项组合。
常用的选项含义如下:
-f:
生成一个长列表(部分字段仍然省略了,但比不加该选项的要多)
-l(list):
显示进程的全部列表字段信息
-e:
显示除内核进程外的全部进程
-a:
显示用户的全部进程
-u(user):
显示特定用户的进程,
-k(kernel):
显示内核进程
ps命令的一些常见的选项组合示例如下:
(1)仅显示当前工作站的活动进程
#ps
PIDTTYTIMECMD
270396pts/90:
00ps
725186pts/90:
00–bash
(2)显示系统中除内核外的所有进程
#ps-e-f
UIDPIDPPIDCSTIMETTYTIMECMD
root100Aug24-0:
02/etc/init
……
Zianed1343542741620019:
29:
52-0:
00sshd:
Zianed@pts/1
(3)显示关于特定用户的进程
#ps-luuser
FSUIDPIDPPIDCPRINIADDRSZWCHANTTYTIMECMD
40001A85287421918905408060201d9664001012-0:
00sshd
240001A85287503876421918060203b494001168f1000600021e1478pts/70:
00bash
(4)显示系统内核的进程
#ps-k
PIDTTYTIMECMD
0-0:
29swapper
8196-2395:
12wait
12294-0:
00sched
(5)查看各个进程占用CPU的情况
#psaux
USERPID%CPU%MEMSZRSSTTYSTATSTIMETIMECOMMAND
root819612.10.0384384-AAug243630:
51wait
……
上述每个例子返回结果都是以列表形式出现,列表中主要字段的含义如下,
●PID:
进程标识号
●PPID:
进程的父进程标识号
●UID:
进程所属的用户ID
●TTY:
进程所属的终端号
●TIME:
进程的执行时间总和
●CMD(command):
进程的命令名
●STIME:
进程的启动时间
●PRI(priority):
进程的优先级,数字越大优先级越低
●NI(nice):
进程的谦让度
●S(status):
进程的状态,对于一般进程主要状态有:
A(活动的)、T(已停止)、Z(已取消)等。
对于内核进程主要状态有:
R(正在运行)、S(休眠)、T(已停止)、Z(已取消)等。
2.2.2控制作业的基本操作
除对进程进行控制外,作业(job)是另一个与进程控制密切相关的概念。
简单来说,作业是用户向系统提交的一个任务请求,系统根据请求创建相应的进程完成该任务。
用户每输入的一个shell命令其实都是一个作业,这个作业经解释后对应于一个到多个进程加以执行。
作业可以在前台执行,这是用户可以跟作业进行交互。
当用户并不需要与作业交互,则作业也可以在后台执行。
如果用户想作业启动之初就让其在后台运行,就需要在关于该作业的shell命令结尾加上“&”。
作业执行时有作业号,用户可根据作业号对作业进行相应的控制,最基本的控制是将作业在终端的前后台之间切换。
命令:
jobs
功能:
查看当前用户的作业情况
格式:
jobs
命令:
bg
功能:
将前台作业切换到后台执行
格式:
bg作业号
命令:
fg
功能:
将后台作业切换到前台执行
例子:
作业控制的基本命令。
#vijobtest&
[1]1110094
#jobs-l
[1]+1110094Stoppedvijobtest
#fg1将作业1调出调到前台,按ctrl+z可将其切换到后台
vijobtest
~
~
……
#bg1利用bg命令将作业1调到后台(功能与ctrl+z一样)
[1]+vidd&
2.2.3进程与信号量
在UNIX系统中,用户可通过向进程发送相应的信号量来控制进程。
AIX中一些常用的信号量如下,信号量旁的括号内标示的是该信号量的编号:
●SIGINT
(2):
程序终止(interrupt)信号,用于通知前台进程组终止进程,用户键入ctrl+c后前台进程终止。
●SIGQUIT(3):
与SIGINT相似,进程终止后会生成文件core,用户键入ctrl+\后进程终止。
●SIGKILL(9):
该信号不能被忽略,因此常用于强行终止某进程。
●SIGTSTP(18):
终止进程,但该信号可以被处理和忽略.用户键入ctrl+z发出这个信号,进程转入后台并挂起。
命令:
kill
功能:
向特定某个进程发送信号。
格式:
kill-信号编号进程PID
例子:
利用kill命令向进程发送信号。
#vitest&
[1]761968
#kill-9761968
[1]+Stoppedvitest
#ps-a
PIDTTYTIMECMD
761976pts/110:
00ps
1032196pts/150:
00ksh
1359972pts/00:
00ksh
[1]+Killedvitest
例子:
利用kill命令列出所有的信号量及其编号
#kill-l
1)SIGHUP2)SIGINT3)SIGQUIT4)SIGILL
5)SIGTRAP6)SIGABRT7)SIGEMT8)SIGFPE
9)SIGKILL10)SIGBUS11)SIGSEGV12)SIGSYS
13)SIGPIPE14)SIGALRM15)SIGTERM16)SIGURG
17)SIGSTOP18)SIGTSTP19)SIGCONT20)SIGCHLD
21)SIGTTIN22)SIGTTOU23)SIGIO24)SIGXCPU
25)SIGXFSZ27)SIGMSG28)SIGWINCH29)SIGPWR
30)SIGUSR131)SIGUSR232)SIGPROF33)SIGDANGER
34)SIGVTALRM35)SIGMIGRATE36)SIGPRE37)SIGVIRT
38)SIGALRM139)SIGWAITING60)SIGKAP61)SIGRETRACT
62)SIGSOUND63)SIGSAK
2.2.4进程与优先级
进程的优先级是指系统在进程调度时用于判决进程是否能够获取CPU的依据。
进程的优先级越高,则越能在竞争中胜出而获得CPU时间。
在Linux系统中,进程的优先级以一个整数表达,数值越低,优先级越高。
每个普通进程的优先级默认为60。
根据动态优先级原理,操作系统会在调度进程的过程中对进程优先级进行调整。
同时,管理员可以根据实际需要自行对某些进程的优先级加以调整。
这里涉及到另外一个概念,进程的“nice”值。
nice值可翻译为“谦让度”,因为nice是一个从-20~19的值,nice默认等于0(也即不起作用),进程的nice值为负数时,其优先级升高(也即代表优先级的数值下降),而进程的nice值为正数时,则进程的优先级下降(也即优先级的数值升高了)。
在Linux中,普通用户一般只能调高优先级数值,也即让自己的进程“谦让”一点。
如果要让某个服务进程能够及时响应请求,可将其nice值提高。
命令:
nice
功能:
设定要启动的程序的优先级
格式:
nice-增量启动的命令及其选项和参数,nice=原nice值+增量,nice默认为0。
命令:
renice
功能:
调整进程的优先级
格式:
renice-n增量进程PID号
例子:
nice命令与renice命令的使用,注意进程的优先级(PRI)和nice值(NI)的变化。
#nice-2vi
~
~
~
~
按ctrl+z将vi程序切换到后台
#ps-al
FSUIDPIDPPIDCPRINIADDRSZWCHANTTYTIMECMD
200811T8528774958875785806422303f1400876pts/150:
00vi
#renice-n5749588
#ps-al
FSUIDPIDPPIDCPRINIADDRSZWCHANTTYTIMECMD
200811T8528774958875785807427303f1400876pts/150:
00vi
2.3守护进程
Linux在启动时需要启动很多系统服务,提供这些服务的程序是由运行在后台的守护进程(daemons)来执行的。
守护进程独立于控制终端,周期性地执行某种任务或等待处理某些发生的事件。
守护进程的生存期较长,常常在系统引导装入时启动,在系统关闭时终止。
一些重要的守护进程:
●init:
系统的1号进程,主要工作是为系统提供初始化服务。
●kudzu:
硬件自动检测程序,会自动检测硬件是否发生变动,并相应进行硬件的添加、删除工作。
●crond:
周期性地运行用户调度的任务。
●syslog:
日志记录的守候进程。
●sshd:
OpenSSH服务器守护进程。
●smb:
Samba文件共享/打印服务守护进程。
●network:
激活/关闭启动时的各个网络接口的守护进程。
●httpd:
Web服务器Apache守护进程。
●vsftpd:
vsftpd服务器的守护进程。
●named:
DNS(BIND)服务器守护进程。
●dhcpd:
动态主机控制协议(DynamicHostControlProtocol)的服务守护进程。
作业:
请完成如下作业,并给出详细的步骤和截图。
(1)启动vi编辑器,并将其调入后台,再调出前台,最后退出vi。
(2)启动vi编辑器,并将其调入后台,再将该作业杀死。
(3)启动两个vi编辑器,均调入后台后,查看当前有那些作业正在执行。
(4)列出你在当前系统中的所有进程。
指出你在该系统中最早启动的进程是那个,在什么时候启动?
可以看出,最早启动的进程号是1,启动时间为03:
07。
(5)列出当前系统中占用CPU时间比例最高的进程。
Root下进程号为3850的进程占用CPU时间比例最高。
(6)系统内核的进程中那个进程的运行时间最长,为什么?
系统内核的进程中进程号为1的进程运行时间最长,因为从系统启动开始它就运行。
(7)获得ls命令的帮助手册后,将其转入后台,在转出到前台,并退出手册。
(8)先后新建文件a和文件b,并相应启动vi对它们进行编辑。
一开始要求文件a在前台执行,b在后台执行。
对文件a输入一些文字后,将其切换到后台,然后将文件b调到前台,同样输入一些文字。
最后打开a文件的vi进程杀死,b文件保存并退出vi。
(9)列出当前系统中的所有进程(包括普通进程和守护进程),并指出哪些进程的优先级较高,这些进程有什么特点?
从列表中可以看出,进程号为2469,2747,2985的进程优先级较高。
这些都是守护进程。
(10)守护进程中那些进程优先级比较高,那些进程的优先级比较低,你能发现优先级比较低是些什么样的进程?
优先级比较高的又是什么样的进程?
请找一两个典型的进程加以说明(Google一下这些进程)。
答:
守护进程中的内核进程优先级比较高,如init进程(系统的1号进程,主要工作是为系统提供初始化服务)、kudzu进程(硬件自动检测程序,会自动检测硬件是否发生变动,并相应进行硬件的添加、删除工作)等,特定用户进程优先级比较低,因为只有用到某些用户时,才启动特定的用户进程。
(11)利用nice程序启动三个vi程序,其nice分别为5,10,15,观察这三个vi程序的优先级,nice值与进程的优先级呈怎样的数值关系?
或者说,nice值每增加1,优先级的数值是否也增加1,还是增加得更多?
(可利用renice命令不断调整进程的nice值以获得实际规律)。
从中可以看出,nice值越小,进程优先级越高,nice值越大,进程优先级越低。
(12)选取三个2.3节中所列的守护进程,列出他们的PID以及nice值。
Init进程:
PID为1,nice值为0.
Sshd进程:
PID为3221,nice值为0。
Syslog进程:
PID为2867,nice值为0.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验9 进程管理与系统监视 实验 进程 管理 系统 监视