2014-03-19 95 views
0

在我的理解中,当时间片(例如1毫秒时间片)使调度程序(OS的)传递给CPU时,抢先式多任务就是这种情况)将一个线程连接到CPU一段特定的时间(本例中为1毫秒),然后切换到另一个线程(执行它1毫秒,然后切换回第一个线程,依此类推 - 假设只有两个线程为简单起见)。 参考:https://www.youtube.com/watch?v=hsERPf9k54U线程 - 优先级突发事件与优先级

与先发制人的多任务处理不同的是优先级的概念 - 操作系统设置数字的应用程序的优先级,例如, 1至39等,无论如何 - 这不是现在的问题。

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

现在我不认为这是这种多任务处理的优势。它在抢先式多任务中应该是同样的事情,不是吗?

预先感谢您。

+0

抢先式多任务处理是一种将线程与其需要的资源进行匹配的方法,例如, CPU,磁盘,网卡,KB,鼠标。大多数这样的系统都有一个定时器驱动程序,如果机器过载了只等CPU的线程,可能会导致抢占。比内核更容易准备的线程。先发制人的设计并不是为了准备就绪的线程之间的“时间片”而开发的,它们被设计为提供良好的I/O性能。如果这种盒子在就绪线程之间经常“时间分割”,则它过载并且操作效率低下。 –

+1

基于线程优先级对日程进行操作也会动态调整线程的优先级,这取决于他们没有机会执行的时间。这解决了优先级反转问题并提供了一种实现循环调度的方法。 –

+1

@HansPassant - 我们之间,应该包括它,我希望。看来,OP一直在阅读/查看错误的网站。毫不奇怪,有这么多人:( –

回答

1

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

在进程调度的情况下,抢先式是一种策略,即操作系统无论何时(操作系统)需要时都可以抢占分配给进程的资源。相比之下,非抢先式调度策略不能抢占(收回)资源,直到过程完成使用并释放它们。

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