线程 - 抢先式多任务与优先级

时间:2014-03-19 12:53:27

标签: multithreading time operating-system

根据我的理解,当一个时间片(例如1毫秒时间片)使调度程序(OS)通过(到CPU)一个线程到CPU的特定时间时,先发制人的多任务处理就是这种情况。时间跨度(在本例中为1毫秒)然后切换到另一个线程(执行它1毫秒然后切换回第一个线程,依此类推 - 假设只有两个线程,为简单起见)。 参考:https://www.youtube.com/watch?v=hsERPf9k54U

与先发制人的多任务处理相比,优先级的概念 - 操作系统以数字设置应用程序的优先级,例如:在任何基础上都是1到39等 - 这不是现在关注的问题。

这样做的好处是,如果一个应用程序挂起,时间切片器只会返回到另一个线程(假设这个线程属于另一个应用程序,第一个应用程序挂起)并继续正常工作。然后你可以关闭被绞死的应用程序。 参考:https://www.youtube.com/watch?v=hsERPf9k54U

现在我认为这不是这种多任务的特别优势。先发制人的多任务处理应该是一样的,不是吗?

提前谢谢。

1 个答案:

答案 0 :(得分:1)

抢先式,多任务处理和优先级(调度)是操作系统概念的不同方面。

在进程调度的上下文中,抢先是一种策略,在该策略中OS可以在(OS)需要时抢占(获取)为进程分配的资源。相反,非抢占式调度策略不能抢占(收回)资源,直到流程完成使用并释放它们为止。

优先级调度算法可以采用抢占式或非抢占式策略来实现。