スワッピングとページングの主な違いは、スワッピングでは、プロセスが主記憶と二次記憶の間を行き来するのに対し、ページングでは、ページと呼ばれる同じサイズのメモリブロックが主記憶と二次記憶の間を移動することである。
オペレーティングシステムは、コンピュータシステムの主要な機能を処理する。
ハードウェアデバイスの処理、プロセスのスケジューリング、ファイルの処理など、さまざまなタスクを実行します。
そのうちの1つがメモリ管理です。
オペレーティングシステムは、すべてのメモリ位置と、それらが割り当てられているか解放されているかのステータスを追跡しています。
オペレーティングシステムのメモリ管理には、スワッピングとページングという2つの手法があります。
スワップとは
スワッピングとは、プロセスを二次記憶装置から主記憶装置に移動させたり、主記憶装置から二次記憶装置に戻したりする仕組みのことで、主記憶装置から二次記憶装置に移動させたプロセスを、二次記憶装置から主記憶装置に戻したプロセスをスワッピングする。
例えば、プログラムは最初、ハードディスクや二次記憶装置に格納されています。
実行が必要になると、メインメモリに移動する。
CPUは、二次記憶装置よりも主記憶装置の方が、より速くプログラムにアクセスできる。
実行が完了すると、プログラムはハードディスクに戻る。
ここで、実行中のプログラムに割り当てられたメモリは、実行終了後、解放される。
そして、この解放されたメモリを新しいプログラムが使用することができる。
実行中のプログラムは、プロセスとも呼ばれます。
スワップは性能に影響を与えるが、複数のプロセスを並列に実行することができる。
したがって、スワッピングはメモリ圧縮の手法の一つでもあります。
ページングとは
仮想メモリは、プログラマが利用可能なメインメモリよりも多くのメモリをプログラムに使用できるようにするメモリの一種です。
例えば、メインメモリが8GBで、仮想メモリが16GBの場合、プログラマはその16GBの仮想メモリを使用してプログラムを実行することができます。
ここで、仮想メモリの実装に役立つのがページングという技術です。
これは、プロセスアドレス空間をページと呼ばれる同じサイズのブロックに分割するものです。
同様に、メインメモリもフレームと呼ばれる小さな固定サイズのブロックに分割する。
ページアドレスは、論理アドレスと呼ばれます。
その式は次のとおりです。
論理アドレス=ページ番号+ページオフセット
フレームアドレスは物理アドレスと呼ばれます。
式は次のとおりです。
物理アドレス=フレーム番号+ページオフセット
フレームをページに割り当てる場合、論理アドレスは物理アドレスに変換されます。
さらに、ページマップテーブルは、プログラムの実行中、プロセスのページとそれに対応するメインメモリのフレームを記録しておく。
あるプロセスを実行すると、そのプロセスの対応するページがメインメモリ内の空いているフレームにロードされる。
コンピュータのメインメモリが不足すると、OSは不要なページを2次メモリに移動し、メインメモリを他のプロセスのために解放する。
このプロセスは、プログラムの実行中ずっと続く。
SwappingとPagingの違い
定義
スワッピングとは、あるプロセスを一時的にメインメモリから二次記憶装置にスワップし、そのメモリを他のプロセスで利用できるようにする仕組みのことである。
これに対して、ページングとは、コンピュータが主記憶装置で使用するために、二次記憶装置からデータを保存したり取り出したりするメモリ管理手法のことである。
これらの定義は、スワッピングとページングの基本的な違いを説明しています。
主な機能
スワッピングでは、プロセスが主記憶装置と二次記憶装置の間を行き来する。
ページングでは、ページと呼ばれる同じサイズのメモリブロックが、メインメモリと二次メモリ間を移動します。
したがって、スワッピングとページングの主な違いは、その機能性です。
フレキシビリティ
スワッピングとページングの違いとして、柔軟性も挙げられます。
ページングでは、ページを転送するため、スワッピングよりも柔軟性があります。
メインメモリ上のプロセス数
スワップでは、メインメモリ内のプロセス数が多くなります。
しかし、ページングでは、メインメモリ内のプロセス数は少なくなります。
この点も、スワッピングとページングの違いとなります。
ワークロード
スワップは重いワークロードに適していますが、ページングは小から中程度のワークロードに適しています。
使用方法
スワッピングとページングのもう一つの違いは、使用方法です。
スワッピングは、CPUがより速くプロセスにアクセスするのに役立ち、ページングは仮想メモリを実装するのに役立ちます。
結論
スワッピングとページングは、2つのメモリ管理技術です。
スワッピングとページングの主な違いは、スワッピングではプロセスが主記憶と二次記憶の間を行き来するのに対し、ページングではページと呼ばれる同じサイズのメモリブロックが主記憶と二次記憶の間を移動することである。