20240203进程间通信的7种方式

内核提供的原始通信方式有三种:

①无名管道:没有名字的管道,是一个特殊的文件,并且存储在内存上,不在文件系统中展示,无名管道打开后,会返回两个文件描述符,一个是读端,一个是写端,无名管道只能适用于亲缘进程间的通信,需要在fork之前将管道文件打开,创建子进程后,子进程继承一份管道的文件描述符才能使用该管道,可以完成自己跟自己的通信

②有名管道:有名字的管道文件,会在文件系统中创建一个管道文件,仅仅用来进程间通信,不用于存储数据,可以用于亲缘间通信,也可以用于非亲缘间进程通信

③信号:软件模拟底层硬件的中断操作,信号是软件实现的,中断是硬件实现的,用户可以给某个进程发送信号,一个进程也能给另一个进程发送信号,内核也可以给某个进程发送信号,当一个进程收到信号后的操作有三种,默认,捕获,忽略

SysⅤ提供了三种通信方式:

①消息队列:就是 存放消息的链表,是一系列保存消息的列表,用户进程可以向消息队列中添加消息,也可以向消息队列中读取消息

②共享内存(效率高):允许两个或多个进程共享一个存储区,这一个存储区,可以被两个或多个进程映射到自身的内存空间,一个进程往共享内存中写入信息,其他进程可以读取

③信号量(信号灯集):用于实现同步与互斥,如果要实现进程间数据通信,要和共享内存结合

套接字通信:socket:有两种通信方式,tcp和udp

你可能感兴趣的:(服务器,linux,网络)