2009-10-12 13 views
5

ええ、私は知っている...あなたの助けが必要なのは、私たちの残りの人にとって自然なことを納得させる人がいることが時々ある。私の同僚にLinuxカーネルコードが再入荷であることを納得させるには?

私の同僚の同僚は、Linuxカーネルコードがではないと確信しています。は、彼がそれに興味を持った先月のどこかに、おそらく7年前にそれを読んでいるので再入門者です。マルチコアアーキテクチャは以前から広く普及しておらず、初めからLinuxプロジェクトが完全には書かれておらず、全ての魅力的な機能を備えていたことを忘れないでください。

今日は異なります。同じアーキテクチャ上で並列に実行されている異なるプロセスから同じシステムコールを呼び出すと、未定義の動作につながることは明らかです。 Linuxカーネルは現在広く普及しており、マルチコア・アーキテクチャー上で動作していてもその再現性は知られています。 これは私の議論です。しかし、あなたはにあなたのことを客観的に証明するでしょう

私はmutex_lock()システムコールとしてLinuxカーネル(lxr website)のいくつかの機能を彼に見せようと考えていました。 Eveythingは、同時に環境で動作するように調整されています。しかし、このコードは、初心者にとっては明らかではないかもしれません(私のように)。

私を助けてください.. ;-)

+4

このことを私に思い出させます:http://xkcd.com/386/真剣に、なぜ愚か者にエネルギーを費やすのですか? –

+1

私は他人の視点を知ることに興味を持ち、討論はもっと多くの知識を全員にもたらし、むしろ真実を推測します。 –

答えて

5

を "BKL" のカーネルメーリングリストのアーカイブを検索します。これは "Big Kernel Lock"の略で、問題を防ぐために使われていました。カーネルの長い部分が別々のプロセスで使用されているので、再入可能にするために、多くの作業が分割されています。 BKLの最近の言及(少なくとも私が気づいたこと)は基本的に誰かが承認した以上に自分の人生を楽にしようとしている人を指しています。 BKLの "、またはその命令の何か。

2

複数のCPUが同時にカーネル内で実行できることを証明する最も簡単な方法は、カーネル内で多くの作業を行うプログラムを書くことです(例えば、タイトなループで長いパス名を調べる)それをデュアルコアマシンで同時にコピーし、topの「システム」パーセンテージが50%を超えることを示します。

+0

+1本当のテストを提案してください! – mikera

1

snarkyになる危険性があります:なぜコードを読み取るだけではないのですか?あなたのどちらも、割り込みハンドラを介してコードを実行するのに十分なエキスパートでなく、同期コードを読み取ることができるいくつかのサブシステムまたは別の場所にいれば、どうして気になるのですか?ピンの議論の頭でこれはちょうど踊りではありませんか?生物学を学ぶことに興味がない場合、進化の「証明」を要求する創造主義者のようなものです。

0

多分、あなたの友人がでないことを証明する必要があります。リエントラントです。あなたがこれを証明するために負担してはいけません。

関連する問題