06 2020 档案
摘要:一、事件集的引入 以某人坐公交车为例,坐公交车难免有一下三种情况的发生: 1、 张三需要去商场买蔬菜,但是只有一班公交车到商场,张三需要等待公交车的到来。 2、 张三需要到高铁站出行,有三班公交车到高铁站,张三等到其中的一班即可出发。 3、 张三约李四一起到公园游玩,张三需要等到李四到达了公交站牌后
阅读全文
摘要:一、互斥量的引入 互斥量类似于ATM取款机:当有客户进入的时候,将取款机门锁住,其他客户在外面等候。当里面的客户出来时,将门打开,下一个客户才可以进入。 由此,互斥量与信号量的工作机制就比较相似,其实,互斥量是特殊的二进制信号量。信号量用于线程的同步,好比交通灯,线程只有在获得许可的时候才可以运行,
阅读全文
摘要:一、信号量的引入 以车辆进出停车场为例。例如停车场有五个车位,起初五个车位都为空,此时来了七辆车,门卫允许其中五辆进入,然后放下车拦,剩下的车则必须在入口处等待,此后来的车也只能在入口处等待。这时,有一辆车离开停车场,门卫得知后,打开车拦,放入外面的一辆进去,如果又离开两辆,则又可以放入两辆,如此往
阅读全文
摘要:一、临界区的引入 在嵌入式系统中,通过传感器采集数据进行保存,其他线程间可能同时访问它,但是如果数据还未完成写入,访问到的数据明显会出错,通过对临界区保存,则可以避免此类问题的发生。 1. 基本概念 临界资源:一次仅允许一个(或者指定数量)线程访问的共享资源,可以是一个具体的硬件设备(如打印机、传真
阅读全文
摘要:一、空闲线程 空闲线程是系统线程中一个比较特殊的线程,它具有最低的优先级,当系统中无其他线程可运行时,调度器将调度到空闲线程。空闲线程通常是一个死循环,永远不被挂起,例如rt_thread_delay() , rt_sem_take() 等可能会导致线程挂起的函数都不能使用。RT-Thread实时操
阅读全文
摘要:RT-Thread系统中线程是调度的最小单位,后面的内核讲解都是以线程为单位展开的,线程的本质就是我们平时跑的裸机函数,但是它添加了实时性的元素,可以函数级的抢占,但不存在中断嵌套导致栈溢出的问题,因为每个线程都有自己的栈,使得RT-Thread具有实时性。初学者对操作系统的线程不太了解,先从我们接
阅读全文