洛阳师范学院unix实验报告-7

上传人:第*** 文档编号:34208537 上传时间:2018-02-21 格式:DOC 页数:6 大小:8.71MB
返回 下载 相关 举报
洛阳师范学院unix实验报告-7_第1页
第1页 / 共6页
洛阳师范学院unix实验报告-7_第2页
第2页 / 共6页
洛阳师范学院unix实验报告-7_第3页
第3页 / 共6页
洛阳师范学院unix实验报告-7_第4页
第4页 / 共6页
洛阳师范学院unix实验报告-7_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《洛阳师范学院unix实验报告-7》由会员分享,可在线阅读,更多相关《洛阳师范学院unix实验报告-7(6页珍藏版)》请在金锄头文库上搜索。

1、测试过程:(实验中出现的问题、错误、解决方法)基本算法思想掌握之后,程序的大体流程可以写出来,具体的问题,就是有时候会因为对个别函数的参数应用出问题老师有问必答,全部都给解决了实验总结:签名 2012 年 5 月 23 日评语与成绩:教师签名:年 月 日洛阳师范学院信息技术学院软件实验报告专业: 软件工程 课程: UNIX 高级编程 学号: 姓名: 班级: 实验名称 终端与作业控制实验类型 验证型 实验时间 2012-5-23实验环境 虚拟机下装有 linux 操作系统的 windows 操作系统实验目的与要求:掌握进程组、会话期、作业、控制终端的概念;掌握作业的前台、后台切换、终端输出控制;

2、实验内容:1、 有关知识点的验证1) 写一段包含 fork 调用的程序,验证父子进程是否在同一组中2) 调用 setpgid 函数,分别设置父进程和子进程为一个新组的组长进程,输出设置后的组 ID,验证调用是否成功3) 如果一个进程在创建子进程后,希望该子进程为一个新组的组长进程,setpgid 应该被调用几次?在什么时机进行调用?4) 如果子进程因执行 exec 函数而加载新程序执行,此时父进程调用 setpgid函数设置子进程的组 ID 是否还能成功?验证你的结论5) 编写一段程序,要求调用 fork 在子进程中建立一个新的对话期。6) 验证步骤 5)中子进程的 ID 和组 ID 是否相等

3、?是否能够向终端输出打印信息?2、 验证进程终止及同步关系1) 编写二个程序,每个程序都输出其组 ID,通过管道线在命令行执行。验证这两个程序是否属于同一作业;2) 将上述命令行在后台执行,观察输出的情况,并解释原因3) 参照教材 P189 的例子,使用 stty 命令禁止后台进程的终端输出4) 参照教材 P189 的例子,使用 fg 命令切换后台作业为前提作业实验步骤:(算法描述、源程序、操作步骤和方法)有关知识点的验证写一段包含 fork 调用的程序,验证父子进程是否在同一组中有运行结果可知,子进程和父进程在同一实际组里。调用 setgid 函数,分别设置父进程和子进程为一个新组的组长进程

4、,输出设置后的组 ID,验证调用是否成功运行结果可知,修改成功:setpgid( 设 置 进 程 组 识 别 码 ) 相 关 函 数 getpgid, setpgrp, getpgrp 表 头 文 件 #include 定 义 函 数 int setpgid(pid_t pid,pid_t pgid); 函 数 说 明 setpgid( ) 将 参 数 pid 指 定 进 程 所 属 的 组 识 别 码 设 为 参 数 pgid 指 定 的 组 识 别 码 。 如 果 参 数 pid 为 0, 则 会 用 来 设 置 目 前 进 程 的 组 识 别 码 , 如 果 参 数 pgid 为 0,

5、则 会 以 目 前 进 程 的 进 程 识 别 码 来 取 代 。 返 回 值 执 行 成 功 则 返 回 组 识 别 码 , 如 果 有 错 误 则 返 回 -1, 错 误 原 因 存 于 errno 中 。 错 误 代 码 EINVAL 参 数 pgid 小 于 0。 EPERM 进 程 权 限 不 足 , 无 法 完 成 调 用 。 ESRCH 找 不 到 符 合 参 数 pid 指 定 的 进 程如果一个进程在创建子进程后,希望该子进程为一个新组的组长进程,setpgid应该被调用几次?在什么时机进行调用?首先应该 fork 一个子进程,如果成功,查看当前进程的组 ID 之后使用 se

6、tpgid这个函数将子进程设置为新租的组长进程。如果子进程因执行 exec 函数而加载新程序执行,此时父进程调用 setpgid 函数设置子进程的组 ID 是否还能成功?验证你的结论准备的二进制程序 mengyawei 的源程序编写一段程序,要求调用 fork 在子进程中建立一个新的对话期。有运行结果可知,子进程在成为会话组组长时,并没有想课本上所说的那样(失去中断控制权)但是已经成为另外一个组的进程了验证步骤 5)中子进程的 ID 和组 ID 是否相等?是否能够向终端输出打印信息?在子进程执行的程序中加上一句输出当前进程 pid 的输出语句既可验证进程终止及同步关系work1.c 文件内容work2.c 文件内容:编写二个程序,每个程序都输出其组 ID,通过管道线在命令行执行。验证这两个程序是否属于同一作业;不属于同一个作业原因:不知道1) 将上述命令行在后台执行,观察输出的情况,并解释原因参照教材 P189 的例子,使用 stty 命令禁止后台进程的终端输出参照教材 P189 的例子,使用 fg 命令切换后台作业为前提作业虽然将 work1 作业成功切换为前台进程,但是没有没有成功在前台输出具体原因可能是由于程序执行时间过短实验步骤:(算法描述、源程序、操作步骤和方法)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号