5 (空格) 2) 主控模拟流程图示例
实验报告
完成以上实验内容并写出实验报告,报告应具有以下内容: 1. 实验目的。 2. 实验内容。
3. 程序(含注释)、实验结果、及运行情况分析。 4. 实验过程中出现的问题及解决方法。 5. 实验体会。 6.程序源程序。
实验四
实验名称:
认识进程
实验目的:
1. 学习进程的基本概念,理解进程的基本属性 2. 掌握进程操作的主要命令
3. 掌握通过/proc文件系统获取进程信息 4. 理解Linux系统的进程树
实验时间
3学时
预备知识:
1. 有关进程的主要命令: 1.1 ps:查看系统运行进程
ps常用选项:
选项
x a w u f
选择进程而不控制ttys 选择终端上的所有进程 提供详细的宽范围输出 显示面向用户的格式 以进程树格式列出进程
说明
ps运行结果的各字段含义:
字段
说明
用户ID 进程ID 父进程ID 控制终端的编号
优先级编号(编号越低,分配给此进程的计算机时间越多) 影响动态优先级调整 当前的进程状态 使用的计算机时间 命令的名称
UID PID PPID TTY PRI NI(nice) STAT TIME COMMAND
进程状态(STAT)可为以下状态之一:
状态代码
R(可运行) S(休眠)
D(不可中断的休眠) T(已跟踪或已停止) X
Z(僵进程)
可运行的进程
说明
正在等待外部事件的进程(如数据到达)。 类似“S”(此时不能终止此进程) 进程已被暂停 进程已死
进程已自行终止,但尚未请求其返回值。
1.2 pstree:以树结构显示进程列表
pstree常用选项:
选项
-p -u
显示进程PID 显示用户ID
说明
1.3 top: 实时显示正在运行的进程
top运行结果的各字段含义: 字段
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME COMMMAND
进程ID 用户名 优先级 Nice值
虚拟映象(单位为KB) 驻留大小(单位为KB) 共享内存大小(单位为KB) 进程状态 CPU使用率 内存使用率(RES) CPU时间 命令名称/行
说明
? h r k N P
top常用命令: 字段
帮助 帮助
将一个新的 nice 值分配给运行中的进程
向某个运行中的进程发送终止信号(与 kill 或 killall相同) 按进程 ID 排序 按 CPU 负载排序
说明
1.4 nice和renice
nice:为进程指派静态优先级
E.g. $nice –n +5 sleep 99
renice:更改运行进程的nice值
E.g. $renice 5 1012
注意: 1.调度程序使用nice级别来确定为运行的进程提供服务的频率。
2.nice的范围:-20~20;nice值越低,进城优先级越高。 3.nice默认为10。
4.只有root用户可以负的nice值启动进程;只有root用户可以降低运行进程的nice值。
1.5 前台与后台进程
$command & 以后台方式启动进程 fg 将进程切花到前台 bg 将进程切换到后台运行 jobs 列出作业控制的内容 ctrl+Z 挂起进程
1.6 kill和killall 向进程发送信号
kill 用PID向进程发送信号
E.g. $kill –SIGTERM 1703
killall 用进程的命令名称向进程发送信号 常用信号: 编号
名称
SIGHUP SIGINT SIGKILL SIGTERM SIGCONT STOP
重装载配置文件 通过键盘(Ctrl+C)中断 停止进程。
立即结束进程(以受控的方法终止进程,因此可以进行清理) 继续由STOP停止的进程 停止进程
说明
1 2 9 15 18 19
注意:kill –l 或man 7 signal可获取信号的完整列表。
2. 利用/proc文件系统查看进程信息
系统中运行的每个进程在/proc目录下有个目录,目录名称为进程PID。 /proc/$PID/下包含进程的详细信息: 文件
cmdline environ fd目录 mem
进程的命令行 进程的环境信息
为每个打开的文件描述符提供一个入口 可通过其访问进程的内存映像
说明
stat status cwd exe maps root statm
包含进程的大多数信息 包含用户可读的进程信息 指向进程的当前工作目录 指向正在被执行的文件 内存映射区信息 进程的根目录
进程对内存的使用情况
实验要求:
1. 列出你的系统中当前运行的所有进程,并解释bash进程的各项信息的含义(不包括RSS
和SHR)。
2. 分别从至少三个虚拟终端登录,以树状形式列出你的系统中当前运行的所有进程及其
PID。找出你当前运行进程的所有祖先进程,并说明其各自的作用。分析Linux系统中的进程的家族关系。
3. 试验有几种方法可以列出系统中的所有运行进程? 4. 执行下列命令和操作:
$sleep180 ^Z $jobs $sleep 240& $sleep 300& $sleep 330& $sleep 630& $jobs $fg 4 ^C $bg 1 $kill 5
解释命令的作用和执行结果。
5. 分别以root和普通用户身份运行一个进程,使用nice、renice和top设置或者改变其优
先级,并验证是否成功。