2011年1月1日 星期六

新時代的多工革命



多工革命?
是哪家的產品要搞最佳化嗎?
ACER?
ASUS?
APPLE? (怎麼都是A...) 

不,那就是...





跳Tone一點,我們先來講Context switch(咦?),如果是資工背景的讀者想必很熟悉。

如果不知道context switching的也沒關係,請看下面的介紹

小知識:context switch -- 大家在使用電腦時往往同時執行一堆程式吧,但是早期的電腦是只有一個CPU的,是怎麼做到"同時進行"的呢? 其實CPU不是真的同時進行個個程式,而是不斷的在各程式間進行轉換,也就是不同程式輪流使用CPU,速度快到讓我們無法感覺到罷了。而在程式間轉換時,必須先把這個程式當下的執行狀態記錄下來才行,以便再次輪到該程式的時候能夠從上次的狀態執行下去。

其實不只是電腦,在生活中我們也是不斷的進行"多工模式"呀。
天下雜誌就有提到:
這個世代的七年級大學生,第一項行為特徵是「多工」。
仔細觀察大學圖書館裡讀書的學生,就能發現學生如何多工:桌上擺著一本厚重原文書,緊盯筆電螢幕,同時在七、八個瀏覽器分頁上轉換,隨時有MSN訊息跳出,耳上掛著耳機,不時還打手機簡訊。
(文章出處:http://school.cw.com.tw/article/show/57?cname=TESTING&offset=1&max=1)

從IT人的角度來看,其實這種模式其實就是context switching了,但其實電腦在做context switching的時候是效能上的一大犧牲,畢竟CPU必須要不斷的等待才行。試想,當你寫考卷時不是一次解決一題,而是這裡寫一筆、那裏想一下,整張考卷的題目"同步解題",這樣的效率想必不會高。


其實之前早已拜讀過蔡學鏞大大的<無所不在的Context Switch>這篇文章,但當時其實只是單純地感覺 "哦,真有趣的比喻",並沒有大的感觸。
一直到了最近,實驗室、工作各項雜事、正事接踵而來,感覺時間總是不夠用。這時回頭看這篇文章真的是心有戚戚焉,仔細想想,自己雖然大半時間都坐在電腦前,但是時間幾乎都花在context switching上面:MSN、coding、打Blog、追RSS、寫Flash、學Python.....但是每項的進度都很緩慢。

所以在這個時候,專注的力量就顯得極其重要了。研究顯示,成年最大的專注時間約有20分鐘(孩童約10~15分鐘),所以做事時可以以15或20為片段來做分配,也就是time slice啦 (IT:哦~~)
但在注重T型人才(聽說π型才夯?)的社會裡,三頭六臂是無可避免的,這個時候只好調整自己多工的程度了。像Linux就有辦法調整Time slice的大小,長一點的話運算效能會好上不少,但操作上的靈敏度和反應就會慢多了(你能想像只是切換視窗就要等1秒鐘的情形嗎?XD),有利必有弊啦。

但這個世界上還是有很多人能夠達到完美的多工
唉,只能怨嘆自己的硬體規格不夠強大囉~~
(媽,可以原廠升級嗎?Q__Q)

沒有留言:

張貼留言