实验三进程的创建和简单控制实验目的:1
掌握进程的概念和进程的状态,对进程有感性的认识;2
掌握进程创建方法;3
认识进程的并发执行,了解进程族之间各种标识及其存在的关系;4
熟悉进程的创建、阻塞、唤醒、撤销等控制方法
实验内容:1
了解有关Linux进程的属性和进程的层次结构;2
学习有关Linux的前台和后台进程;3
学习有关Linux命令的顺序执行和并发执行;4
学习有关挂起和终止进程;5
了解并发程序的不可确定性,进行简单并发程序设计
实验步骤:(一)Shell下的进程控制1
进入Linux系统
用ps查看进程
a)linux的ps命令是用来监视系统进程和资源使用情况的命令,可显示瞬间进程的动态
b)ps的参数非常多,常用的参数有:i
-A列出所有的进程;ii
-w显示加宽可以显示较多的信息;iii
-au显示较详细的信息;iv
-aux显示所有包含其他使用者的进程
用kill终止某些进程
a)kill命令通过向进程发送指定的信号来结束进程
b)先使用ps查到进程号,再使用kill杀出进程
用pstree命令显示系统中进程层次结构
a)pstree指令用ASCII字符显示树状结构,清楚地表达进程间的相互关系
b)语法格式pstree[-acGhlnpuUV][-H][/](二)Linux简单进程编程1
理解系统调用fork()的使用
a)fork()会产生一个与父程序相同的子程序,唯一不同之处在于其进程号,如图1所示
图1系统调用fork()b)编辑下面的程序,要求实现父进程产生两个子进程,父进程显示字符“a”、两个子进程,分别显示字符“b”、“c”,如图2所示
#includemain(){intp1,p2;while((p1=fork())==-1);/*父进程创建第一个进程,直到成功*/if(p1==0)/*0返回给子进程1*/{putchar(&