欢迎来到天天文库
浏览记录
ID:39558392
大小:46.50 KB
页数:13页
时间:2019-07-06
《操作系统实验报告_进程部分》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、西安邮电学院操作系统实验报告专业名称:软件工程班级:软件0701学号:04075021学生姓名:孟阿龙13实验1掌握Linux基本命令和开发环境1.掌握常用的Linuxshell命令;掌握linux下的基本命令的用法。ls,cat,mkdir,rm,touch,less,cp,mv,head,tail,sort,echo2.掌握编辑环境VIM;学习vim的基本使用。i,a:进入编辑模式v:进入可视模式esc;进入命令模式编辑模式下可以和正常的文本输入方式一样。V进入可视模式可以使用y进行复制,d进行剪切,p
2、进行粘贴。esc进入命令模式可以w进行文件存盘,q退出vim,q!不保存而退出,u撤销。3.掌握编译环境gcc及跟踪调试工具gdbgcc编译文件的格式gcc-o目标文件源文件gcc源文件gcc-g-o目标文件源文件gdb基本调试命令:l:列出当前文件blinenumber,在指定的行设置断点Infobr查看断点信息Infosource查看源码信息Infostack查看堆栈信息Infoargs查看当前的参数Listfunction列出某个函数disable/enable使断点失效或有效delete删除断点st
3、ep单步执行命令printa:打印出变量a的内容13实验二进程一实验目的:通过观察分析实验现象,深入理解进程及进程在调度执行和内存空间等方面的特点,掌握fork和kill系统调用的功能和使用。二实验前准备:学习man命令的用法,通过它查看fork和kill系统调用的在线帮助,并阅读参考资料学会fork与kill的用法。复习C语言的相关内容。三实验内容:按照所给的残缺版代码读懂程序,然后回答问题。(残缺版实验代码略)1.先猜想一下这个程序的运行结果。假如运行“./process20”,输出会是什么样?将会产生
4、10个进程。因为程序设定最大产生进程数为10。2.然后按照注释里的要求把代码补充完整,运行程序。可以多运行一会儿,并在此期间启动、关闭一些其它进程,看process的输出结果有什么特点,记录下这个结果。开另一个终端窗口,运行“psaux
5、grepprocess”命令,看看process究竟启动了多少个进程。回到程序执行窗口,按“数字键+回车”尝试杀掉一两个进程,再到另一个窗口看进程状况。如果执行./process20打开另一个终端用psaux
6、grepprocess可以看到有11个名称为process的进程
7、运行。这是有一个主进程,在主进程中产生了10个子进程。所以共有11个名称为process的进程在运行。在程序执行窗口按下数字键+回车这是会杀死对应的进程。切换到另一个终端下查看可以看到刚才杀死的进程在他的后面会出现标志。表示该进程已经被杀死了。3.按q退出程序再看进程情况。按下q之后所有名称为process的进程都被杀死了。这是由于按下q之后主进程调用kill(0,SIGTERM)向所有同组的进程发出了终止信号。所以所有名称为process的进程都被杀死了。 实验报告问题:131.你最初认为
8、运行结果会怎么样?最初认为程序执行后会根据所给的参数产生相应数量的同名进程。按下数字+回车会杀死相应的进程。按下q会杀死所的进程。2.实际的结果什么样?有什么特点?试对产生该现象的原因进行分析。实际结果和我预期的是相同的。产生的子进程数最多是10个,这是因为我在程序中设定了产生进程的最大数为10。当所提供的数字小于10时则准确产生相应数量的子进程。当所给的参数大于10时就只产生10个进程。这在程序中是由我下面的语句控制的。if(argc>1){child_proc_number=atoi(argv[1]);
9、child_proc_number=(child_proc_number>MAX_CHILD_NUM)?10:child_proc_number;}3.proc_number这个全局变量在各个子进程里的值相同吗?为什么?不相同。proc_number是每个进程的编号,从0到MAX_CHILD_NUM。4.kill命令在程序中使用了几次?每次的作用是什么?执行后的现象是什么?kill命令使用了两次。第一次是在while循环中进行的,此时传递给他的第一个参数是一个子进程的id,这时他杀死的是对应的子进程。第二次
10、是在用户按下q之后调用,此时传递给他的第一个参数是0,表示要杀死对应进程组中的所有进程5.使用kill命令可以在进程的外部杀死进程。进程怎样能主动退出?这两种退出方式哪种更好一些?进程退出是当进程执行完自己的do_something()函数之后,最终会调用return语句退出。或者是当主进程执行到return语句时子进程也就相应的退出了。这两种方法第二中更好一些,这样子进程可以正常的退出程序不会产生意外。6.把你
此文档下载收益归作者所有