进程间通信

进程间通信:管道  信号量 消息队列  共享内存  套接字

 

管道

 

有名管道

      mkfifo  mkfifo()

无名管道

    pipe()

区别:有名可以在任意两个进程间通信,无名可以在父子进程间进行通信

管道通信方式:半双工

通信方式包括:单工 半双工 全双工

写入数据:写在内存中

 

管道为空 读read阻塞

管道未满  写write阻塞

关闭读端:写操作引发异常,收到SIGPIPE信号

关闭写端 :读n=read() ,n为0

 

信号量

特殊的变量,原子加一(v 释放资源),原子减一(p 获取资源)

什么是pv操作

二值信号量  取值  0,1;

计数信号量  值可以大于1

 

临界资源:同一时刻只允许一个进程访问的资源

临界区: 访问临界资源的代码段

有信号量为什么还要互斥锁 (信号量与互斥锁有什么区别)

 

 

共享内存

进程间通信_第1张图片

 

《linux内核csdn》第六章

 

 

你可能感兴趣的:(linux)