实验报告(学生打印后提交)实验名称:shell编程基础实验时间:实验人员:_____(姓名)______(学号)__2012______(年级)实验目的:熟悉使用Linux的C语言开发工具。2.学习Linux系统中进程的创建和结束。3.学习Linux系统中进程的通信。实验环境:linux实验步骤:1.用帐户student登录,密码student2.自己用学号建立目录,把源文件拷入目录中3.阅读关于fork,exec,wait,exit,pipe系统调用的man帮助手册4.编译程序fork.c并运行,观察结果,观察进程5.编译程序pipe.c并运行,观察结果6.阅读关于函数sigaction,tcsetpgrp和setpgid的man帮助手册7.编译程序signal.c并运行,观察结果,观察进程8.编译程序process.c并运行,观察结果,观察进程9.写实验总结实验陈述:1、基础知识:什么是系统调用:系统调用是UNiX操作系统核心提供给用户程序使用的操作系统服务,系统调用主要提供用户程序对文件进行读写,进程的创建,删除和控制及数据的输入输出等。简述fork调用:fork是创建新进程的系统调用,调用成功后,创建的新进程和父进程并发,新进程共享父进程的进程的空间。如何实现进程间的通信:UNIX进程通信方式有信号,管道,消息,共享存储区和信号量。如何实现进程间的连接:通过管道和socket2、写出下列函数的原型fork:intpid=fork()signal:intsingal(intsig,intfunc)pipe:intpipe(filedes)tcsetpgrp:inttcsetpgrp(intfiledes,pid_tpgrpid)3、运行和观察结果fork.c简述结果(不是执行结果):总用量是209程序中如何区分父进程和子进程:通过fork的返回值pid,对父进程返回该进程标志符,对子进程本身,则返回的值为0,返回值是-1,表示创建进程失败。pipe.c简述结果(不是执行结果):总用量为3048execvp(prog2_argv[0],prog2_argv)(第56行)是否执行,如果没有执行是什么原因:执行,父进程创建子进程后父进程和子进程执行是随机的,所以只要子进程创建成功,都会执行signal.c简述结果(不是执行结果):不断输出父进程和子进程的PID号,父进程是2500,子进程是2501怎样让函数ChildHandler执行?得到信号时就执行CHildHandler函数process.c简述结果(不是执行结果):显示父进程和子进程的进程号,父进程的ID是2420,子进程的ID是2421进程列表中有几个./process,区别在哪里:进程中有两个,一个主进程,一个子进程,一个在后台等待,一个在前台运行杀死主进程后,出现什么情况:子进程也结束实验总结:1.熟悉使用Linux的C语言开发工具。2.了解Linux系统中进程的创建和结束。3.了解Linux系统中进程的通信。