欢迎来到天天文库
浏览记录
ID:50985538
大小:46.50 KB
页数:22页
时间:2020-03-08
《my进程线程及死锁的实验.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
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学生
2、实验前的准备工作学习man命令的用法,通过它查看fork和kill系统调用的在线帮助,并阅读参考资料,学会fork与kill的用法。复习C语言的相关内容。2.3实验内容通读下列代码: /**POSIX下进程控制的实验程序残缺版*/#include#include#include#include#include/*允许建立的子进程个数最大值*/#defineMAX_CHILD_NUMBER10/*
3、子进程睡眠时间*/#defineSLEEP_INTERVAL2intproc_number=0;/*子进程的自编号,从0开始*/voiddo_something();main(intargc,char*argv[]){intchild_proc_number=MAX_CHILD_NUMBER;/*子进程个数*/inti,ch;pid_tchild_pid;pid_tpid[10]={0};/*存放每个子进程的id*/if(argc>1){/*命令行参数中的第一个参数表示建立几个子进程,最多10个*
4、/child_proc_number=atoi(argv[1]);child_proc_number=(child_proc_number>10)?10:child_proc_number;}for(i=0;i5、r(i=0;i[pid-‘0’]6、”); }}/*在这里填写代码,杀死本组的所有进程*/return;}voiddo_something(){for(;;){/*打印子进程自编号。为清晰,在每个号码前加“号码+3”个空格*比如号码是1,就打印"1"*/printf("ThisisprocessNo.%*d",proc_number+3,proc_number);}}sleep(2);/*主动阻塞两秒钟*/先猜想一下这个程序的运行结果。假如运行“./process20”,输出会是什么样?不会产生20个进程的,因为最大的进程个数已7、经限制了。输出0--9号进程编号然后按照注释里的要求把代码补充完整,运行程序。可以多运行一会儿,并在此期间启动、关闭一些其它进程,看process的输出结果有什么特点,记录下这个结果。ThisisprocessNo.2ThisisprocessNo.0ThisisprocessNo.3ThisisprocessNo.1ThisisprocessNo.2ThisisprocessNo.0ThisisprocessNo.3ThisisprocessNo.12ThisisprocessNo.0Thisi8、sprocessNo.3ThisisprocessNo.1ThisisprocessNo.0ThisisprocessNo.3ThisisprocessNo.13ThisisprocessNo.0ThisisprocessNo.15已终止开另一个终端窗口,运行“”命令,看看process究竟启动了多少个进程。回到程序执行窗口,按“数字键+回车”尝试杀掉一两个进程,再到另一个窗口看进程状况。./lab4root28630.00.01844232pts/1S+17:070:00./la
5、r(i=0;i[pid-‘0’]
6、”); }}/*在这里填写代码,杀死本组的所有进程*/return;}voiddo_something(){for(;;){/*打印子进程自编号。为清晰,在每个号码前加“号码+3”个空格*比如号码是1,就打印"1"*/printf("ThisisprocessNo.%*d",proc_number+3,proc_number);}}sleep(2);/*主动阻塞两秒钟*/先猜想一下这个程序的运行结果。假如运行“./process20”,输出会是什么样?不会产生20个进程的,因为最大的进程个数已
7、经限制了。输出0--9号进程编号然后按照注释里的要求把代码补充完整,运行程序。可以多运行一会儿,并在此期间启动、关闭一些其它进程,看process的输出结果有什么特点,记录下这个结果。ThisisprocessNo.2ThisisprocessNo.0ThisisprocessNo.3ThisisprocessNo.1ThisisprocessNo.2ThisisprocessNo.0ThisisprocessNo.3ThisisprocessNo.12ThisisprocessNo.0Thisi
8、sprocessNo.3ThisisprocessNo.1ThisisprocessNo.0ThisisprocessNo.3ThisisprocessNo.13ThisisprocessNo.0ThisisprocessNo.15已终止开另一个终端窗口,运行“”命令,看看process究竟启动了多少个进程。回到程序执行窗口,按“数字键+回车”尝试杀掉一两个进程,再到另一个窗口看进程状况。./lab4root28630.00.01844232pts/1S+17:070:00./la
此文档下载收益归作者所有