《操作系统第二次试验作业.doc》由会员分享,可在线阅读,更多相关《操作系统第二次试验作业.doc(2页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精品文档,仅供学习与交流,如有侵权请联系网站删除实验报告(学生打印后提交)实验名称: shell编程基础 实验时间: 实验人员: _(姓名)_(学号)_2012_(年级)实验目的: 熟悉使用Linux 的C语言开发工具。2.学习Linux系统中进程的创建和结束。3.学习Linux 系统中进程的通信。 实验环境: linux 实验步骤: 1. 用帐户student登录,密码student 2. 自己用学号建立目录,把源文件拷入目录中 3. 阅读关于fork,exec,wait,exit,pipe系统调用的man帮助手册 4. 编译程序fork.c并运行,观察结果,观察进程 5编译程序pipe.c
2、并运行,观察结果 6阅读关于函数sigaction,tcsetpgrp和setpgid的man帮助手册 7编译程序signal.c并运行,观察结果,观察进程 8编译程序process.c并运行,观察结果,观察进程 9写实验总结 实验陈述:1、基础知识: 什么是系统调用: 系统调用是UNiX操作系统核心提供给用户程序使用的操作系统服务,系统调用主要提供用户程序对文件进行读写,进程的创建,删除和控制及数据的输入输出等。 简述fork调用: fork是创建新进程的系统调用,调用成功后,创建的新进程和父进程并发,新进程共享父进程的进程的空间。 如何实现进程间的通信: UNIX进程通信方式有信号,管道,
3、消息,共享存储区和信号量。 如何实现进程间的连接: 通过管道和socket 2、 写出下列函数的原型fork: int pid=fork() signal: int singal(int sig,int func) pipe: int pipe(filedes) tcsetpgrp: int tcsetpgrp(int filedes,pid_t pgrpid) 3、运行和观察结果 fork.c 简述结果(不是执行结果): 总用量是209 程序中如何区分父进程和子进程:通过fork的返回值pid,对父进程返回该进程标志符,对子进程本身,则返回的值为0,返回值是-1,表示创建进程失败。 pipe
4、.c 简述结果(不是执行结果):总用量为3048 execvp(prog2_argv0,prog2_argv)(第56行)是否执行,如果没有执行是什么原因:执行,父进程创建子进程后父进程和子进程执行是随机的,所以只要子进程创建成功,都会执行 signal.c 简述结果(不是执行结果):不断输出父进程和子进程的PID号,父进程是2500,子进程是2501 怎样让函数ChildHandler执行?得到信号时就执行CHildHandler函数 process.c 简述结果(不是执行结果):显示父进程和子进程的进程号 ,父进程的ID是2420,子进程的ID是2421 进程列表中有几个./process,区别在哪里:进程中有两个,一个主进程,一个子进程,一个在后台等待,一个在前台运行 杀死主进程后,出现什么情况:子进程也结束 实验总结: 1. 熟悉使用Linux 的C语言开发工具。2.了解Linux系统中进程的创建和结束。3.了解Linux 系统中进程的通信。 【精品文档】第 2 页