Re: [請益] 那些語言或程式用上 多核心 CPU
※ 引述《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
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 7 之 30 篇):