謝謝多位大大們的詳細解說 讓不懂電腦的我獲益良多.. 我只感觸到現實生活中的 『 多工 』好像是:薪水不增加.. 工作量卻越來越增加.. 幾乎一人兼兩職 而 『 多核 』就像是:各級主管都分別交代工作下來.. 且限期完成.. 又有同事拿著雞毛當令箭...
neko1983 wrote:資工學到 Multi...(恕刪) 這位同學, Multiplexer (通常會縮寫成MUX),中文翻譯是多工器,電路上的多工器跟樓主問的作業系統多工是兩碼子事,你的問題我在上上一篇已經有回答,支持一下嘛。
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, 把這兩個東西混在一起評比...