阅读:963回复:2
问几个稀奇古怪的问题,大家请赐教
1)当系统正在运行一个线程时,发生了中断,系统转去处理中断,处理完了中断后,线程调度器是调入原来那个线程继续运行(假设在中断发生时它的cpu时间并没有用完),还是调用下一个优先度比它高的线程呢?
2)想做一个这样的驱动,要求能对系统中的线程进行调度,比如能暂停当前系统运行的线程,然后调入另一个线程投入运行(就像windows的线程调度器一样),大家能不能给我一点思路 |
|
沙发#
发布于:2004-05-09 18:49
1. 应该是优先级高的线程。不过我觉得这种情况不大可能发生,这个优先级高的线程什么时候由谁来创建的呢??
2. 这样做好象没什么意义吧? |
|
板凳#
发布于:2004-05-09 21:06
关于第一个问题,我的看法是这样的:
系统中的某个线程因中断而被阻塞后,处于阻塞状态, 此时系统会进行相应的中断处理,如果此次中断是由于I/O引起的, 则系统在发出I/O命令后,就会返回,然后调度下一个就绪的线程进入执行态。 当中断响应处理完后,系统会得到通知,从来使得原来的那个由于中断而阻塞的线程再次处于就绪态。 至于它是否会马上得到调度而执行,就要看当时处于就绪态的线程中那个的优先级更高了。 我这是根据操作系统书中的原理而做出的推断,仅供参考,不对的地方,还望不吝指正。 第二个问题超出了我的知识范围,无法回答。 |
|
|