`

Chapter 15__进程间通信

    博客分类:
  • APUE
阅读更多
- - 纯属抄书。。。

IPC(InterProcess Communication)

1)管道(pipe),大多是半双工,进程族里应用
2)FIFO命名管道(mkfifo),不同进程,是一种文件类型。
3)消息队列(queue)
4)信号量(semaphore),与123不同,是一个计数器,用于多进程共享数据对象的访问。
5)共享内存(shared memory)
6)套接字(socket)



管道
http://www.easycpp.org/content/science_doc/%E8%BF%9B%E7%A8%8B%E9%97%B4%E9%80%9A%E4%BF%A1%EF%BC%9A%E7%AE%A1%E9%81%93_pipe_popen_%E5%8D%8F%E5%90%8C%E8%BF%9B%E7%A8%8B%E8%AF%A6%E8%A7%A3


#include <unistd.h>     // pipe
int pipe(int filedes[2]);
FILE *popen(const char *command, const char *mode);
int pclose(FILE *stream);

#include <sys/stat.h>    //  FIFO
int mkfifo(const char *pathname, mode_t mode);

#include <sys/msg.h>     //  queue
int msgget(key_t key, int flag);
int msgctl(int msqid, int cmd, struct msqid_ds *buf);
int msgsnd(int msqid, const void *ptr, size_t nbytes, int flag);
size_t msgrcv(int msqid, void *ptr, size_t nbytes, long type, int flag);

#include <sys/sem.h>    //  semaphore
int semget(key_t key, int nsems, int flag);
int semctl(int semid, int semnum, int cmd, .../* union semun arg */);
int semop(int semid, struct sembuf semoparray[], size_t nops);

#include <sys/shm.h>
int shmget(key_t key, size_t size, int flag);
int shmctl(int shmid, int cmd, struct shmid_ds *buf);
void *shmat(int shmid, const void *addr, int flag);
int shmdt(void *addr);

分享到:
评论

相关推荐

    chapter3_进程间通信(2019_Ad_OS)1

    《进程间通信》章节主要探讨了操作系统中进程如何相互协作和交换信息。这一章包括以下几个关键知识点: 1. **进程的概念**: - 进程是计算机中正在执行的一个程序的实例,拥有自己的内存空间和资源,是操作系统...

    chapter4_linux_

    这一章可能讲解了如何创建(fork)、退出(exit)和等待(waitpid)进程,以及进程间通信(IPC)的方法,如管道(pipe)、信号(signal)和共享内存。 2. **内存管理**:Linux内核提供了动态内存分配的接口,如...

    chapter10_linux_

    - Linux中的信号是进程间通信的一种方式,用于通知进程发生了一些事件,如硬件异常、用户中断等。 - 我们会学习如何使用`signal()`, `sigaction()`等函数注册信号处理程序,并理解它们的区别。 - 了解信号掩码...

    UNIX网络编程卷2进程间通信--部分源代码

    《UNIX网络编程卷2:进程间通信》是网络编程领域中的经典著作,深入探讨了在UNIX操作系统环境下如何实现进程间的高效通信。这部分源代码包含了书中多个章节的关键示例,可以帮助读者更好地理解和应用书中的理论知识...

    信息通信网络概论课件:Chapter_2__Application_and_Layered_Architectures.ppt

    在通信任务中,我们需要处理进程间的通信、多跳路由和转发以及物理接口上的帧交换(Tasks for communication)。网络架构通过一组协议定义了每一层的功能,这些协议提供了灵活性,允许在不改变底层协议的情况下修改...

    Chapter5_操作系统支持(2019AD_OS)1

    这些机制包括消息传递、管道、套接字以及远程过程调用(RPC)等,为进程间的数据交换提供了途径。 虚拟化技术允许一个硬件平台模拟多个独立的硬件环境,这对于资源调度和隔离非常有用,也便于测试和部署应用程序。...

    Chapter进程通信(共86张PPT).pptx

    这一主题涵盖了在同一物理节点上和跨不同物理节点的进程间通信。在本篇中,我们将深入探讨几种主要的进程通信方式,包括信号、管道、命名管道、消息队列、信号灯和共享内存。 首先,让我们重点关注同一物理节点上的...

    VC++ 进程通信

    本文将深入探讨VC++中常用的五种进程间通信(IPC,Inter-Process Communication)方式:剪贴板、匿名管道、命名管道、邮槽和共享内存,并对每种通信方式的特点和使用场景进行详尽的解释。 ### 1. 剪贴板 剪贴板是...

    acm.rar_ACM

    - 操作系统基础:简述操作系统如何管理和调度进程,以及与汇编语言的接口。 学习这组课件,不仅能够掌握8086汇编语言的基本概念,还能提升对计算机底层运作的理解。通过实例解析和实践练习,将有助于提升编程能力...

    《UNIX环境高级编程》随书代码与课后习题

    Chapter 15: 进程间通信 Chapter 16: 网络 IPC: 套接字 Chapter 17: 高 【资源声明】:本资源作为“参考资料”而不是“定制需求”,代码只能作为参考,不能完全复制照搬。需要有一定的基础能够看懂代码,能够自行...

    Exploration_Network_Chapter_3 应用层功能及协议.ppt

    服务器通常是指为多个客户端提供信息共享的计算机,运行着服务或称为守护进程的后台程序。 点对点(P2P)网络和应用程序则打破了传统的客户端-服务器模式。在P2P网络中,每个参与的设备既可以作为服务器提供资源,...

    计算机网络英文课件:Chapter_3 Transport Layer.ppt

    总结,传输层是网络通信的核心,它确保了不同主机间应用层的高效、可靠通信。理解其工作原理和协议对于设计和优化网络系统至关重要。在实际应用中,开发者可以根据需求选择UDP的高效性或TCP的可靠性。

    Linux程序设计第四版_源代码ch15

    源代码ch15部分主要涉及第十五章的内容,这一章通常涵盖了一些高级主题,例如多线程编程、信号处理、异步I/O以及进程间通信等。 1. **多线程编程**: 在Linux中,多线程编程通过pthread库实现,该库提供了创建、...

    操作系统课件:Chapter-02进程管理

    4. **经典IPC问题**:进程间通信(IPC)是解决进程同步的关键。经典的IPC问题包括生产者消费者问题、读者写者问题、哲学家就餐问题等,这些问题通过同步原语得以解决。 5. **管程**:管程是一种高级的进程同步机制...

    AIDL示例代码

    **Android Interface Definition Language (AIDL) 是Android系统中用于实现进程间通信(Inter-Process Communication, IPC)的一种机制。AIDL允许服务端和服务客户端在不同的进程中进行数据交换,使得它们可以像在同...

    操作系统概念英文课件:Chapter 03-processes[14].pptx

    本章(Chapter 03 - Processes)主要关注操作系统中的进程管理,包括进程的概念、调度、操作、进程间通信(IPC)以及客户端-服务器系统中的通信。 首先,我们需要理解什么是进程。一个进程可以被定义为正在执行的...

    Window 系统编程ppt

    9. **Chapter12_InProcess.ppt** - 可能会探讨进程内的通信机制,如共享内存、管道和命名管道,这些都是进程间通信(IPC)的基础。 10. **Chapter14_AsynchIO.ppt** - 最后,这部分可能详细讲解了异步I/O,包括完成...

    SCJP Sun® Certified Programmer for Java™ 6 Study Guide chapter 15

    - **进程间通信:** 在不同的Java虚拟机(JVM)之间传递对象。 **实现机制:** Java提供了`java.io.Serializable`接口来支持对象的序列化。实现了这个接口的对象可以在Java序列化机制的帮助下被序列化。此外,还...

    操作系统英文教学课件:Chapter 3 Processes.ppt

    同时,多个进程可能需要合作完成一项任务,这就涉及到了进程间通信(Interprocess Communication, IPC)。进程间通信允许进程之间交换信息,以实现同步和协作。常见的进程间通信机制有管道、消息队列、共享内存、...

    操作系统概念课件:Chapter 3 Processes.pdf

    3.10 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7th Edition, Nov 15, 2006 合作进程与进程间通信 在多进程环境中,往往需要多个进程协同工作来完成一项任务。这就涉及到进程...

Global site tag (gtag.js) - Google Analytics