感谢分享,有个疑惑希望能帮我解答一下。 我理解中断上下文不能调度,但我记得似乎进入中断的时候没有关闭系统调度这个操作。 我一直的理解,是中断的时候可以配置使用单独的栈,那么这个时候由于中断函数没有相应的PCB,且中断栈对于被中断的进程是不可见的,因此一旦显示的调用sched函数也是不可能返回中断环境,因而不能睡眠(会调用sched函数)。即使中断函数共用了被中断进程的内核栈,即相当于在进程中调用了中断函数,由于中断发生是异步的,如果中断中发生睡眠,相当于被中断函数意外的失去了CPU,这很有可能使系统挂掉。另外有的中断可能配成IRQF_DISABLED,这就直接屏蔽了其他中断,即使没有配成这个,也会占用某一条中断线,如果调度出去了很可能使得系统崩溃。 但是我也见过另外一个说法,就是被中断打断的进程会改变进程状态,使得调度器没办法再调度这个被打断进程,因此不能在中断中调度。 今天又看到了第三种说法...希望这方面能详细讲一下。感谢
点赞

相关推荐

牛客网
牛客网在线编程
牛客网题解
牛客企业服务