|
发表于 2006-3-5 20:19:19
|
显示全部楼层
当中断发生的时候,不会发生任务切换,中断处理程序会借用当前进程的内核堆栈来来进行中断处理。所以进程的内核堆栈大小非常关键,如果太小将会导致系统崩溃。所以有时系统程序员可以设置让中断处理程序在另外一个专门的系统堆栈中进行。但是,上述切换仅仅是指堆栈的切换,任务是不会切换的。在Linux-2.6内核中,任务切换仅仅在两种情况下发生:
1、任务主动调用schedule;
2、在中断出口(设备中断、系统调用、异常处理、陷阱等等)处,系统检测到需要调度或者需要抢占。 |
|