摘要: 当任务需要同步时可以使用信号量。A任务给B任务发送消息后B任务才能继续运行。如果需要A任务给任务B传递数据的时候就可以采用消息队列。但对于繁杂任务的同步,比如多个时间发生以后执行一个事件,或者是C任务需要任务A和任务B都完成对应的处理任务后才能执行C任务的处理工作,这是用信号量就是等待多个内核对象, 阅读全文
posted @ 2017-11-28 19:19 Little_Village 阅读(448) 评论(0) 推荐(0) 编辑
摘要: 消息队列 任务之间仅仅靠信号量进行“沟通”是不够的,信号量可以标志事件的发生,却无法传递更多的数据,在需要任务间的数据信息传递时就绪要用到消息队列,传统我们一般在前后太系统中都是通过全局变量来传递,但是在复杂的操作系统里这样的用法是很不方便管理的且堆内存的开销也是很大的对于一个轻量级的实时操作系统来 阅读全文
posted @ 2017-11-28 19:16 Little_Village 阅读(601) 评论(0) 推荐(0) 编辑
摘要: 互斥信号量 操作系统中利用信号量解决进程间的同步和互斥(互斥信号量)的问题,在多道程序环境下,操作系统就是遮掩实现进程之间的同步和互斥。但是在使用的过程中厉害的前辈还是发现了这一优秀机制的缺陷,它会导致优先级翻转从而出现系统部分功能瘫痪严重则会导致系统崩溃,互斥信号量的出现是为了解决优先级反转的问题 阅读全文
posted @ 2017-11-28 14:00 Little_Village 阅读(597) 评论(0) 推荐(0) 编辑
摘要: 多值信号量 操作系统中利用信号量解决进程间的同步和互斥(互斥信号量)的问题,在多道程序环境下,操作系统如何实现进程之间的同步和互斥显得极为重要。比如对同一部分资源的访问是要互斥,不能在另一个进程A在访问的时候被其他的进程再访问这样两个进程相互影响就无法保证正常的访问操作。另一方面是任务间的同步,比如 阅读全文
posted @ 2017-11-28 13:32 Little_Village 阅读(884) 评论(0) 推荐(1) 编辑
摘要: 软件定时器是在硬件定时器的基础上开发的,通过将一个硬件定时器进行分频及管理就可以的到多个软件定时器。他和时间管理共同组成了系统的时间管理大部分的内容。系统一开始的系统初始化函数OSInit函数内调用了OS_TmrInit()这个函数并在这个函数内创建了一个定时器任务(OS_TmrTask),在这个任 阅读全文
posted @ 2017-11-28 13:09 Little_Village 阅读(573) 评论(0) 推荐(0) 编辑