嵌入式进程通信.docVIP

  • 0
  • 0
  • 约5.42千字
  • 约 9页
  • 2018-07-04 发布于河南
  • 举报
嵌入式进程通信

重庆工商大学《嵌入式系统设计》课程设计报告设计题目 LINUX进程通信设计 学生姓名 专业班级 08计算机 指导老师 设计时间 2010.12.14至 2010.12.28 目录 TOC \o 1-3 \h \z \u HYPERLINK \l _Toc281487137 1.设计题目分析 PAGEREF _Toc281487137 \h 3 HYPERLINK \l _Toc281487138 分析: PAGEREF _Toc281487138 \h 3 HYPERLINK \l _Toc281487139 2.主要术语解析 PAGEREF _Toc281487139 \h 3 HYPERLINK \l _Toc281487140 1.管道 PAGEREF _Toc281487140 \h 3 HYPERLINK \l _Toc281487141 2. 进程 PAGEREF _Toc281487141 \h 4 HYPERLINK \l _Toc281487142 3. 管道的创建 pipe函数 PAGEREF _Toc281487142 \h 4 HYPERLINK \l _Toc281487143 4.写管道w rite 函数 PAGEREF _Toc281487143 \h 4 HYPERLINK \l _Toc281487144 5.读管道read 函数 PAGEREF _Toc281487144 \h 5 HYPERLINK \l _Toc281487145 6.关闭管道close 函数 PAGEREF _Toc281487145 \h 5 HYPERLINK \l _Toc281487146 7.延时函数sleep() PAGEREF _Toc281487146 \h 5 HYPERLINK \l _Toc281487147 3.设计流程 PAGEREF _Toc281487147 \h 5 HYPERLINK \l _Toc281487148 1.创建管道 PAGEREF _Toc281487148 \h 5 HYPERLINK \l _Toc281487149 2.进程通信 PAGEREF _Toc281487149 \h 6 HYPERLINK \l _Toc281487150 4.设计体会 PAGEREF _Toc281487150 \h 8 HYPERLINK \l _Toc281487151 附C程序源代码: PAGEREF _Toc281487151 \h 81.设计题目分析题目:LINUX进程通信设计 编程实现LINUX操作系统对进程进行控制,利用管道或信号机制实现进程间通信,完成两程序间数据传递,并完成课程设计报告中。分析:本实验主要研究两个不同进程之间(父,子进程)的通信,因此采用简单易设计的无名管道。无名管道主要用于不同进程间通信,它是单向的、先进先出的、无结构的、固定大小的字节流,它把一个进程的标准输出和另一个进程的标准输入连接在一起。写进程在管道的尾端写入数据,读进程在管道的首端读出数据。数据读出后将从管道中移走,其它读进程都不能再读到这些数据。管道提供了简单的流控制机制。在进程之间进行通信的最简单方法是通过文件,其中一个进程写文件, 而另一个进程读文件。这种方法简单易行, 但容易造成内存空间和读文件时间的浪费,应用管道可克服这些缺点。管道实际上是在进程间开辟一个固定大小的缓冲区, 需要发布信息的进程运行写操作, 需要接收信息的进程运行读操作。管道是单向的字节流, 它把一个进程的标准输出和另一个进程的标准输人连接在一起。2.主要术语解析1.管道  管道是进程间通信中最古老的方式,它包括无名管道和有名管道两种,前者可用于具有亲缘关系进程间的通信,即可用于父进程和子进程间的通信,后者则克服了管道没有名字的限制,因此,除具有前者所具有的功能外,它还允许无亲缘关系进程间的通信,即可用于运行于同一台机器上的任意两个进程间的通信。  无名管道由pipe()函数创建:  #include unistd.h  int pipe(int fd[2]);  参数fd[2]返回两个文件描述符:fd[0]为读而打开,fd[1]为写而打开。fd[0]的输出是fd[1]的输入。  在Linux系统下,有名管道可由两种方式创建:命令行方式mknod系统调用和函数mkfifo。下面的两种途径都在当前目录下生成了一个名为myfifo的有名管道:  方式一:mkfifo(myfifo,rw);  方式二:mknod myfifo p  生成

文档评论(0)

1亿VIP精品文档

相关文档