作者ggg12345 (ggg)
站内Programming
标题Re: [请益] 那些语言或程式用上 多核心 CPU
时间Tue May 15 01:12:04 2007
※ 引述《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
1F:推 ephesians:多工不是兼具多处理器啦 218.160.114.14 05/15 01:27