http://blog.csdn.net/hzhzh007/article/details/6532988“ 信号量用在多线程多任务同步的,一个线程完成了某一个动作就通过信号量告诉别的线程,别的线程再进行某些动作(大家都在sem_wait的时候,就阻塞在 那里)。而互斥锁是用在多线程多任务互斥的,一...
分类:
其他好文 时间:
2014-06-27 00:28:23
阅读次数:
355
Nucleus Plus内核(Kernel)的主要目的是管理实时任务的竞争运行(共享CPU),为应用提供各种便利,快速响应外部事件。Nucleus Plus的系统结构如图1所示,可以看出线程控制是整个内核的核心,通过邮箱、队列、管道来实现任务之间的通信,通过信号量、事件组和信号实现任务间的同步。本文描述了Nucleus PLUS的任务调度算法。...
分类:
其他好文 时间:
2014-06-26 13:43:24
阅读次数:
256
生产者:不停地往队列中放数据
消费者:不停地从队列中拿数据
两者通过两个信号量同步
当生产者不再生产数据时,消费者正好挂在一个信号量上,处于睡眠状态,这时候pthread_join也会一直挂着的。该怎样使得消费者正常退出呢?
我的做法是让生产者在往队列中放一个【结束数据】,也就是一个标识,消费者拿到数据后,如果这个数据是结束标识则自杀退出。...
分类:
编程语言 时间:
2014-06-25 00:07:17
阅读次数:
225
三种IPC被称作XSI IPC,分别是:
消息队列信号量共享存储器
下面分别介绍三种IPC的用法。
1、消息队列
消息队列是消息的链接表,具有如下函数接口:
msgget:创建一个新队列或打开一个现存的队列。msgsnd:将消息添加到队列尾端。msgrcv:从队列中取消息。
我们可以自行定义一个表示消息的结构体,它由类型字段和实际数据组成:
struct ...
分类:
系统相关 时间:
2014-06-24 20:45:32
阅读次数:
319
信号量semaphore
是一个变量,控制着对公共资源或者临界区的访问。信号量维护着一个计数器,指定可同时访问资源或者进入临界区的线程数。
每次有一个线程获得信号量时,计数器-1。若计数器为0,其他线程就停止访问信号量,直到另一个线程释放信号量。...
分类:
编程语言 时间:
2014-06-24 17:49:06
阅读次数:
256
在开发过程中,有三个独立运行的程序模块,三个模块都对sqlite数据库进行读写操作。sqlite在linux共享性较差,所以需要加入互斥信号量解决三个模块访问数据库该问题。另外,在加入信号量后,信号量sem初始化为1,如果三个模块任意一个在读或写数据库时ctrl+c掉(调试过程需要),有时会造成信号量sem保持sem_wait后的值,也就是为0;这就造成了死锁。...
分类:
系统相关 时间:
2014-06-21 20:22:06
阅读次数:
656
描述了一个Nucleus PLUS系统应用示例,包括application_initialization和六个任务,任务在application_initialization中创建。这个示例系统体现了Nucleus PLUS的任务调度和执行过程、任务间通信和同步(信号量、事件组)。...
分类:
其他好文 时间:
2014-06-21 20:19:30
阅读次数:
320
下面先对condition_impl进行简要分析。condition_impl在其构造函数中会创建两个Semaphore(信号量):m_gate、m_queue,及一个Mutex(互斥体,跟boost::mutex类似,但boost::mutex是基于CriticalSection的):m_mute...
分类:
其他好文 时间:
2014-06-20 20:11:44
阅读次数:
211
实时操作系统Nucleus Plus提供了6种进程间通信方式,分别为:邮箱(mailboxes)、消息队列(queues)和管道(pipes)、信号量(semaphores)、事件集(event groups)和消息(signals)。前三者用于进程间通信,后三者用于进程同步,本文总结了Nucleus Plus进程间通信方式。...
分类:
其他好文 时间:
2014-06-17 19:19:14
阅读次数:
268
Linux的通信方式主要有分类有下面几种:
-匿名管道和FIFO有名管道
-消息队列,信号量和共享存储
-套接字
.对于套接字的进程通信,我就留在套接字的文章中再写了.
一.管道
管道是最古老的进程通信机制了.提供进程间的单向通信.
1.创建管道
int pipe(int fdes[2]);
实际上管道通过参数返回读和写的两个文件描述符.相当于是打开了两个文件吧.但是这个文...
分类:
系统相关 时间:
2014-06-17 19:07:02
阅读次数:
339