【C++/嵌入式笔试面试八股】二、12.进程通信 | 进程调度 | 进程与线程

进程通信

16.LINUX进程间通信方式有哪些?有什么优缺点?❤️
  • 管道:用来实现进程间相互发送非常短小的、频率很高的消息,通常适用于两个进程间的通信。

    • 无名管道(内存文件):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程之间使用。进程的亲缘关系通常是指父子进程关系。半双工速度慢,利用内核中的一串缓存,容量有限。只有具有亲缘关系的进程间通讯。面向字节流。
    • 有名管道(FIFO文件,借助文件系统):有名管道也是半双工的通信方式,但是允许在没有亲缘关系的进程之间使用,管道是先进先出的通信方式,克服了管道没有名字的限制。但速度慢。
    • 流管道(s_pipe): 去除了第一种限制,可以双向传输(全双工),或者用两个管道实现全双工也行。
  • 共享内存:共享内存就是映射一段能被其他进程所访问的内存,这段共享内存由一个进程创建,但多个进程都可以访问。共享内存是最快的IPC方式,它是针对其他进程间通信方式运行效率低而专门设计的。但需要进程自行解决进程同步和互斥问题,往往与信号量,配合使用来实现进程间的同步和通信。共享内存用来实现进程

你可能感兴趣的:(C++/嵌入式笔试面试集锦,#,计算机基础,面试,c++,java)