外部および内部の断片化の合計を見つけたい。私が理解しているのは、プロセスがメモリにロードおよび削除されるときに外部フラグメンテーションが発生し、メモリが小さな断片に分割されること、および内部フラグメンテーションがパーティション内部の未使用のメモリであることです。
例として、50 KB、400 KB、130 KB、300 KB、150 KB、70 KB(この順序で)のメモリホールがあったとします。これで、次のメモリスペースを(順番に)必要とする次のプロセスがあります:A = 230 KB、B = 180 KB、C = 130 KB、D = 120 KB、E = 200KB。
first fit メソッドを使用して、次の割り当てを決定しました。
50KBの穴には0プロセスが割り当てられます-> 50KBの空き
400KBの穴にはプロセスAとCが割り当てられます-> 40KBの穴にはプロセスDが割り当てられます-> 10KBの空き
300 KB穴にはプロセスBが割り当てられます-> 120KBの空き
150KBの穴には0のプロセスが割り当てられます-> 150KBの空き
70KBの穴には0のプロセスが割り当てられます-> 70KBの空き
したがって、定義の私の理解に基づいて:
内部断片化の合計= 50 KB + 150 KB + 70 KB = 270 KB
外部断片化の合計= 40 KB + 10 KB + 120 KB = 170 KB
これは正しいですか?ありがとう。
コメント
- お勧めしません"私の答えが正しいかどうかを確認してください"の質問、"はい/いいえ"の回答のみが可能であり、'あなたや将来の訪問者を助けます。 こちらおよびこちらをご覧ください。投稿を編集して、'不明な特定の概念上の問題について質問できますか?経験則として、あなたがたまたま取り組んでいる問題を'見ていない人にとっても、良い概念的な質問が役立つはずです。誰かがあなたの仕事をチェックする必要があるだけなら、友人、クラスメート、または教師を探すかもしれません。
- はい、概念的な問題は、外部と内部の全体的な断片化を見つけることです。 'は質問のタイトルです。自分の質問に答える試みとして例を示しました。
- "断片化"は実際に何を測定しますか? 'この名前で数量を説明するのに適切な単位すらわかりませんが、単にバイト数 iになる可能性は非常に低いようです。 >各フラグメントのサイズを合計することによって形成されます。これは、サイズ270KBの単一の穴の"断片化"が同じであるためです。 " 270個の穴の断片化"として、それぞれのサイズは1KBですが、明らかに意味のある測定値が後者に大きな番号を割り当てます。
回答
問題によると、プロセスAは400 KBのメモリに割り当てられているため、メモリが分割されます。 2つの部分に分けられ、1つは要求を満たし、残り(170 KB)は(170 KB E)で示される外部フラグメンテーションのタイプです。
同様に、300KBを使用するプロセスBの場合は120KBEになります。
(170 KB E)の結果(40 KB E)を使用したプロセスcの場合も同様です。
プロセスDの場合も同様です。プロセスEの(130 KB)結果(10 KB E)要求を完了できませんしたがって、外部フラグメンテーションの合計= 40 + 10 + 120 = 170 KB
内部フラグメンテーションの合計= 50 + 150 + 70 = 270 KB
回答
いいえ!内部断片化の合計は40+ 10 + 120 = 170kBであり、外部断片化の合計は50 +150 + 70 = 270kBです
回答
まず、パーティションが固定サイズか可変サイズかを指定する必要があります。動的パーティショニング(可変サイズ)を使用している場合、内部フラグメンテーションは固定サイズのパーティショニングに対してのみ定義されているため、常に0になります。ここで、パーティショニングが静的であると仮定すると、内部断片化の合計はすべての内部断片化の合計になります。また、外部フラグメンテーションの場合、使用可能な空きメモリの合計(穴と連続した空きメモリ)に等しくなります。したがって、ここでの外部フラグメンテーションは(50 + 40 + 10 + 120 + 150 + 70)KB =使用可能な空きメモリの合計=未使用のメモリの合計になります。内部フラグメンテーションは(40 + 10 + 120)KBになりますが、使用されていないパーティションはどのプロセスにも割り当てられていないため、カウントされません。外部フラグメンテーションは、固定サイズのパーティション分割の場合の内部フラグメンテーションのスーパーセットです。