操作系统管道通信课程设计.doc

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《计算机操作系统》课程设计报告 课程名称: 操作系统 设计题目: 管道通信 指导教师: ******* 班 级: ******* 学 号: ***** 学生姓名: ***   同组人员: ******************* 计算机科学与工程学院 2014年6月19 日 前言: Linux操作系统是一个向用户开放源码的免费的类UNIX操作系统。它为在校学生学习操作系统课程提供了一个看得见摸得着的范例。对于学生正确理解,掌握操作系统的基本知识具有重要意义。鉴于此,本操作系统课程涉及的实验均在Linux环境下进行。 这就要求大家: (1)熟悉Linux的操作和开发环境; (2)具有C语言知识(Linux操作系统大约90%的源码是用C语言编写)。 我们的设计和实验将在Windows xp环境下,基于虚拟机软件VMWare软件进行安装。 学习计算机软件技术,,,?除了听课和读书之外,,,,目 录第一章 :系统环境 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 第六章 :设计中遇到的问题及解决方法 15 第七章 :源程序清单和执行结果及分析 16 第八章 :总结 20 第九章 :参考文献 20 :系统环境 1.1硬件环境 Intel(R)Core?2 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 :设计目的 实践操作系统原理知识,根据题目要求设计、实现进程的管道通信,并且在虚拟机中模拟的linux系统中运行检测。 :总体设计 3.1程序设计组成框图 无名管道读写示意图 3.2.2命名管道通信C/S流程图 FIFO写进程: :详细设计 4.1匿名管道通信 管道用于不同进程间通信。通常先创建一个管道,再通过fork函数创建一个子进程,该子进程会继承父进程创建的管道。注意事项:必须在系统调用fork()前调用pipe(),否则子进程将不会继承文件描述符。否则,会创建两个管道,因为父子进程共享同一段代码段,都会各自调用pipe(),即建立两个管道,出现异常错误。 父进程通过管道向服务器发布命令,然后由服务器执行命令。 1.fork() 创建一个新进程。 用法: int fork() 其中返回int取值意义如下: 0:创建子进程,从子进程返回的id值 0:从父进程返回的子进程id值 -1:创建失败 2.lockf(files,function,size) 用作锁定文件的某些段或者整个文件。 头文件: #include unistd.h 参数定义: int lockf(files,function,size); int files,function; long size; 其中:files是文件描述符;function是锁定和解锁;1表示锁定;0表示解锁;Size是锁定或解锁的字节数,若用0,表示从文件的当前位置到文件尾。 3.read 功能:从描述符为filedes的文件读信息。 用法: #include unistd.h ssize_t read(int filedes, void *buff, size_t nbytes) ; 返回:读到的字节数,若已到文件尾为0,若出错为-1。 在UNIX/Linux 可重定义为: int read(int fd, char *buff, unsigned nbytes) ; 4.write 功能:向已打开的文件写数据。 用法: #include unistd.h ssize_t write(int filedes, const void * buff, size_t nbytes) ; 返回值:若成功为已写入的字

您可能关注的文档

文档评论(0)

三哥 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档