• ベストアンサー

仮想記憶、仮想メモリ、コンピュータの仕組み

仕組みの違いがわからなくて困っております。どれも同じように思えてしまいます。 もう少し、やさしく違いを解説していただけないでしょうか、宜しくお願い致します。 1、ガベージコレクション、デフラグメンテーション、メモリコンパクションは、全て同じことですか? 2、スプーリング、スワッピングは、同じことですか? 3、ページングも、大体、1と2と同じようなことですか?

質問者が選んだベストアンサー

  • ベストアンサー
  • hue2011
  • ベストアンサー率38% (2801/7249)
回答No.4

台所で料理をつくると思ってください。二人いるとしましょうか。 とりあえずあなたが行動を起こします。 まな板があります。この上でものを切ったりたたいたりまとめたりします。 ここが、メモリです。 すべての調理はここで行います。 フライパンだとか鍋のようなものはCPUだと思ってください。 ここで加工がおこなわれるのです。 芋や玉ねぎの入っているバケツがあります。魚が乗っているトレイがあります。 これは外部記憶装置です。 まな板で加工したいとき、外部記憶装置にあるタラをもってきて包丁を入れます。 だけど、これをフライにして、タルタルソースで提供したいと考えるなら、いま触ったタラはまな板からどかさないといけない。 きれいな皿をもってきてそこに置くとします。 これ、仮想記憶です。まな板の延長線で見えていて、いま調理しようとする食材が一望にわかるのです。 だけどまな板自体ではないから、メモリではありません。 まな板に、タラの皮とかしっぽとか、いろいろ残っています。 取り合えずこれ、洗いましょう。そうしないと次に乗せたものににおいがうつってしまいますから。 これがガベージコレクションです。 タラをシソの葉でくるんであげたいとかんがえ、いまシソをまな板にのせ、皿においた切り身の魚を巻いていきます。 この巻いたものをまとめないでおくと、まな板の隅からぼろりと落っこちたりするし、切り身どうしでからまってしまいます。 だから、まな板にきれいに並べておきながら調理すべきです。 これがメモリコンパクションです。 ついでに、すでにしたごしらえをしておいたニンジンを添えることにしましょう。 冷蔵庫、これは外部記憶ですが、この中に、タッパウェアにまとめて、「ニンジン」「きゅうり」「大根」があります。 こういうしまい方をしたというのは、ページングです。 何がどこにあるかわかるやりかたです。 まな板にすでに、シソで巻いた魚が並んでます。 そこの空きエリアにニンジンを並べます。できれば空きをつくらないで、きれいに並べます。 これがデフラグメンテーションです。 ニンジンをさくさくさくさく細かく切ります。 もう一人はこのあたりまで待っていますがいよいよ出番です。 こいつは揚げ鍋に油をいれて火にかけています。 フライを作りたいのですから、バットに小麦粉を入れ、ボウルに卵を溶き、もうひとつのバットにパン粉を敷いて待っています。 かたっぱしから魚が作られていくのですが、ひとつずつ粉をまぶし油にいれるということをすると、小麦粉は湿ってしまい、油の温度は同じようにならず、不揃いの変なものになります。 そこで、まな板に魚が積みあがるのを待っています。 これをスプーリングといいます。全部できてから仕事を一気にやりたいからです。 次つぎに魚をまぶし、油にいれるとどんどんできてきます。 これを配膳用の皿に積み上げ、さっきのニンジンと玉ねぎをマヨネーズで混ぜたものを載せます。 このタルタルソースは、火を使っていません。 つまり、CPUの処理を受けません。 にもかかわらず、お皿に載せられます。 これがDMAです。 このたとえでおわかりでしょうか。

gold19
質問者

お礼

早速の御回答ありがとうございます。大変わかりやすく、料理の過程のお話しでコンピュータの流れがイメージ出来ました。ありがとうございました。

その他の回答 (5)

回答No.6

補足です > 物理メモリ メイン・メモリ > メモリ空間 メモリ領域のアドレス空間 例えばメイン・メモリが2G(ギガ)バイトだったとして、ハードディスクに仮想メモリを4G(ギガ)バイト設定すると、合計6G(ギガ)バイトのアドレス空間が使えるようになります。

gold19
質問者

お礼

早速の御回答ありがとうございます。理解しました。これからも勉強していきますので宜しくお願い致します。ありがとうございました。

回答No.5

> 仮想記憶、仮想メモリ、ページング 仮想メモリ 【 virtual memory 】 仮想記憶 / バーチャルメモリー http://e-words.jp/w/%E4%BB%AE%E6%83%B3%E3%83%A1%E3%83%A2%E3%83%AA.html > 仮想メモリとは、OSによるメモリ管理の方式の一つで、メモリ領域に物理的なアドレス(番地)とは別に仮想的なアドレスを割り当てて管理する方式。細切れのメモリ空間を連結して一つの連続した空間として利用したり、補助記憶装置(ハードディスクなど)上にも仮想的なメモリ領域を確保することで、物理メモリの容量を超えてメモリ空間を利用することができる。 > OSは物理メモリ上の領域と仮想メモリ上の領域の対応付け(マッピング)を行い、MMU(Memory Management Unit)と呼ばれる専用のハードウェアによって相互のアドレスの変換を行う。物理メモリ空間でのアドレスを物理アドレスあるいは実アドレス、仮想メモリ空間でのアドレスを仮想アドレスあるいは論理アドレスと呼ぶ。 > 仮想メモリの管理を一定の大きさの領域を単位として行う方式をページング方式、プログラムやデータのまとまりごとに不定長の大きさで管理する方式をセグメント方式と呼ぶ。現代ではほとんどの場合ページング方式が用いられる。 ページング方式の仮想メモリでは、ページと呼ばれる決まった大きさ(4KBを採用しているシステムが多い)にメモリ領域を分割し、ページごとに仮想メモリとメインメモリを対応付けさせる。 仮想メモリとは http://www.pc-master.jp/words/k-memory.html > 仮想メモリとは、ハードディスクの一部の領域をメモリーの一部として利用するさいに作成されるハードディスク上の領域、ファイルのこと > バーチャルメモリ、ページファイル、ページングファイルともいいます。 例えばメイン・メモリが2G(ギガ)バイトだったとして、ハードディスクに仮想メモリを4G(ギガ)バイト設定すると、OSは合計6G(ギガ)バイトのメモリが使えるようになります。 ただし、CPUはハードディスク上の仮想メモリに直接アクセスできないので、ハードディスク上の仮想メモリのデータをアクセスしたい場合は、メイン・メモリに空きが無い場合は、メイン・メモリの一部のデータをハードディスク上の仮想メモリに退避(スワップアウト)し、アクセスしたいハードディスク上の仮想メモリのデータをメイン・メモリに戻し(スワップイン)てやりアクセスするので、デメリトは動作が遅くなる、メリットはメイン・メモリ以上のメモリ領域が使える。 > スワップ、スワッピング スワップ 【 swap 】 メモリスワップ / memory swap http://e-words.jp/w/%E3%82%B9%E3%83%AF%E3%83%83%E3%83%97.html > スワップとは、ハードディスクなどの補助記憶装置を利用して使用可能なメモリ容量を増やすOSの機能の一つ。 > ハードディスク上に「スワップファイル」あるいは「スワップ領域」と呼ばれる専用の保存領域を用意して、メモリ容量が不足してきたら現在使われていないプログラム(プロセス)を一時的にスワップファイルに書き出して消去し、占有していたメモリを開放する。メモリからハードディスクに退避する動作を「スワップアウト」(swap-out)、ハードディスクからメモリに書き戻す動作を「スワップイン」(swap-in)という。 > また、ページング方式の仮想記憶(仮想メモリ)において、物理メモリと補助記憶との間でページの入れ替えを行うこともスワップあるいはページスワップということがある。前述のプロセス単位のスワップは本来は仮想記憶に含めないが、ページの入れ替えをスワップと呼ぶことや、Windowsではスワップ機能を「仮想メモリ」と称していることなどから、よく混同されている。 説明が難しいですが、こちらは処理がプロセス単位(プロセスを丸ごと)であり、仮想メモリではないと言うことです。 プログラムとプロセスでは意味が違いますが、喩えとしてプログラム単位でハードディスクに保存するみたいなイメージです。 ちなみに仮想メモリはメモリのページ単位の処理になります(仮想メモリの1ページは一般的なWindowsでは4k(キロ)バイトのようです)。 > ガベージコレクション (以前、使われていて)使われなくなったメモリ領域を回収し、それをメモリの空き領域として利用可能にする。 > デフラグメンテーション デフラグ 【 defrag 】 デフラグメンテーション / defragmentation / ディスク最適化 / ディスクデフラグ http://e-words.jp/w/%E3%83%87%E3%83%95%E3%83%A9%E3%82%B0.html > デフラグとは、ハードディスクなどのストレージ装置(外部記憶装置)のデータを記録した領域を再配置し、各ファイルの記憶領域や空き領域がなるべく連続した状態にすること。また、そのような処理を行うソフトウェア。 > ストレージは通常ある決まった大きさ(数キロバイト程度が多い)の領域を単位に管理され、ファイルなどを保存する際には空いている領域から必要なデータ量の領域を確保して記録する。使用開始当初はほとんどが空き領域のため、端から連続した領域に保存されていくが、書き込みと削除を繰り返していくと次第に細かな空き領域が増え、大きなファイルを保存する際に少しずつ分割されて様々な領域にまたがって飛び飛びに記録されるようになる。 > ハードディスクなど回転する円盤を利用した記憶装置はデータの配置が物理的に連続している時に最も高速に読み書きできるため、このようにファイルの保存領域や空き領域の断片化(fragmentation:フラグメンテーション)が進むと次第に性能が劣化してくる。また、同じ量のデータの読み書きに、より多くのディスクの回転やヘッダの移動を要するため、そのまま使用を継続すると耐用年数が低下するとも言われる。 デフラグはこのようなハードディスク領域の断片化(不連続化)を解消するために行われる操作で、記録されたデータを端から順番に連続した並びになるよう再配置し、ハードディスク上のデータを高速に読み書きできるようにする。 > メモリコンパクション メモリコンパクション 【 memory compaction 】 http://e-words.jp/w/%E3%83%A1%E3%83%A2%E3%83%AA%E3%82%B3%E3%83%B3%E3%83%91%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3.html > メモリコンパクションとは、OSや言語処理系などが持つ機能の一つで、メモリ(メインメモリ、主記憶装置)上の空き領域の断片化を解消し、連続した広い空き領域に再編すること。 > プログラムを長時間実行していると、コードやデータの生成と破棄のためにメモリ領域の確保と解放が繰り返され、確保済みの領域が飛び飛びの場所に存在するようになる。メモリコンパクション処理が実行されると、これを移動して隙間なく再配置し、空き領域を連続した状態にする。 つまり、原理はデフラグと同じで対象がメモリーかハードディスクかの違いですね。 > スプーリング スプール 【 spool 】 Simultaneous Peripheral Operations On-Line / スプーリング / spooling http://e-words.jp/w/%E3%82%B9%E3%83%97%E3%83%BC%E3%83%AB.html > スプールとは、処理能力に大きな差のある装置やソフトウェア、通信回線などを協調して動作させる際に、速い側の待ち時間を短くするために、処理すべきデータを一時的に記憶装置に保存し、遅い側に少しずつ転送して処理させる仕組み。また、そのための専用の保存領域。

noname#242220
noname#242220
回答No.3

PCの場合物理メモリと論理メモリが有り、仕様上論理メモリを『仮想メモリ(仮想記憶)』と称します。 *最初にデータを保管するのは仮想メモリ上(HD等) デフラグはHDのデータを整理整頓する事。 ガベレージコレクションはメモリの未使用領域を整理する事。 スワッピングは使用データをHDからメモリに交換する事。 PCではアプリ、データを一度HDに展開して必要なデータを仮想メモリに読み込む ページングはメモリ全体をある一定の量で分割して管理する手順 *論理メモリと物理メモリが有るのはPCだけです。 登場した時の仕様を拡張する時に必要になった。 Macはデータ自体が分割されてますので、物理メモリのメモリコントローラで十分なのです。

gold19
質問者

お礼

早速の御回答ありがとうございます。理解しました。物理メモリ、論理メモリの話し、大変勉強になりました。ありがとうございました。

回答No.2

 ガベージコレクション=半導体メモリの領域で要らなくなったものを捨てて整理する デフラグメンテーション=HDD(ハードディスク)の断片化を解消してデーターをシーケンシャルに近づける  メモリコンパクション=メモリをコンパクトにする=断片化を解消して、すみに寄せ集める  スプーリング=データーをプールする=応答が遅いデバイスに対してCPUの監視をやめて、DMA(Direct Memory Access=CPU内部の演算子を使わないメモリ管理専用の部分、Core 2Duoの時はチップセット内にあった)でのデーター転送 DMA=「プログラムされた機械語の命令群の実行によってアキュムレータなどを介する方法によらず、メモリとメモリまたはメモリとI/Oデバイスの間で直接データを転送することである。」  スワッピング=交換=メモリ上の使用頻度の少ない物をHDD上の使用頻度が少し高いものと入れ替えて高速化する  ページング=仮想記憶の考え方の一つ、本のページをめくるように小さな単位のエリアを切り替えて使うやり方、住所で言う何丁目何番地という感じに割り振られた座標をページとして使う、物理メモリのオーバーフローの対処法である、仮想メモリのブロック化とも言える。

gold19
質問者

お礼

早速の御回答ありがとうございます。理解しました。DMAという用語も覚えることが出来ました。ありがとうございました。

  • ubku
  • ベストアンサー率37% (227/608)
回答No.1

1.ガベージコレクションとはJava等で実装されている、未使用になったメモリ領域を回収し再利用できるようにする機能の事です。デフラグメンテーションとはディスクの断片化を解消することです。メモリコンパクションとはメモリの断片化を解消することです。 2.スプーリングはプリンタなどの遅い機器を扱う場合にデータをメモリ上に一時保管することです。スワッピングは、メモリ上で使わなくなってきたデータを、ディスク上の必要なデータと交換することです。 3.ページングはスワッピングをある決まった大きさで行う事です。

gold19
質問者

お礼

早速の御回答ありがとうございます。理解しました。メモリとディスクの断片化を区別していませんでした。ありがとうございました。

関連するQ&A