- 3
- 0
- 约5.26千字
- 约 13页
- 2017-01-30 发布于重庆
- 举报
Linux进程管理编程(进程的创建)
实训1 Linux进程管理命令的使用
实训目标:
掌握Linux中ps命令使用方法。
掌握Linux中top命令使用方法。
实训内容:
使用ps命令查看进程。
使用top命令查看进程。
实训步骤:
使用ps命令查看进程。
不带参数的ps命令:# ps
带参数的ps命令:# ps aux
使用top命令查看进程。
a. 监视特定用户:$ top:输入此命令,按【Enter】键,查看执行结果。
u: 然后输入“u”按【Enter】键,再输入用户名,即可。
b. 终止指定的进程:$ top:输入此命令,按【Enter】键,查看执行结果。
k: 然后输入“k”按【Enter】键,再输入要结束的进 程ID号。
实训2 Linux进程管理编程(进程的创建)
实训目标:
掌握fork()系统调用的使用。
实训内容:
写出如下程序的执行结果,并画出该进程家族树。
/***fork()***/
#includestdio.hmain()
{
fork(); /*父进程1创建子进程2*/ fork(); /*父进程返回后分别再创建各自的子进程3、4*/ fork(); /*父进程1、2、3、4返回后分别再创建各自的子进程5、6、7、8*/
putchar(‘A’); /*每个进程都要输出‘A’*/
putchar(‘\n’); /*输出‘A’后按【Enter】键换行*/
}
实训步骤:
新建并编辑fork3.c.
编译fork3.c。
[cathya@stu 桌面] $ gcc -o fork3 fork3.c
执行fork3,结果如下。
[cathya@stu 桌面] $ ./fork3
A
A
A
A
A
A
A
A
[cathya@stu 桌面] $
查看该进程执行结果为八个“A”,说明有八个进程产生。其进程关系如图3—8所示。
图3—8 调用三次fork()的进程家族树
步骤2—4的执行结果
实训3 Linux进程管理编程(父子进程的同步)
实训目标:
掌握fork()系统调用的使用。
实训内容:
实现子进程先输出“B”然后父进程再输出“A”,源程序命名为synl.c。
实训步骤:
编写源文件synl.c为以下内容(执行内容如图1):
#includestdio.h main()
{
int p1;
while((p1=fork())==-1);
if (p10)
{
wait(0); //父进程等待子进程终止 putchar(‘A’);
Putchar(‘\n’);
} else
{
putchar(‘B’);
putchar(‘\n’);
exit(0); //子进程向父进程发终止信号0
}
}
编译(如图2)。
执行(如图2):
[cathya@stu 桌面] $ ./synl
B
A
[cathya@stu 桌面] $
源程序编译连接并多次运行后的结果都是子进程先输出“B”父进程后输出“A”,说明父进程等待子进程的同步关系成立。
图1
图2
实训4 Linux进程管理编程(生产者消费者问题)
实训目标:
掌握Linux关于同步、互斥信号量的使用。
实训内容:
设父进程创建一个子进程作为生产者,创建两个子进程作为消费者,这三个子进程使用一个共享内存,如图3—9所示,该共享内存定义为具有五个变量的数组,每个变量表示一个缓冲区,缓冲区号为0~4.生产者进程依次往缓冲区0~4中写十个数据1~10,两个读进程依次从缓冲区0~4中轮流取出这10个数据。使用信号量实现进程读写缓冲区的同步和互斥。
分析:
(1)需要创建三个子进程:生产者、消费者A、消费者B;
(2)需要使用三个信号量:empty、full、mutex,分别表示缓冲区是否有空、是否有 数和
您可能关注的文档
最近下载
- 学习、教学和评估的分类学(布鲁姆教育目标分类学修订版).pdf VIP
- 515省道建设工程(427省道改线)环境影响报告书.pdf VIP
- 中超联赛治理共同体建设的基本内涵、现实情境与发展路径.docx VIP
- 建筑设备安装识图与施工(给排水识图).ppt VIP
- 小儿海姆立克急救法课件(1).pptx VIP
- 年产10万吨硫酸工艺设计.docx VIP
- 建筑设备安装识图与施工工艺.docx VIP
- 课程标准建筑设备安装工程识图施工工艺课程整体教案.docx VIP
- 暑假预习《文言文》早背晚默小纸条++++++++++++++2025-2026学年统编版语文八年级上册.docx VIP
- 中医九种体质养生课件.ppt VIP
原创力文档

文档评论(0)