如何知道任务调度算法是正确的,可以创建800个(包括任务0)任务(当前任务优先级数目为32),任务执行下面的代码。
void task_func(void)
{
int pid = current->pid;
int x,y,z;
y = pid/32;
x = pid%32;
z = y*160 + x*4;
z += 0xb8000;
while(1)
{
__asm__("incb (%%eax)"::"a"(z));
}
}
这800个任务会在屏幕上不断打印25*32=800个字符,打印字符的顺序是从上到下,从左到右。从上到下代表在同一个优先级上的时间片轮转算法,从左到右代表不同优先级任务的优先级算法。
![](http://hi.csdn.net/attachment/201109/4/0_13151334984teb.gif)