2012-02-03 132 views
0

在多核處理器上,如果我從shell腳本文件創建子shell,是否有機會讓子shell轉到另一個處理器,或者所有子shell和父shell是否會在同一個處理器中運行?我無法檢查多核處理器機器。Linux Shell腳本

+1

它可能 - 但進程不會「卡住」到處理器(除非你自己動手將其固定到一個)。進程可以根據調度程序的完整意外改變處理器;不管其父程序如何。 – tMC 2012-02-03 15:14:43

回答

3

是的,同時存在的進程可以在不同的內核上執行。當然,除非子shell在後臺執行,並且主要執行其他工作,否則這不會爲您帶來任何收益。

+1

如果子shell或命令是管道的一部分,那麼您可以受益 - 然後多個核心可以並行執行管道的一部分。當然,'sort'有點讓作品變得有點爛,因爲它在產生任何輸出之前必須讀取它的所有輸入,但是... – 2012-02-03 14:58:25

+0

@JonathanLeffler:我從來沒有在多核主機上體驗過來自Unix流水線的顯着加速。 I/O開銷太大。 – 2012-02-03 15:01:48