进程创建实验报告.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
进程创建实验报告

(计算机学院) 课内实验报告 实验名称: 进程管理-进程调度 专业名称 计算机科学与技术 班 级: 学生姓名: 学号(8位) 指导教师: 实验日期: 一. 实验目的及实验环境 1.实验目的 通过观察、分析实验现象,深入理解进程及进程在调度执行和内存空间等方面的特点,掌握在POSIX 规范中fork和kill系统调用的功能和使用。 2.实验环境 (1)硬件 CPU:Intel(R) Core(TM) i7-4710HQ CPU @ 2.50GHz 内存:8.0GB 显示器:NVIDIA GeForce GTX 850M 硬盘空间:1.0TB (2)软件 虚拟机名称及版本:VM12.0 操作系统名称及版本:Centos6.7 编译器:GCC 二. 实验内容 1、实验前准备工作? 学习man?命令的用法,通过它查看fork?和kill?系统调用的在线帮助,并阅读参考资料,学会fork?与kill?的用法,复习C?语言的相关内容。? 2、实验内容 根据下发的Linux进程管理实验PPT内容,将实验代码补充完整。并考虑: 先猜想一下这个程序的运行结果。假如运行“./process 20”,输出会是什么样?然后按照注释里的要求把代码补充完整,运行程序。可以多运行一会儿,并在此期间启动、关闭一些其它进程,看process 的输出结果有什么特点,记录下这个结果。开另一个终端窗口,运行“ps aux|grep process”命令,看看process 究竟启动了多少个进程。回到程序执行窗口,按“数字键+回车”尝试杀掉一两个进程,再到另一个窗口看进程状况。按q 退出程序再看进程情况。 3、回答问题 编写、编译、链接、执行实验内容设计中的代码,并回答如下问题: 你最初认为运行结果会怎么样? 答:子进程按序号输出。 实际的结果什么样?有什么特点?试对产生该现象的原因进行分析。 答:子进程基本按序号输出,但有几个顺序错误,可能是某些子进程执行太快,抢占资源,导致顺序错误。 proc_number 这个全局变量在各个子进程里的值相同吗?为什么? 答:相同,因为全局变量是共享资源,所以值相同。 kill 命令在程序中使用了几次?每次的作用是什么?执行后的现象是什么? 答:执行了2次,第一次是用户自己选择杀死进程的编号,执行后该进程被杀死,不会出现在主进程中,第二次是杀死本组全部子进程,杀死后程序只剩主进程。 使用kill 命令可以在进程的外部杀死进程。进程怎样能主动退出?这两种退出方式哪种更好一点? 答:exit(0和 return(0) 可以主动退出,主动退出比较好,kill在时,部杀死进程时,可能还有未退出的子进程,所以主动退出好。 写出fork()和kill()函数原型,并解释函数的功能和参数的含义? 答:Kill: #include?sys/types.h 2? 3?#include?signal.h 4? 5?int?kill(pid_t?pid,?int?sig); 6? 7? 参数:? pid:可能选择有以下四种 1. pid大于零时,pid是信号欲送往的进程的标识。 2. pid等于零时,信号将送往所有与调用kill()的那个进程属同一个使用组的进程。 3. pid等于-1时,信号将送往所有调用进程有权给其发送信号的进程,除了进程1(init)。 4. pid小于-1时,信号将送往以-pid为组标识的进程。 sig:准备发送的信号代码,假如其值为零则没有任何信号送出,但是系统会执行错误检查,通常会利用sig值为零来检验某个进程是否仍在执行。 返回值说明: 成功执行时,返回0。失败返回-1,errno被设为以下的某个值 EINVAL:指定的信号码无效(参数 sig 不合法) EPERM;权限不够无法传送信号给指定进程 ESRCH:参数 pid 所指定的进程或进程组不存在. 参数:? pid:可能选择有以下四种 1. pid大于零时,pid是信号欲送往的进程的标识。 2. pid等于零时,信号将送往所有与调用kill()的那个进程属同一个使用组的进程。 3. pid等于-1时,信号将送往所有调用进程有权给其发送信号的进程,除了进程1(init)。 4. pid小于-1时,信号将送往以-pid为组标识的进程。 sig:准备发送的信号代码,假如其值为零则没有任何信号送出,但是系统会执行错误检查,通常会利用sig值为零来检验某个进程是否仍在执行。 返回值说明: 成功执行时,返回0。失败返回-1,errn

文档评论(0)

kaiss + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档