+ -
当前位置:首页 → 问答吧 → 关于线程优先级的疑问?

关于线程优先级的疑问?

时间:2011-12-16

来源:互联网

我今天看到下面一段:
CPU总是让"可执行"(excutable)的线程中优先级最高的线程运行。不用担心优先级低的线程永远得不到CPU运行时间(饥饿状态),虽然这是可能的。因为线程一般不会永远处于"可执行"状态,比如等待某个消息,它就会让出CPU,直到这个消息到了才恢复为"可执行"状态。
我的疑问是:1、高优先级的线程中,如果有事件等待,是否此时会让出CPU给低优先级线程?
  2、让出线程后,如何知道有事件发生了,及时中断低优先级的线程,回到该高优先级?是否要等到下一个时间片?我想知道操作系统是如何完成这个过程的。

作者: zwgdft   发布时间: 2011-12-16

1.对
2.要等到下个时间片或者当前线程等待

作者: Lactoferrin   发布时间: 2011-12-16

引用 1 楼 lactoferrin 的回复:

1.对
2.要等到下个时间片或者当前线程等待


但是如果是等到下个时间片的话,那还有何高低优先级可言,据我所知高优先级是可以抢占低优先级时间片的,只是我不清楚这个过程是如何实现的。

作者: zwgdft   发布时间: 2011-12-16

不对,是下次时钟中断,这时调度程序会检查是否有更高优先级的线程就绪,如果有就切换到该线程,当前线程的时间片可能没完

作者: Lactoferrin   发布时间: 2011-12-16

引用 2 楼 zwgdft 的回复:

引用 1 楼 lactoferrin 的回复:

1.对
2.要等到下个时间片或者当前线程等待


但是如果是等到下个时间片的话,那还有何高低优先级可言,据我所知高优先级是可以抢占低优先级时间片的,只是我不清楚这个过程是如何实现的。

抢占的含义是,举个例子吧。比如坐飞机,平常都是排队上飞机,但某一天,一位高级官员来了,大家都让路,让官员先上,然后其他人才可以上飞机。你可以把官员想象成优先级别高的。在神奇的国度,官员就是高级货啊。哎。。。

作者: onlycs   发布时间: 2011-12-16

热门下载

更多