Re: [請益] 那些語言或程式用上 多核心 CPU

看板Programming作者 (ggg)時間17年前 (2007/05/15 01:12), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串7/30 (看更多)
※ 引述《ccbruce (彼女に会いたい)》之銘言: : : OS 應該也是用程式語言寫出來的, X86 server 不是也有多處理機的 ? : : 記得 Linux 跟 MicroSoft OS 都支援多處理機, 多核心不就能像 : : multi-cpu 那樣跑, 好像 Intel 單主機板能裝到 4-6 cpu ? : 多工應用必須要有作業系統與硬體互相搭配,雖然作業系統用也是用語言寫出來 : 的,不過在牽涉與CPU相關的各項作業時,就必須用到CPU提供的指令集。也就是 : 說,作業系統因為有CPU的硬體支援,及自己實作的各項功能,而提供了其下之應 : 用程式的多工需求。 現在的 Windows , Linux OS 不是多處理機又是多工的嗎 ? 那麼多核心為甚麼 不能像多處理機那樣跑 ? OS 也是用程式語言寫出來的, 現在的程式語言寫不出有多工的程式嗎 ? 那麼使用 thread lib 寫的程式不算多工 ? : : 程式都是片段片段的寫出來, 好幾個程式不也是可以同時下命令點選一起跑, 這 : : 樣的跑法只有寫 OS 的程式語言才會有嗎 ? 是因為程式語言的關係嗎 ? : 你所謂的「好幾個程式不也是可以同時下命令點選一起跑」是Win32 : 實做Multi-processing的結果,只是多工技術的一種,你要不要先去找本書看看啊? : 感覺你對多工還是不瞭解。 寫 OS 的程式語言跟寫一般程式的程式語言沒有不同吧 ? 既然 OS 是多工的, 程式就是透過 OS 平台在其上跑的, 那多個片段程式 一起跑不就是多工 ? 再把多個片段程式合在一起, 讓多核心對每段同時 跑, 那不就是多核心一起跑 ? 如果說不可以, 那又差在那裡 ? : : compiler 要負責計算 machine time ? 現在的 compiler 會回答說這個程式編好 : : 後, 大概跑多久會做完 ? : 這段非常怪,Compiler也許可以回答你每個指令要花多少週期做完,但無法回答你這程式 : 要花多少時間才能跑完,事實上,只要是圖靈機(Turing Machine,目前的機器皆是), : 是無法回答這個問題的,因為這是所謂的Halting Problem. 那就要問 avi 兄台這段話的意思: " 記得看過一篇文章是說當時INTEL為了開發雙核心的技術 光compiler就搞了好幾年,因為當換算到machine time的時候要決定哪段code 要讓哪個CPU跑,還要解決同步不同步問題" -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.115.6.234

05/15 01:27, , 1F
多工不是兼具多處理器啦
05/15 01:27, 1F
文章代碼(AID): #16I9XbdH (Programming)
討論串 (同標題文章)
以下文章回應了本文
完整討論串 (本文為第 7 之 30 篇):
文章代碼(AID): #16I9XbdH (Programming)