マルチプロセッサシステムでは、ネットワークアドレッシングがどのように機能するかを理解できません。
これを確認してください。通常のTCP / IPネットワークは、宛先IPを使用してホスト/システム全体を指定し、L4(TCP / UDP)宛先ポートを使用して宛先アプリケーションを指定します。
(おそらく)1つのIPアドレスを持つようにシステムを設定し、異なるCPUで実行されているアプリケーションに異なるL4ポート番号を使用させることができます。その後、着信パケットごとにL4ポートを使用して、それを送信するCPUを決定できます。しかし、システムは、あるCPU上のアプリケーションが別のCPUで使用しているL4ポート番号を再利用しないことをどのように保証しますか?
上記の場合、実際には1つのアプリケーションで2つ(またはそれ以上)のCPUを使用できないことを意味しているようです。たとえば、Webサーバーを実行していて、そのサーバーに送信されたすべてのパケットのTCPポート値が80の場合、システムはどのパケットをどのCPUに送信するかを決定します。
- もちろん、各CPUに固有のIPアドレスを提供することも可能です。しかし、つまり、複数のCPUアプリケーションを実行することはできません。
私は何を見逃していますか?どのように動作しますか?
ベストアンサー1
マルチプロセッサシステムとネットワークは互いに独立しています。
各名前空間は異なるアドレスを持ちますが、同じプロセッサがコードを実行している単一のプロセッサシステムに多くのネットワーク名前空間がある可能性があります。
マルチプロセッサシステムには単一のネットワークアドレスを使用できます。ここで、すべてのネットワーク要求は、現在のスレッドを実行するために使用できるプロセッサによって処理されます。
特定のプロセッサを特定のネットワークアドレス(またはアプリケーションのポート番号)に何らかの方法で接続するには、オペレーティングシステムでそれを設定し、cgroups
次を使用する必要があります。
「各CPUに固有のIPアドレスを付与する」という概念は存在しません。 「オペレーティングシステムが一種のパーティション化を実行し、各パーティションにIPアドレスとプロセッサを割り当てるようにすること」が可能です。他の組み合わせと同様に、「3つのIPアドレスと2つの専用プロセッサ」です。または、「ポート 80 でリッスンする専用アプリケーションに専用プロセッサを使用します。」