
linux进程间通信
ShaYQ
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
linux下共享内存小结
1.共享内存的概念: 一个进程不能简单的将自己的内存空间地址传递给其他进程使用,因为linux操作系统的内存保护机制或者内存映射机制的限制。 在一个进程内,指向一块内存的指针实际上是虚拟地址,而不是真正的物理内存地址,这个地址仅仅在当前进程内才是有效使用的。 如果通过某种方式,实现多个进程访问一块物理内存,那么进程之间的数据交换就可以通过读写内存来进行,这样的通信方式具有更高的效率。 所以原创 2013-09-18 08:47:45 · 1174 阅读 · 0 评论 -
linux下的信号量(semaphore)
1.信号量:(Semaphore) 当有多个进程试图访问同一个文件并要更新这个文件,文件中的数据就会面临被破坏的危险。 不同的进程要求向文件中写入数据,问题在于对文件进行更新的那部分代码,这部分真正执行文件更新的代码需要排他式的执行,他们被称为临界区域,这段代码被称为临界代码。 信号量的出现就是你为了解决访问一个共享资源所引起的的问题。 信号量是一个特殊的变原创 2013-09-16 15:14:07 · 1103 阅读 · 0 评论 -
linux下消息队列(Message queue)
1.消息队列 消息队列(英语:Message queue)是一种进程间通信或同一进程的不同线程间的通信方式。 就是一个消息的链表,可以把一条消息看做一个记录,用户可以从中读取读取消息或者向其中添加消息。 消息队列提供了一种从一个进程向另一个进程发送一个数据块的方法。消息队列存在于内核中,由“队列ID”来进行标识。 消息队列的实现包括创建,添加信息,读取信息和控制信息队列。原创 2013-09-18 16:47:12 · 6373 阅读 · 0 评论 -
linux下的信号机制(signal)
1。linux的信号机制 信号时内核提供的一种异步消息机制,用于内核对进程发送异步通知事件,可以理解为进程执行的流程中的一个软中断。 信号可以直接进行用户空间进程和内核进程之间的交互,内核进程也可以通过它来通知用户空间进程发送了哪些事件。 一个完整的信号使用由: (1)内核信号产生 (2)用户进程信号注册 (3)信号在用户进程进程中注销 (4)执行信号处理函数 常见的信号:原创 2013-09-18 10:46:00 · 825 阅读 · 0 评论 -
生产者/消费者模型
1. 多线程并发应用的经典模型: 生产者/消费者模型: 系统中,产生消息的是生产者,处理消息的是消费者,消费者和生产者通过一个缓冲区进行消息传递。生产者产生消息后交到缓冲区,然后通知消费者可以从中取出消息进行处理。消费者处理完这些信息,通知消费者可以继续提供消息。 要实现这个模型,关键是消费者和生产者两个线程的同步。 只有缓冲区有消息时,消费者才能提取消息,只有消息已经被处理,生产者才能产原创 2013-09-18 19:47:36 · 581 阅读 · 0 评论 -
进程的等待(wait和waitpid)
1.进程的等待 wait函数或waitpid进程可能发生如下情况; (1)如果所有的子进程孩子运行,则阻塞(Block) (2)如果一个子进程已经终止,正等待父进程获取其终止状态,则取得孩子进程的终止状态返回 (3)如果她没有任何子进程,则立即出错返回 函数的原型: #include pid_t wait(int *status); 说明:wait函数会暂时停止目前进原创 2013-09-15 16:26:58 · 1165 阅读 · 0 评论 -
linux下的多进程学习要点
1.什么是程序: 程序是一个预定义的指令序列,用来完成一个特定的任务。 当程序被执行时,操作系统将可执行文件复制到内存中,就是程序的映像。 2.什么是进程: 进程是一个程序正在执行的实例,每个进程都有自己的地址空间和执行状态。 进程标识(PID)是用来区分各个不同的进程的标志。 3.“并发的概念”: 对于只有一个CPU的系统来讲,在一个时刻只能有一个进程在执原创 2013-09-15 14:39:58 · 892 阅读 · 0 评论