使用session和cookie实现网站自动登录 .net,html5的网站设计与实现是做什么,小制作的制作过程,o2o网站建设行情1、空闲任务的介绍
(1)一个良好的程序#xff0c;它的任务都是事件驱动的#xff1a;平时大部分时间处于阻塞状态。
(2)有可能我们自己创建的所有任务都无法执行#xff0c;但是调度器必须能找到一个可以运行的任务。所以#xff0c;我们要提供空闲任务。
(3)在使用vTas…1、空闲任务的介绍
(1)一个良好的程序它的任务都是事件驱动的平时大部分时间处于阻塞状态。
(2)有可能我们自己创建的所有任务都无法执行但是调度器必须能找到一个可以运行的任务。所以我们要提供空闲任务。
(3)在使用vTaskStartScheduler()函数来创建、启动调度器时这个函数内部会创建空闲任务
空闲任务优先级为0它不能阻碍用户任务运行。空闲任务要么处于就绪态要么处于运行态永远不会阻塞。
(4)空闲任务的优先级为0这意味着一旦某个用户的任务变为就绪态那么空闲任务马上被切换出去让这个用户任务运行。在这种情况下我们说用户任务“抢占”(pre-empt)了空闲任务这是由调度器实现的。
(5)需要注意的是如果使用vTaskDelete() 来删除任务那么你就要确保空闲任务有机会执行否则就无法释放被删除任务的内存。
(6)我们可以添加一个空闲任务的钩子函数(Idle Task Hook Functions)空闲任务的循环每执行一次就会调用一次钩子函数。钩子函数的作用有这些
执行一些低优先级的、后台的、需要连续执行的函数。测量系统的空闲时间空闲任务能被执行就意味着所有的高优先级任务都停止了所以测量空闲任务占据的时间就可以算出处理器占用率。让系统进入省电模式空闲任务能被执行就意味着没有更重要的事情要做当然可以进入省电模式了。
(7)空闲任务的钩子函数的限制
不能导致空闲任务进入阻塞状态、暂停状态。如果你会使用vTaskDelete()来删除任务那么钩子函数要非常高效地执行。如果空闲任务一直卡在钩子函数里的话它就无法释放内存。
2、使用钩子函数的前提
(1)在 FreeRTOS\Source\tasks.c 中可以看到如下代码所以前提就是
把这个宏定义为1configUSE_IDLE_HOOK实现 vApplicationIdleHook 函数。 (2)configUSE_IDLE_HOOK 这个宏在 FreeRTOSConfig.h 文件中定义或修改。
3、任务内存的清理
(1)使用xTaskCreate创建任务分配TCB和栈在vTaskDelete中删除任务但不一定是在vTaskDelete中释放TCB和栈。
(2)对于自杀的任务由空闲任务来清理内存。(自杀的人死人不能清理自己的尸体)
(3)对于被杀的任务在vTaskDelete函数内部清理内存。(凶手调用这个函数由凶手清理尸体)
(4)在空闲任务中不用进行什么操作只要保证空闲任务有可以执行的机会。空闲任务会自动清理自杀任务的内存。