Saturday 3 January 2009

Multitasking

Multitasking中文怎麽說?多任務?好像怪怪的。反正意思就是指能同時間處理多種不同的任務。

Multitasking是可能的嗎?這要看看“同時間”的定義是甚麽了。在電腦裏,即使是用單一處理器的系統也能multitask。這裡就不談電腦了。

人類能multitask嗎?擧個例子,當你正在電腦前編寫程式,你能同時在電話筒中滔滔不絕嗎?這可能辦不到。可是若是MSN而不是電話,你能multitask嗎?你說,嗯,這沒有即時性的要求,所以能。。。。再想一下,真的能嗎?

讓我們看看multitask的電腦流程(還是談回電腦)。以即時性的例子來説,當電腦在處理一件任務的時候,另一件任務會要求中斷,電腦就會將目前任務所得到的結果收藏在堆疊區(stack)起來。然後處理第二件任務。處理完了之後再從堆疊區把第一件任務的資料結果搬出來重新處理。以此類推。

可以看得出,multitasking基本上是沒有效率的。因爲電腦必須花時間收藏與搬出資料與結果。當然,聰明的人類在解決效率方面挺有效率的(?)。他們利用電腦的打瞌睡時間(idle time)處理資料搬遷的問題,大大提升了multitask的效率。可是,聼好,是提升,不是解決。

所以如果有人告訴你他能有效的multitask,那是騙人的,包括我自己。

No comments:

Post a Comment