假期day2,进程间通信。(2024/2/3)

一:无名管道

1.没有名字的管道文件,数据交流的文件存储在内存中,不在文件系统中显示
2.创建管道后,会返回读端和写端的文件描述符,当两个端被关闭后,管道文件消失
3.无名管道只适用于亲缘进程的通信,需要在fork之前将管道打开,这样子进程也能继承管道描述符

二:有名管道

1.有名字的管道文件,会在文件系统中创建,类型p
2.该管道文件仅用于通信,不用于存储数据
3既可以用于亲缘进程,也适用于非亲缘进程通信

三:信号

1.使用软件模拟底层硬件的中断操作
2.信号是linux内核实现的
3.可以给进程发送信号,进程间可以发送信号,内核可以给进程发信号
4.进程接收信号的三个操作:默认,捕获,忽略

四:消息队列

使用key密钥在内核空间创建打开消息队列,信息包括数据类型和数据正文,通过不同的数据类型区分信息,进程间通过内核空间的消息队列进行数据共享

五:共享内存

共享内存的数据一直存在,通信效率高,操作数据时不需要进行用户空间和内核空间的切换。
1.在内核空间创建共享内存
2.将共享内存映射到用户空间,并返回地址
3.操作数据

六:信号灯集

控制多个进程间的同步
通过密钥key在内核空间创建信号灯集,每个灯都控制一个进程,灯维护了一个value值,值为零时阻塞,灯的编号从零开始

七:socket通信

Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口

你可能感兴趣的:(物联网)