实验 进程管理与系统监视
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验报告
学院:专业:班级:成绩:
姓名:学号:组别:组员:
实验地点:实验日期:指导教师签名:
实验8项目名称:进程管理
1、实验目的
理解进程管理的基本原理方法,掌握在Linux系统中查看进程状态、控制进程以及调整进程优先级等基本方法。
2、实验内容
2.1 进程管理的基本概念
什么是进程管理?要理解这个概念,就必须理解什么是进程。进程是在《操作系统原理》课程中的一个核心概念。进程(Process)是程序的一个执行过程。进程需要占用各种系统资源,包括CPU、内存等,需要读写各类文件,调用各种系统功能。自然,从进程的创建到撤销,操作系统会为它安排一切。不过,操作系统的安排是根据固定的算法所进行,纵使这些算法能根据当前情况不断调整,但不可能预先知道你的需要,然后让某个进程在特定某个时间挂起,让某个进程的优先级升高等等。因此,进程管理是指根据当前实际需求,对进程加以特定的控制。
作为一个管理员,定时查看当前系统中各个进程的具体状态,捕捉各种进程运行的异常,合理分配各类资源,特别是CPU资源给不同的进程,对各类进程有计划地控制等等,都属于进程管理的内容。系统为管理员提供了一系列的工具和命令,以让管理员完成管理工作。
2.2进程管理的基本方法
2.2.1查看进程状态
获知进程状态是进程管理的第一步。UNIX系统为进程留了许多接口、命令和工具。最典型的是/proc文件系统。这是一个特殊的文件系统。在此文件系统中,每个目录对应于一个进程,目录的名称即为进程的PID号。进入某个进程对应的目录,里面有若干文件,这些文件记录了该进程当前运行的各种相关状态信息。应用程序可通过对这些文件打开并读取(部分甚至还能通过写文件控制进程)来获取进程信息。
例子:查看/proc文件系统
#cd /proc/
#ls
0 12294 16392 213144 28686 376918 53274 688280 864256
1 1245238 163974 217238 295118 381008 561308 69666 876674 ……
#cd 1
#ls
#cred lwp psinfo sigact status
对于管理员,更常用的方法是利用ps命令来获知进程的基本状态。请参考以下例子并完成问题。
命令:ps
功能:列出当前活动进程的状态
格式:ps [选项] [参数]
选项:如果不使用任何选项,则列表显示当前工作站的活动进程,并且仅显示部分字段的内容。由于关于ps的选项很多,没必要全部列出并记忆,更常用的做法是记住一些有特定功能的选项组合。常用的选项含义如下:
-f:生成一个长列表(部分字段仍然省略了,但比不加该选项的要多)
-l(list):显示进程的全部列表字段信息
-e:显示除内核进程外的全部进程
-a:显示用户的全部进程
-u(user):显示特定用户的进程,
-k(kernel):显示内核进程
ps命令的一些常见的选项组合示例如下:
(1)仅显示当前工作站的活动进程
# ps
PID TTY TIME CMD
270396 pts/9 0:00 ps
725186 pts/9 0:00 –bash
(2)显示系统中除内核外的所有进程
# ps -e -f
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 Aug 24 - 0:02 /etc/init
……
Zianed 1343542 741620 0 19:29:52 - 0:00 sshd: Zianed@pts/1
(3)显示关于特定用户的进程
# ps -lu user
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
40001 A 85287 421918 905408 0 60 20 1d966400 1012 - 0:00 sshd 240001 A 85287 503876 421918 0 60 20 3b49400 1168 f1000600021e1478 pts/7 0:00 bash
(4)显示系统内核的进程
# ps -k
PID TTY TIME CMD
0 - 0:29 swapper
8196 - 2395:12 wait
12294 - 0:00 sched
(5)查看各个进程占用CPU的情况
#ps aux
USER PID %CPU %MEM SZ RSS TTY STAT STIME TIME COMMAND root 8196 12.1 0.0 384 384 - A Aug 24 3630:51 wait
……
上述每个例子返回结果都是以列表形式出现,列表中主要字段的含义如下,●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 作业号