🐕

【OS】仮想メモリについてざっくりまとめ

に公開

はじめに

スマートフォンやパソコンを使っていると、たくさんのアプリを同時に開いたり、大きなファイルを扱ったりします。しかし、実際の物理メモリ(RAM)の容量には限界があります。この問題を解決するのが「仮想メモリ」という技術です。

仮想メモリは「実際には存在しないのに、あたかも存在するかのように見せる」メモリのことで、コンピュータが快適に動作するために欠かせない仕組みです。
本記事では、仮想メモリの基本的なポイントについてまとめていきます。

仮想メモリとは

仮想メモリとは、物理メモリ(実際のRAM)とストレージ(HDDやSSD)を組み合わせて、アプリケーションから見える「仮想的なメモリ空間」を提供する技術です。
物理メモリだけでは足りない場合に、ストレージの一部を「仮のメモリ」として使います。
各プログラムに「メモリが十分にあるかのように」見せることができ、実際の物理メモリの配置をOSが自動的に管理するようになります。

仮想メモリが解決する3つの主要な問題

① メモリ不足の解消:物理メモリより大きなプログラムを実行可能
② メモリ保護:プログラム同士が互いのメモリ領域に干渉するのを防ぐ
③ メモリ管理の簡素化:プログラム開発者がメモリ配置を気にしなくて済む

仮想メモリの仕組み

ページング方式
仮想メモリの代表的な実装方法が「ページング」です。
・仮想アドレス:プログラムが認識するメモリ上のアドレス
・物理アドレス:実際のRAM上のアドレス
・ページ:メモリを分割する単位(通常4KB)
・ページテーブル:仮想アドレスと物理アドレスの対応表


http://virtualinvader.com/paging-method/ より

ページフォールトとは?

プログラムがアクセスしようとしたデータが物理メモリにない場合、「ページフォールト」という割り込みが発生します。
このとき、OSは以下のことを行ないます。
・必要なデータをストレージから読み込む
・物理メモリに空きがなければ、使われていないページをストレージに退避(スワップアウト)
・新しいデータを物理メモリに読み込み(スワップイン)
・ページテーブルを更新
この一連の処理はユーザーには見えず、あたかも最初から全てのデータがメモリにあったかのように見えます。

まとめ

仮想メモリは現代のコンピュータシステムを支える重要な技術です。物理メモリの制限を超えた柔軟なメモリ管理を可能にし、私たちが複数のアプリをスムーズに使えるようにしています。OSが裏で行っているこの「魔法のような」技術によって、私たちはメモリの心配をせずにコンピュータを利用できるのです。
最後までお読みいただき、ありがとうございました。

参考・画像引用元URL

https://itmanabi.com/virtual-memory/
http://virtualinvader.com/paging-method/
https://ufcpp.net/study/computer/OperatingSystem.html
https://milestone-of-se.nesuke.com/sv-basic/architecture/virtual-memory-and-swap/

Discussion