4/4 清明work

1.总结二进制信号量和计数型信号量的区别,以及他们的使用场景。


二进制信号量:最快的最常用的信号量,可用于同步或互斥。
二进制信号量能够满足任务间的互斥和同步,需要
的系统开销最小,因此也称快速信号量。二进制信
号量可以看成一个标志,对应资源是可用还是不可
用。当一个任务调用semTake ()请求一个信号量时
,如果此时信号量可用,信号量会被清零,并且任务
立即继续执行;如果信号量不可用,任务会被阻塞来
等待信号量。
计数信号量:类似于二进制信号量,但是随信号量释
放的次数改变而改变。计数器信号量是实现任务同步
和互斥的另一种手段,在具体实现上有点差异。计数器
信号量除了像二进制信号量那样工作外,还保持对信号
量释放次数的跟踪。


2.使用技术型信号量完成生产者和消费者模型实验。

for(;;)
	{
		//share_data=1;
		printf("shop is ok\r\n");
		osThreadFlagsSet(myEvent01Handle,SHOP);
		osDelay(500);
		
		printf("wash is ok\r\n");
		osThreadFlagsSet(myEvent01Handle,WASH);
		osDelay(500);
		;
		printf("cook is ok\r\n");
		osThreadFlagsSet(myEvent01Handle,COOK);
		osDelay(500);
		;
}

	for(;;)
	{
		printf("I want to eat\r\n");
		osThreadFlagsWait(SHOP| WASH|COOK,osFlagsWaitAll,osWaitForever);
		printf("go to eat\r\n");
		osDelay(500);
	}

3.总结FreeRTOS中同步和互斥的五种方法的使用方法

队列、信号量、互斥量、事件组、任务通知。


4.总结任务通知和其他任务通信机制的区别


队列、信号量、互斥量、事件组在使用之前都需要先创建,才能使用。
任务通知无需创建即可使用。
队列、信号量、互斥量、事件组  多对多通信。
任务通知是多对一通信。(只需要知道要通知的任务ID即可)
队列、信号量、互斥量、事件组需要被创建,所以消耗的资源也是比较多。
任务通知不需要被创建消耗的资源少。


5.根据文档和录屏学习一下软件定时器,了解软件定时器的作用和软件定时器和硬件定时器的区别


一般硬件定时器集成在CPU的内部,有的可以使用外置的硬件定时器芯片,可以人
为通过编程来设置硬件定时器的工作频率,硬件定时器一旦设定好了工作频率,只要
上电,那么硬件定时器就会周期性的给CPU输出一个中断信号,称这个中断信号为时
钟中断,linux内核已经实现好了时钟中断对应的服务程序,这个服务程序也称之为
时钟中断服务函数,既然硬件定时器周期性的给CPU产生时钟中断,那么对应的中断
服务程序就会被内核周期性的调用
软件定时器是在硬件定时器基础之上出来的定时器,可以由一个硬件定时器模拟出成千
上万个软件定时器,这样程序在需要使用较多定时器的时候就不会受限于硬件资源的不
足,这是软件定时器的一个优点,即数量不受限制。但由于软件定时器是通过程序实现
的,其运行和维护都需要耗费一定的CPU资源,同时精度也相对硬件定时器要差一些。
 

相关推荐

  1. 4/4 清明work

    2024-04-04 04:32:01       13 阅读
  2. 用python实现word中所有图片变清晰

    2024-04-04 04:32:01       37 阅读
  3. MySQL45讲(一)(44

    2024-04-04 04:32:01       11 阅读
  4. 49-定时器,倒计时,清除定时器,延迟器

    2024-04-04 04:32:01       33 阅读
  5. 面试经典150题(42-44)

    2024-04-04 04:32:01       34 阅读
  6. 学完Efficient c++ (44-45)

    2024-04-04 04:32:01       17 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-04 04:32:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-04 04:32:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-04 04:32:01       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-04 04:32:01       20 阅读

热门阅读

  1. 什么是设计模式?使用英雄联盟来介绍设计模式

    2024-04-04 04:32:01       16 阅读
  2. “八皇后”问题——回溯+深搜

    2024-04-04 04:32:01       17 阅读
  3. 程序员的前景和未来

    2024-04-04 04:32:01       13 阅读
  4. 关系数据库标准语言SQL难题整理

    2024-04-04 04:32:01       16 阅读
  5. C语言--指针4

    2024-04-04 04:32:01       15 阅读
  6. 用C++编写“多功能双人五子棋”游戏

    2024-04-04 04:32:01       14 阅读
  7. OpenJudge - 18:验证子串

    2024-04-04 04:32:01       14 阅读