1、 计算机操作系统课程设计报告 课程名称: 操作系统 设计题目: 管道通信 指导教师: * 班 级: * 学 号: * 学生姓名: * 同组人员: * 计算机科学与工程学院 2014 年 6 月 19 日 成 绩: 评 语: 前言: Linux 操作系统是一个向用户开放源码的免费的类 UNIX 操作系统。 它为在校学生学习操作系统 课程提供了一个看得见摸得着的范例。对于学生正确理解,掌握操作系统的基本知识具有重要意义。 鉴于此,本操作系统课程涉及的实验均在 Linux 环境下进行。 这就要求大家: (1)熟悉 Linux 的操作和开发环境; (2)具有 C 语言知识(Linux 操作系统大约 9
2、0%的源码是用 C 语言编写)。 我们的设计和实验将在 Windows xp 环境下,基于虚拟机软件 VMWare 软件进行安装。 学习计算机软件技术,特别是计算机操作系统技术,除了需要刻苦努力外,还需要掌握软件和 操作系统的原理与设计技巧。 如何学习和掌握操作系统技术的原理与实际技巧呢?除了听课和读书之 外,最好的方法恐怕就是在实践中练习。例如,自己设计一个小型操作系统,多使用操作系统,多 阅读和分析操作源代码等。但由于我们的条件和学时有限,在理论学习过程中没有给同学们提供更 多的实验机会。 管道通信,通过在两个进程间创建通道,一个写信息通过通道传送给另一个进程并且读出来, 同过实践让我们了
3、解了什么是管道通信机制,实现了程序进程间的通信。积极通过合作,完成任务。 目 录 第一章第一章 :系统环境:系统环境 . 4 1.1 硬件环境 4 1.2 软件环境 4 第二章第二章 :设计目的:设计目的 . 4 第三章第三章 :总体设计:总体设计 . 5 3.1 程序设计组成框图 5 3.2 流程图 6 3.2.1 匿名管道通信 C/S 流程图. 6 3.2.2 命名管道通信 C/S 流程图. 6 第四章第四章 :详细设计:详细设计 . 8 4.1 匿名管道通信 8 4.2 命名管道通信 10 第五章第五章 :调试与测试:调试与测试 . 13 第六章第六章 :设计中遇到的问题及解决方法:设计
4、中遇到的问题及解决方法 . 15 第七章第七章 :源程序清单和执行结果及分析:源程序清单和执行结果及分析 . 16 第八章第八章 : :总结总结 20 第九章第九章 : :参考文献参考文献 . 20 第一章:系统环境 1.1 硬件环境硬件环境 Intel(R)Core2 Duo CPU E7500 2.93GHz 2.00GB 内存 1.2 软件环境软件环境 1)Microsoft Windows XP Professional 版本 2002 Service Pack 3 2)Vmware Workstation 10.0.1 build-1379776 3)Red Hat Linux 9
5、第二章:设计目的 实践操作系统原理知识,根据题目要求设计、实现进程的管道通信,并且在虚拟机中模拟的 linux 系统中运行检测。 第三章:总体设计 3.1 程序设计组成框图程序设计组成框图 无名管道读写示意图 命名管道操作示意图 3.2 流程图流程图 3.2.1 匿名管道通信匿名管道通信 C/S 流程图流程图 3.2.2 命名管道通信命名管道通信 C/S 流程图流程图 FIFO 写进程: 第四章:详细设计 4.1 匿名管道通信匿名管道通信 管道用于不同进程间通信。通常先创建一个管道,再通过 fork 函数创建一个子进程, 该子进程会继承父进程创建的管道。注意事项:必须在系统调用 fork()前
6、调用 pipe() , 否则子进程将不会继承文件描述符。否则,会创建两个管道,因为父子进程共享同一段代码 段,都会各自调用 pipe() ,即建立两个管道,出现异常错误。 父进程通过管道向服务器发 布命令,然后由服务器执行命令。 1.fork() 创建一个新进程。 用法: int fork() 其中返回 int 取值意义如下: 0:创建子进程,从子进程返回的 id 值 0:从父进程返回的子进程 id 值 -1:创建失败 2.lockf(files,function,size) 用作锁定文件的某些段或者整个文件。 头文件: #include 参数定义: int lockf(files,function,size); int files,function; long size; 其中:files