• 締切済み

並列処理とメモリ管理について

並列処理はメモリ管理があってはじめて実現される根拠を教えてください

みんなの回答

noname#194317
noname#194317
回答No.1

メモリ管理をしないと、並列で動いている処理同士が共食いをするのを防げないからです。ごくごく単純化したモデル、例えばメモリブロックを16個持っている処理系で考えてみましょう。 処理Aがブロック1~4を使っている状態で、処理Bを追加します。この時、処理Bがすでに動いている他の処理(この場合処理A)が使っているブロックを使ってしまった場合、そのブロック内のメモリ内容が破壊されることになります。データが壊れるくらいならまだいいですが、下手するとデータでプログラムを上書きしてしまって暴走です。よって処理Bには、ブロック1~4は避けてもらわないと、正常に動きません。 といったようなことで、メモリ管理が必要になるわけです。 上記はメモリ確保の場合ですが、ある処理が終了したら、その処理用に確保していたメモリブロックを開放する必要があります。これもメモリ管理の仕事です。確保する一方だと、メモリが足りなくなっちゃいますからね。

orshirot
質問者

お礼

分かりやすい回答ありがとうございます。 理解することができました。

関連するQ&A