中央處理器 - "多工"的定義到底是什麼? - 電腦

前往內容


"多工"的定義到底是什麼?

謝謝多位大大們的詳細解說

讓不懂電腦的我獲益良多..

我只感觸到現實生活中的 『 多工 』好像是:薪水不增加.. 工作量卻越來越增加.. 幾乎一人兼兩職

而 『 多核 』就像是:各級主管都分別交代工作下來.. 且限期完成.. 又有同事拿著雞毛當令箭...
資工學到 Multiplexer 這種數位邏輯

可是我有點疑問 就是Windows作業系統本來就是多工的作業系統

就算用單核心的處理器 跑Windows也是多工的作業環境
那與多工的處理器又有什麼差異呢?
neko1983 wrote:
資工學到 Multi...(恕刪)


這位同學, Multiplexer (通常會縮寫成MUX),中文翻譯是多工器,電路上的多工器跟樓主問的作業系統多工是兩碼子事,你的問題我在上上一篇已經有回答,支持一下嘛。

x86環境都是假多工拉

只不過是CPU執行緒切換比較快而已
如果你用電腦是從DOS開始用,就會理解何謂多工 !
因為DOS一次只能做一項工作,有了視窗OS才開始有多工
這就是為什麼當初WIN95賣到翻,連盜版一張賣1500元都可以一天賣好幾百張。

syntech wrote:
何謂"假多工","真多工" ?


一個常見的分類方式是分時多工與即時多工。
「同時」有五個人在做,跟五個人快速輪流作。
快速輪流的頻率夠高的話,看起來就會跟「同時」很像。

另一類分類方式,則是類似 win31 的偽多工,
軟體同時開,但是我做完了,發出信號給系統,輪到下一個作。
Win31 這種方式的主要缺點就是,一個當,全部死,工作管理員不容易介入。

Win95 與 WinNT 家族就是系統直接介入,分配資源。


kisaraki88 wrote:
一個常見的分類方式是...(恕刪)


終於懂你所謂的"真多工"跟"假多工",多工(multi-tasking)基本上只要是可以同時執行兩個程式以上,就可以叫做多工,只有穩定不穩定的區別,並沒有定義什麼是真多工跟假多工。

多工的確有分為兩種,一種較古老的方式也是不穩定的方式,我們稱呼他為協調式多工 (cooperative multi-tasking),這種方式為一個行程結束當時分配到的CPU time之後,OS 才把控制權交給下一個行程,這種作法比較簡單,也是因為當時CPU的效能限制所發展出來的方式,雖然可以多工,可是相當不穩定,所有的行程都可以隨便控制I/O,並且只要其中有一個行程掛點,整台電腦系統就得 reboot 了,代表作是建構在 MS-DOS下的 WINDOWS 3.1(所以請不要再說MS-DOS不支援多工了),還有 Windows 95/98/Me 的 16-bit模式。

另外一種是優先權式多工(preemptive multi-tasking),這種作法,OS就比較複雜了,kernel mode(核心)跟user mode 是分開的,每當排入一個使用者模式下的程式,OS 就會建立一個獨立的shell與其他使用者模式下的程式隔開,每個程式獨立運作,不過執行方式還是分時多工,同一顆CPU只能使用分時方式執行,當有多顆CPU時,OS便可以排程至其他CPU來造成並行,這種模式最大的好處便是每個使用者模式下的行程均要透過 kernel 才可以呼叫 I/O,當有行程想要 bypass kernal 直接控制 I/O 時,OS 均有權力拒絕這樣的呼叫,再來就是當有行程掛點時,OS 可以直接 shutdown 該 shell 並且回收該資源,並不會造成系統 crash,需要reboot,代表作是 Windows 95/98/Me 32-bit模式,Windows NT/2000/XP/Vista/7,還有 UNIX/Linux/Solaris/Mac-OS等等都。

只能說古老 協調式多工 的方式應該只會存在在手機裡面吧!
advan888 wrote:
x86環境都是假多工拉

只不過是CPU執行緒切換比較快而已



所以...

不知道這位網友可不可以解釋 "x86環境都是假多工" 這句.
在後面已經把 X86 環境是怎麼多工 ,說的這麼清楚之後
kisaraki88 wrote:
一個常見的分類方式是分時多工與即時多工。
「同時」有五個人在做,跟五個人快速輪流作。
快速輪流的頻率夠高的話,看起來就會跟「同時」很像。



救命喔
分時多工 是通訊上的用詞,原名TDM
即時多工 看了老半天不知所以然,查了一下網路原來是 real time OS, 把這兩個東西混在一起評比...

4頁 (共5頁) » 分享到

前往



廣告