my进程线程及死锁的实验

my进程线程及死锁的实验

ID:8800214

大小:57.00 KB

页数:22页

时间:2018-04-08

my进程线程及死锁的实验_第1页
my进程线程及死锁的实验_第2页
my进程线程及死锁的实验_第3页
my进程线程及死锁的实验_第4页
my进程线程及死锁的实验_第5页
资源描述:

《my进程线程及死锁的实验》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、实验1Linux基本命令 实验2进程2.1实验目的 通过观察、分析实验现象,深入理解进程及进程在调度执行和内存空间等方面的特点,掌握在POSIX规范中fork和kill系统调用的功能和使用。 2.2实验要求2.2.1实验环境要求1.硬件(1)主机:PentiumIII以上;(2)内存:128MB以上;(3)显示器:VGA或更高;(4)硬盘空间:至少100MB以上剩余空间。2.软件Linux操作系统,内核2.4.26以上,预装有X-Window、vi、gcc、gdb和任意web浏览器。2.2.2学生实验前的准备工作学习man命令的用法,通过它查看fork和kill系统调用的在线帮助,并阅读参考

2、资料,学会fork与kill的用法。复习C语言的相关内容。2.3实验内容通读下列代码:  /**POSIX下进程控制的实验程序残缺版*/#include#include#include#include#include/*允许建立的子进程个数最大值*/#defineMAX_CHILD_NUMBER10/*子进程睡眠时间*/#defineSLEEP_INTERVAL2intproc_number=0;/*子进程的自编号,从0开始*/voiddo_something();main(intargc,

3、char*argv[]){intchild_proc_number=MAX_CHILD_NUMBER;/*子进程个数*/inti,ch;pid_tchild_pid;pid_tpid[10]={0};/*存放每个子进程的id*/if(argc>1){/*命令行参数中的第一个参数表示建立几个子进程,最多10个*/child_proc_number=atoi(argv[1]);child_proc_number=(child_proc_number>10)?10:child_proc_number;}for(i=0;i

4、ld_proc_number个子进程////child__pid=fork();*子进程要执行*proc_number=i;*do_something();}*父进程把子进程的id保存到pid[i]*/////for(i=0;i

5、杀死该子进程*///////printf(”Usage:./my_kill<-sSIGTERM>[pid-‘0’]”); }}/*在这里填写代码,杀死本组的所有进程*/return;}voiddo_something(){for(;;){/*打印子进程自编号。为清晰,在每个号码前加“号码+3”个空格*比如号码是1,就打印"1"*/printf("ThisisprocessNo.%*d",proc_number+3,proc_number);}}sleep(2);/*主动阻塞两秒钟*/先猜想一下这个程序的运行结果。假如运行“./process20”,输出会是什么样?不会产生20个进程的

6、,因为最大的进程个数已经限制了。输出0--9号进程编号然后按照注释里的要求把代码补充完整,运行程序。可以多运行一会儿,并在此期间启动、关闭一些其它进程,看process的输出结果有什么特点,记录下这个结果。ThisisprocessNo.2ThisisprocessNo.0ThisisprocessNo.3ThisisprocessNo.1ThisisprocessNo.2ThisisprocessNo.0ThisisprocessNo.3ThisisprocessNo.12ThisisprocessNo.0ThisisprocessNo.3ThisisprocessNo.1Thisispr

7、ocessNo.0ThisisprocessNo.3ThisisprocessNo.13ThisisprocessNo.0ThisisprocessNo.15已终止开另一个终端窗口,运行“”命令,看看process究竟启动了多少个进程。回到程序执行窗口,按“数字键+回车”尝试杀掉一两个进程,再到另一个窗口看进程状况。./lab4root28630.00.01844232pts/1S+17:070:00./la

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。