Jump to content 日本-日本語

製品 >  ソフトウェア >  HP- UX Developer Edge

HP-UXメモリ管理 ホワイト・ペーパー バージョン1.4

物理メモリと仮想メモリの概要
HP-UX/Integrityサーバー お問い合せ
コンテンツに進む

物理メモリと仮想メモリの概要


HP-UXのメモリ管理システムは、スレッドとプロセスに対してメモリ・リソースを安全で効率的に使用できるように設計されています。このシステムの機能は次のとおりです。

  • 各プロセスに対して完全なアドレス空間を提供し、別のプロセスすべてからそのアドレス空間を保護する。
  • 物理メモリよりも大きなサイズのプログラムを実行できる。
  • 物理メモリに配置するスレッドとプロセスを決め、スレッドとプロセスをメモリに出し入れする。
  • スレッドまたはプロセスの仮想アドレス空間のうち、物理メモリ内にない部分を管理し、物理空間に配置すべきアドレス空間部分を決める。
  • プロセス間での効率的なメモリ共有を可能にする。
あらゆるプロセス(実行中のプログラム)またはプロセス内の実行スレッドのデータと命令は、実行時に物理メモリに存在し、CPUから使用可能になっている必要があります。

プロセスを実行するために、カーネルがプロセスごとの仮想アドレス空間を作成し、セットアップします。この仮想アドレス空間の一部が物理メモリにマッピングされます。仮想メモリによって、ユーザー・プロセスの合計サイズが物理メモリを超えることができます。HP-UXでは「デマンド・ページング(demand paging)」が採用されているため、必要な場合のみ(つまり「オン・デマンド(on demand)」で)仮想ページをメイン・メモリにロードし、最近使用されていないプロセスのアドレス空間部分を追い出すことで、スレッドとプロセスを実行できます。

「メモリ管理(memory management)」という言葉は、物理メモリと仮想メモリを管理し、システムのリソースをユーザー・プロセスとシステム・プロセスで効率的に共有できるようにする規則を意味します。

このシステムでは、ページアウトと非アクティブ化を組み合わせて物理メモリを管理します。ページングでは、最近参照されていないページがメイン・メモリからディスクに時々書き込まれます。ページとは、一連のアクセス属性をもつ仮想アドレスにマッピングできる物理メモリの最小単位です。負荷の高いシステムでは、参照されていないページがメモリの大部分を占める場合があります。

非アクティブ化は、空き物理メモリ・プールをシステムで十分に維持できない場合に行われます。プロセス全体が非アクティブ化されると、そのプロセスに関連のあるページが参照されないため、二次記憶領域に書き出すことができます。非アクティブ化されたプロセスは実行できず、そのデータを参照できません。

二次記憶領域は、物理メモリを補完します。メモリ管理システムは使用可能メモリをモニターし、使用可能メモリが少ない場合、プロセスまたはスレッドをスワップ・デバイスと呼ばれる二次記憶領域に書き出します。プロセスの実行に必要になったデータがスワップ・デバイスから物理メモリに読み込まれます。

ページ


ページは、データとコードを保存するために割り当てることができる連続した物理メモリ・ブロックの最小単位です。また、ページはメモリ保護の最小単位でもあります。すべてのHP-UXシステムのページ・サイズは4KBです。

PA-RISCシステムでは、物理メモリの各ページがPPN(Physical Page Number:物理ページ番号)でアドレス指定されます。PPNは、物理アドレスをソフトウェア上で物理ページ番号に「変換」したものです。特別な場合を除き、ページへのアクセス(およびページに含まれるデータへのアクセス)は仮想アドレスによって行われます(仮想変換をオフ(DビットとIビットをオフ)にしなければならない場合、ページはその絶対アドレスによってアクセスされます)。

仮想アドレス


プログラムのコンパイル時に、コンパイラがコードの仮想アドレスを生成します。仮想アドレスは、メモリ内の位置を表します。コンパイルされたコードを実行するために、仮想アドレスを物理アドレス(メモリ内の物理ページの位置)にマッピングする必要があります。ユーザー・プログラムでは、仮想アドレスのみを使用します。

カーネルとハードウェアが、CPUがメモリにプロセスを配置できるようにこれらの仮想アドレスと物理アドレスのマッピングを調整します。これを「アドレス変換(address translation)」と呼びます。

PA-RISCアーキテクチャはセグメントに区分されています。つまり、完全な仮想アドレスはスペースID(SID)とそのスペース内のオフセットから構成されます。

このオフセットは32ビットまたは64ビット幅です。以前のPA-RISCプロセッサー(PA-RISC 2.0以前)は、32ビットのオフセットのみサポートしています。

これに対して、カーネルでは、完全なスペースとオフセットが扱われます。

カーネルにとって、PA-RISCプロセッサー上で実行されるすべてのプロセスは、スペースとオフセットの両方から構成されるグローバル仮想アドレス(GVA:Global Virtual Address)をもつ単一のグローバル仮想アドレス空間を共有します(GVAは、64ビット(幅)モードで実行されるPA-RISC 2.0プロセッサー上では96ビットであり、以前のプロセッサー上ではそれよりも小さくなっています)。このグローバル仮想アドレス空間もカーネルで共有されます。

どのプロセスでも、任意のグローバル仮想アドレスの作成と読み取りまたは書き込みの試行が可能ですが、カーネルはページ単位のアクセス制御機構を利用してプロセス間の余分な干渉を防止します。

仮想ページが物理メモリに「ページング(paging)」される場合、物理メモリ・アロケータによって空き物理ページがその仮想ページに割り当てられます。これらのページは、その使用履歴に応じてメモリ全体にランダムに分散されることがあります。仮想ページのロード先をプロセッサーに通知するためには、変換が必要です。仮想アドレスを物理アドレスに変換するプロセスを仮想アドレス変換と呼びます。

潜在的に仮想アドレス空間が物理アドレス空間よりもはるかに大きい場合があります。仮想メモリ・システムでは、CPUが使用可能な物理メモリよりもはるかに大きなプログラムを実行できるため、より多くのプログラムを同時に実行できます。

デマンド・ページング


プロセスを実行するために、データやテキストなどのすべての構造をセットアップする必要があります。ただし、プロセスが「要求する(demand)」までページはメモリにロードされません。このため、デマンド・ページングという言葉が使われます。デマンド・ページングでは、プロセスで実行する必要がある時点でプロセスのさまざまな部分が物理メモリにロードされます。一度にメモリで必要とされるのは、プロセス全体ではなくプロセスのワーキング・セットのみです。実際にページにアクセスするときに、変換が行われます。
最初のページへ 前のページへ 次のページへ

お問い合わせ

ご購入前のお問い合わせ


ご購入後のお問い合わせ

HPEサポートセンター
製品の標準保証でご利用いただける無償のサービスです。

ショールーム

ショールーム 導入をご検討のお客様へ
業務アプリケーションの継続・標準化・開発性とシステム担当者様、システム開発者様が抱える悩み・疑問に対する解決策実体験して頂けます。
印刷用画面へ
プライバシー ご利用条件・免責事項