はじめに
今回は仮想記憶について書きたいと思います。仮想記憶という言葉自体はよく聞きますが、聞くだけで良くわかっていないままだったので、これを機にふわっとですが、まとめて見たいと思います。
仮想記憶とは何なのか
仮想記憶を一言でいうと、主記憶や補助記憶装置を意識しなくてよくする技術です。
じゃあ、誰が意識しなくて良くなるのでしょうか?
それは主記憶や補助記憶装置に保存されるデータたちです。
データたちからは仮想記憶しか見えなくなり、実記憶は見えなくなります。(実記憶は物理的なメモリ空間のことを言います。)
そもそもなぜ意識させないようにしているのか
これは実記憶に直接データを配置するときに物理的制約があるためです。上記でも述べていますが、実記憶というのは物理的なメモリ空間です。
そのため、記憶するデータが連続したスペースが必要な場合、連続したスペースを作ってあげなければいけません。
これが、物理的制約であり、主記憶や補助記憶を意識させないようにしたいモチベーションとなっていることが分かるかと思います。
どのような流れで物理的制約が無くなっているか
流れを以下の図で示しています。
このように、仮想記憶を主記憶として扱うことで、実記憶の配置に関わる物理的制約を意識してよくなります。
ちなみに、変換し、紐づけをする仕組みを動的アドレス変換機構 (DAT:Dynamic Address Translator) といい、この仕組みを担っているのはメモリ変換ユニット (MMU:Memory Management Unit) と言うようです。
実記憶がいっぱいになったらどうするのか
補助記憶にデータをマッピングしていきます。
上の図を見てわかるように、データからは仮想記憶しか見えておらず、物理的な実記憶は見えていないので、マッピング先が実記憶でないといけないわけではありません。
ということで、実記憶の容量が足りなくなった場合は、補助記憶にデータをマッピングしていきます。
まとめ
とっつきにくい概念だなと思っていましたが、主語や背景を理解していくことで前よりも理解が深まったかなと思います。
何か間違いがあれば、ご指摘いただけるとありがたいです。
最後まで読んでくださり、ありがとうございました。
参考文献
- キタミ式イラストIT塾 応用情報技術者 令和05年 P328~P332
- https://wa3.i-3-i.info/word17757.html