随笔分类 -  Unix 进程间通信

多个生产者——多个消费者模型(互斥量条件变量实现)
摘要:1. 介绍生产者消费者问题属于有界缓冲区问题。我们现在讲述多个生产者向一个缓冲区中存入数据,多个生产者从缓冲区中取数据。共享缓冲区作为一个环绕缓冲区,存数据到头时再从头开始。2. 实现我们使用一个互斥量保护生产者向缓冲区中存入数据。由于有多个生产者,因此需要记住现在向缓冲区中存入的位置。使用一个互斥... 阅读全文

posted @ 2014-08-08 16:40 hancmhi 阅读(7218) 评论(0) 推荐(0)

进程间通信(三)——Posix共享内存区
摘要:1.概述共享内存区是IPC中最快的,当内存区映射到共享它的进程的地址空间,进程间数据的传递就不再涉及内核。但是这需要某种形式的同步,最常用的是信号量。不再涉及内核:进程不再通过执行任何进入内核的系统调用来彼此传递数据。内核必须建立允许各个进程共享该内存区的内存映射关系,然后一值管理该内存区。管道,F... 阅读全文

posted @ 2014-08-01 20:52 hancmhi 阅读(721) 评论(1) 推荐(0)

进程间同步(1)——条件变量和互斥量
摘要:1. 概述条件变量和互斥量是最基本的同步形式,总是用于同步同一个进程的各个线程间同步。当把条件变量或互斥量放在共享内存区时,可用于进程间同步。同样的情况还有读写锁,它们都是随进程的持续性。2.互斥锁互斥锁指代相互排斥,用于保护临界区。多个线程和多个进程分享的共享数据。静态初始化:static pth... 阅读全文

posted @ 2014-08-01 20:52 hancmhi 阅读(1027) 评论(0) 推荐(0)

进程间通信(二)——Posix消息队列
摘要:1.概述消息队列可认为是消息链表。有足够写权限的线程可以往队列中放置消息,有足够读权限的进程可以从队列中取走消息。每个消息是一个记录,由发送着赋予一个优先级。在向队列中写入消息时,不需要某个进程在该队列上等待消息到达。这与管道不同,管道必须现有读再有写。消息队列具有随内核的持续性,与管道不同。进程结... 阅读全文

posted @ 2014-08-01 20:51 hancmhi 阅读(663) 评论(0) 推荐(0)

进程间通信(一)——管道和FIFO
摘要:1. 概述管道没有名字,适用于有亲缘关系的进程间。FIFO指first in first out,有一个路径名与之关联,从而允许无亲缘关系的进程间使用。亦称:命名管道named pipe。两者都是单向数据流(半双工管道),具有随进程的持续性,数据都是先进先出,在进程间通信不需要某种形式的同步。2.管... 阅读全文

posted @ 2014-08-01 20:50 hancmhi 阅读(440) 评论(0) 推荐(0)