linux下IPC通信

# 管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。
# 有名管道 (named pipe) : 有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。
# 信号量( semophore ) : 信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制,防止某进程正在访问共享资源时,其他进程也访问该资源。因此,主要作为进程间以及同一进程内不同线程之间的同步手段。
# 消息队列( message queue ) : 消息队列是由消息的链表,存放在内核中并由消息队列标识符标识。消息队列克服了信号传递信息少、管道只能承载无格式字节流以及缓冲区大小受限等缺点。
# 信号 ( sinal ) : 信号是一种比较复杂的通信方式,用于通知接收进程某个事件已经发生。
# 共享内存( shared memory ) :共享内存就是映射一段能被其他进程所访问的内存,这段共享内存由一个进程创建,但多个进程都可以访问。共享内存是最快的 IPC 方式,它是针对其他进程间通信方式运行效率低而专门设计的。它往往与其他通信机制,如信号两,配合使用,来实现进程间的同步和通信。
# 套接字( socket ) : 套解口也是一种进程间通信机制,与其他通信机制不同的是,它可用于不同及其间的进程通信。
时间: 2024-10-14 18:15:31

linux下IPC通信的相关文章

20155202 张旭 Linux下IPC机制

20155202张旭 Linux下IPC机制 IPC机制定义 在linux下的多个进程间的通信机制叫做IPC(Inter-Process Communication),它是多个进程之间相互沟通的一种方法.在linux下有多种进程间通信的方法:半双工管道.命名管道.消息队列.信号.信号量.共享内存.内存映射文件,套接字等等.使用这些机制可以为linux下的网络服务器开发提供灵活而又坚固的框架. 共享内存 共享内存是在多个进程之间共享内存区域的一种进程间的通信方式,由IPC为进程创建的一个特殊地址范

linux下串口通信与管理

linux下的串口与windows有一些区别,下面将介绍一下linux下串口通信管理 查看是否支持USB串口: #lsmod | grep usbserial 如果没有信息:sudo apt-get install setserial 插上USB转串口,在终端输入命令 #dmesg | grep ttyUSB0 如果出现连接成功信息,则说明系统已经识别该设备 一.找到自己的串口设备 查找自己的开发板与电脑的连接的COM口方法 Windows:设备管理器 linux: (1)dmesg #查看带有

Linux下串口通信工具minicom

minicom是linux下的串口通信工具,类似于Windows下的超级终端. 一般在yum源中可以直接安装 minicom -s可以设置minicom的速率,流控之类. 如上图:A是你的设备名.如在台式机上用console接串口则一般为/dev/ttyS0, 如果笔记本上使用USB-串口转换则为/dev/ttyUSB0之类. Linux下一般均默认安装了USB-串口的驱动 将配置保存为默认(Save setup as dfl),下次输入minicom则可以启动 注意:非正常关闭minicom,

Linux下进程通信之管道

每个进程各自有不同的用户地址空间,任何一个进程的全局变量在另一个进程中都看不到,所以进程之间要交换数据必须通过内核,在内核中开辟一块缓冲区,进程1把数据从用户空间拷到内核缓冲区,进程2再从内核缓冲区把数据读走,内核提供的这种机制称为进程间通信(IPC,InterProcess Communication).如下图所示. 目前进程通信的方式有: 管道 FIFO 消息队列 信号量 共享内存 套接字 管道 管道概念 管道是Linux支持的最初Unix IPC形式之一,具有以下特点: 管道是半双工的,数

Linux下的通信时延测试程序

今天段老师在网络软件设计课上布置了一个题目. 要求是windows环境,现在在linux环境下实现. 运行C/S模式的2个程序,使用UDP协议,发送10次,计算平均时延. 服务器程序如下: #include <sys/socket.h> // for functions for socket #include <netinet/in.h> // for struct sockaddr_in #include <stdlib.h> #include <memory.

Linux 下管道通信

管道和消息队列本质都差不多,都是linux内核的缓冲区. 管道限制管道是半双工的,数据只能向一个方向流动:需要双方通信时,需要建立起两个管道只能用于具有共同祖先的进程(具有亲缘关系的进程)之间进行通信:通常,一个管道由一个进程创建,然后该进程调用fork,此后父.子进程之间就可应用该管道.管道用的是越来越少了 管道读写规 当没有数据可读时 read调用阻塞,即进程暂停执行,一直等到有数据来到为止. 如果设置了不等待,read调用返回-1,errno值为EAGAIN. 当管道满的时候 write调

Linux下串口通信工具minicom的用法

一.查看串口设备 例如,将USB转串口线插入交换机Console口后,执行命令:$ll /dev/ttyUSB* 二.连接串口设备 $sudo minicom -D /dev/ttyUSB0 三.设置串口参数 在minicom中按CTRL+A,O,配置串口速率9600,8位,无奇偶校验,保存 四.查看minicom配置文件 [email protected]:~$ cat .minirc# Machine-generated file - use setup menu in minicom to

linux 下4G通信相关

http://wiki.friendlyarm.com/wiki/index.php/How_to_use_4G_Module_on_NanoPC-T4/zh http://download.icxbk.com/201807/765370b9d4f571fffcbc9cc1ab6a336a.pdf 原文地址:https://www.cnblogs.com/cute/p/11270248.html

Linux下进程间Socket通信调试debug方法

在一个复杂的软件系统中,往往需要有各个组件之间的数据传递,在组件间数据传递过程中,又会不可避免的出现一些小问题,这时候我们就需要来进行debug了,由于最近的一个系统使用到了collectd和rrdcached来收集数据和画图,它们之间采用了Unix socket通信,因此小小的学习了一下相关知识. 首先我们来回忆下Linux下进程通信有哪些方法: 管道(Pipe)及有名管道(FIFO)\UNIX BSD 信号(Signal) \UNIX BSD 报文消息队列(Message)\UNIX sys