概述
资源管理是指嵌入式系统中,针对TASK 和中断处理程冠希访问CPU以外的硬件资源(如某段存储空间,某个外设)的控制。
嵌入式系统中,一段时间内访问硬件资源的TASK和中断处理程序数量总是有限的。因此OS需要提供一套机制来保证访问硬件资源的TASK数量收到限制。
以一个简单的UART输出为例,假定,
· TASK 1需要通过UART输出字符串“[TASK 1]:ABC.\n”
· TASK 2需要通过UART输出字符串“[TASK 2]:abc.\n”
· TASK 1优先级低于TASK 2,但初始时TASK 1占据了CPU资源
· 期望UART输出“[TASK 1]: ABC.\n [TASK 2]: abc.\n”
则可能发生如下图所示情况,导致输出类似于“[TASK[TASK2]: abc.\n 1]: ABC”的乱码。
如下图所示,
其中,
· TASK 1在时刻t1开始输出字符串“[TASK1]: ABC.\n”
· 时间段t1~t2中,TASK 1向UART完成了部分字符串“[TASK”的输出
· 时刻t2发生了时间片中断,OS中断了TASK 1的执行,转而执行TASK 2,
· 时间段t2~t3中,TASK 2占据了CPU,向串口输出了字符串“[TASK 2]: abc.\n”
·