web-dev-qa-db-ja.com

システムVMとJVMの違いを表示するには

システム仮想マシンとJava仮想マシンの違いを示す図を描こうとしています。

最初の2つの画像は私には正しいように見えます。しかし、私は三番目を描く方法がわかりません。

画像1:

enter image description here

画像2:

enter image description here

画像3:

enter image description here

ご覧のとおり、赤いブロックと灰色のフレームの両方に同じキャプション「JVM」があります。私はそれが正しいとは思いません。キャプションは異なるはずです。灰色のフレームは「JVM」、赤いブロックは「何か違う」です。

3番目の図はどのように修正する必要がありますか?

8
john c. j.

あなたがそれを正しい方法で考えれば、それはそのままで結構です。

仮想マシンは、ハイパーバイザーで実行されるタスクと考えることができます。結局のところ、彼らは コンテキストスイッチ をほぼ同じ方法で取得します。タスクとアプリは同じものではありません。タスクは実行中にのみ存在します。アプリは、実行中のタスクを終了した後でも存在します。彼らはあなたが彼らを再び始めるのを待って周りに座っています。

ここに小さな例があります。

enter image description here

問題は、アプリとタスクの名前が同じであるため、混乱を招く可能性があるということです。特に、質問の他の画像が同じパターンに従っていない場合。通常のホストOSは、実行中のアプリの名前を認識しています(したがって、タスクに同じ名前を付けることができます)。ただし、ハイパーバイザーには、その上で実行されているゲストOSの名前がわかりません。つまり、「タスク」の独自の名前を構成します。「システムVM 1」などです。

5
candied_orange