大连理工大物实验报告篇一:大连理工大学操作系统实验报告大连理工大学本科实验报告课程名称:操作系统实验学院(系):计算机科学与技术学院专业:计算机科学与技术班级:电计学号:学生姓名: 年月日实验项目列表大连理工大学实验报告学院(系):计算机科学与技术学院专业:计算机科学与技术班级:电计1301姓名:学号:组:___ 实验时间::综412实验台:指导教师签字:成绩: 进程管理实验一、实验目的加深对于进程并发执行概念的理解。实践并发进程的创建和控制方法。观察和体验进程的动态特性。进一步理解进程生命期期间创建、变换、撤销状态变换的过程。掌握进程控制的方法,了解父子进程间的控制和协作关系。练习Linux系统中进程创建与控制有关的系统调用的编程和调试技术。二、实验原理和内容原理:(1)fork成功创建子进程后将返回子进程的进程号,不成功会返回1(2)exec系统调用有一组6个函数,其中示例实验中引用了execve 系统调用语法:include intexecve(constchar*path,constchar*argv[],constchar*envp[]);path要装入的新的执行文件的绝对路径名字符串. argv[]要传递给新执行程序的完整的命令参数列表(可以为空). envp[]要传递给新执行程序的完整的环境变量参数列表(可以为空).Exec执行成功后将用一个新的程序代替原进程,但进程号不变,它绝不会再返回到调用进程了。exec调用失败,它会返回1。内容: (1)每个进程都执行自己独立的程序,打印自己的pid,每个父进程打印其子进程的pid; (2)每个进程都执行自己独立的程序,打印自己的pid,父进程打印其子进程的pid; (3)编写一个命令处理程序,能处理max(m,n),min(m,n)和average(m,n,l) 这几个命令。(使用exec函数族)三实验代码及结果(1) includeincludeintmain(){ if(fork()==0){ printf(“子进程的pid为:%d.\n”,getpid());if(fork()==0){ printf(“二级子进程的pid为:%d.\n”,getpid());}}else{ printf(“父进程的pid为%d.\n”,getpid());} return0;} 运行结果: (2) includeincludeintmain(){ if(fork()==0){ printf(“子进程的pid为%d.\n”,getpid());} else{ if(fork()==0) { printf(“子进程2的pid%d.\n”,getpid()); } else{ printf(“父进程的pid为%d.\n\n”,getpid()); }}return0; } (3) 调用函数为:i
大连理工大物实验报告 来自淘豆网m.daumloan.com转载请标明出处.