四川大学操作系统课程设计第二次shell编程实验报告.doc_第1页
四川大学操作系统课程设计第二次shell编程实验报告.doc_第2页
四川大学操作系统课程设计第二次shell编程实验报告.doc_第3页
四川大学操作系统课程设计第二次shell编程实验报告.doc_第4页
四川大学操作系统课程设计第二次shell编程实验报告.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验报告(学生打印后提交)实验名称: shell编程基础 实验时间: 2013 年 4 月26 日实验人员:实验目的:1.学习使用Linux的系统调用,对进程进行管理和完成进程之间的通信(本实验中分别是用信号和管道进行进程间通信);2.理解并发程序中的同步问题;3.熟悉使用Linux下的软件开发工具gcc;4.熟练使用man帮助手册 实验环境: linux 实验步骤:1. 把源文件(程序)拷入Linux系统的一个目录中 2. 阅读关于fork、exec、wait、exit、pipe系统调用的man帮助手册 3. 编译程序fork.c并运行,观察结果,分析程序。 4. 试编辑程序pipe.c运行,观察结果,分析程序。(程序要求及提示见pipe.c源文件)。5.阅读关于函数sigaction、tcsetpgrp和setpgid的man帮助手册 。 6.编译程序signal.c并运行,观察结果,分析程序。 7.编译程序process.c并运行,观察结果,分析程序。 8.完成实验报告。实验陈述:1、基础知识: 什么是系统调用:系统调用是Linux操作系统核心提供给用户程序使用的操作系统服务,系统调用主要提供用户程序对文件进行读写,进程的创建,删除和控制以及数据的输入/输出等。 简述fork调用:创建一个新的进程,成为原先进程的子进程,同时子进程拥有和父进程相同代码段,通过fork的返回值转向不同的代码分支的一种函数调用。 如何实现进程间的通信:通过管道允许一条命令的标准输出作为一条命令的标准输入,同一个系统上的两个相关的进程可实现相互之间的单向通信(典型情形是父子进程。UNIX进程通信方式还有信号,消息,共享存储区和信号量。 如何实现进程间的连接:信号允许一个进程在某一事件发生时与另一个进程(接收者进程)通信,该进程把事件对应的消息传递给接收者进程,接收者进程收到一个信号时,会采取某些相应的动作,这样便实现了进程间的通信。2、 写出下列函数的原型fork: int fork(void) sigaction:int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact)pipe:int pipe(int fildes2) tcsetpgrp: int tcsetpgrp(int fildes, pid_t pgid_id) 3、运行和观察结果 fork.c 简述程序实现的功能:完成进程创建和执行 程序中如何区分父进程和子进程:通过fork的返回值pid的值的大小来区分子进程和父进程,如果pid的值等于0,表明是子进程,如果0表明是父进程,如果小于0,表明子进程创建失败 。 pipe.c 简述程序实现的功能:创建一个管道,把管道的读和写文件描述符 放到数组fildes中,fildes0元素作为管道的读描述 符, fildes1元素作为管道的写描述符。同时重定向到程序中的缓冲,然后用more命令以页为单位在屏幕上显示出重定向的内容。 execvp(prog2_argv0,prog2_argv)是否执行,如果没有执行是什么原因: 会执行,父进程创建子进程后父进程和子进程的执行是随机的,所以只要第二次子进程创建成功,都会执行这一句话。 signal.c简述程序实现的功能:不断地输出父进程和子进程的PID号,父进程是2771,子进程是2772。怎样让函数ChildHandler执行? 当子进程接收到信号的时候就执行ChildHandler函数 process.c 简述程序实现的功能:显示父进程和子进程的ID号,其中父进程的ID号为2813,子进程的ID号为2814,然后使子进程所在的进程组成为前台进程组,同时与控制终端的标准输入相关联,然后执行vi。进程列表中有几个process,为什么? 进程列表中有两个pro,一个是主进程,在后台等待输入,子进程在前台调用vi 。杀死主进程后,出现什么情况:子进程也结束了。 实验总结:1. 学会了在Linux虚拟机下挂载U

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论