(57)【要約】【課題】二次記憶の使用効率およびページアウトの処理性能を低下させず、かつ、ページ記述子を拡大せずに二次記憶容量を拡大する。【解決手段】ジョブ共有空間についてはジョブごとに、プロセス固有空間についてはプロセスごとに二次記憶アドレスを多重化し、ジョブ開始またはプロセス開始において、ジョブ共有空間またはプロセス固有空間に対して、仮想二次記憶アドレスを実際の二次記憶アドレスに変換する仮想二次記憶アドレス変換テーブル４００を生成し、ジョブ共有空間またはプロセス固有空間に属するページについて二次記憶８００の割当・解放を行い、ジョブ共有空間またはプロセス固有空間に属する、二次記憶８００が割り当てられたページについて仮想二次記憶アドレス４１０を実際の二次記憶アドレス４２０に変換し、ページインおよびページアウトを行う。【選択図】        図１
2005004575.tif 000002
【特許請求の範囲】
【請求項１】
プロセスごとに固有の仮想記憶空間を持つ多重仮想記憶を採用する多重仮想記憶システムであって、仮想記憶空間の一部を同一ジョブの全てのプロセスまたはシステムの全てのプロセスが共有し、仮想記憶空間の内容を主記憶および二次記憶に持つ多重仮想記憶システムの二次記憶管理方式において、
仮想記憶空間のページごとに１つずつ存在し、対応するページが主記憶にあるか二次記憶にあるかを識別するページ不在情報を備え、ページが主記憶に存在する場合には主記憶アドレスを持ち、ページが二次記憶に存在する場合には仮想二次記憶ファイル番号およびスロット番号からなる仮想二次記憶アドレスを持つページ記述子の配列であるページテーブルと、
プロセスごとに１つずつ存在し、仮想二次記憶ファイル番号を二次記憶ファイル番号に対応づける仮想二次記憶アドレス変換テーブルと、
プロセスごとに１つずつ存在し、該当プロセスの仮想二次記憶アドレス変換テーブルへのポインタを記憶するプロセス管理テーブルと、
二次記憶ファイルごとに１つずつ存在し、少なくともファイル使用量，先頭スロットのディスクアドレス，スロット当たりのセクタ数およびスロット割り当て管理情報を記憶する二次記憶ファイル管理テーブルと
を有することを特徴とする多重仮想記憶システムの二次記憶管理方式。
【請求項２】
プロセスごとに固有の仮想記憶空間を持つ多重仮想記憶を採用する多重仮想記憶システムであって、仮想記憶空間の一部を同一ジョブの全てのプロセスまたはシステムの全てのプロセスが共有し、仮想記憶空間の内容を主記憶および二次記憶に持つ多重仮想記憶システムの二次記憶管理方式において、
仮想記憶空間のページごとに１つずつ存在し、対応するページが主記憶にあるか二次記憶にあるかを識別するページ不在情報を備え、ページが主記憶に存在する場合には主記憶アドレスを持ち、ページが二次記憶に存在する場合には仮想二次記憶ファイル番号およびスロット番号からなる仮想二次記憶アドレスを持つページ記述子の配列であるページテーブルと、
システム共有空間，ジョブ共有空間およびプロセス固有空間ごとに１つずつ存在し、仮想二次記憶ファイル番号を二次記憶ファイル番号に対応づける仮想二次記憶アドレス変換テーブルと、
プロセスごとに１つずつ存在し、システム共有空間，ジョブ共有空間およびプロセス固有空間ごとの仮想二次記憶アドレス変換テーブルへのポインタを記憶するプロセス管理テーブルと、
二次記憶ファイルごとに１つずつ存在し、少なくともファイル使用量，先頭スロットのディスクアドレス，スロット当たりのセクタ数およびスロット割り当て管理情報を記憶する二次記憶ファイル管理テーブルと
を有することを特徴とする多重仮想記憶システムの二次記憶管理方式。
【請求項３】
プロセスごとに固有の仮想記憶空間を持つ多重仮想記憶を採用する多重仮想記憶システムであって、仮想記憶空間の一部を同一ジョブの全てのプロセスまたはシステムの全てのプロセスが共有し、仮想記憶空間の内容を主記憶および二次記憶に持つ多重仮想記憶システムの二次記憶管理方式において、
セグメント番号，ページ番号およびページ内相対アドレスからなる論理アドレスと、
ページテーブルの先頭の主記憶アドレスおよび共有レベルからなるセグメント記述子と、
仮想記憶空間のページごとに１つずつ存在し、対応するページが主記憶にあるか二次記憶にあるかを識別するページ不在情報を備え、ページが主記憶に存在する場合には主記憶アドレスを持ち、ページが二次記憶に存在する場合には仮想二次記憶ファイル番号およびスロット番号からなる仮想二次記憶アドレスを持つページ記述子の配列であるページテーブルと、
主記憶のページごとに１つずつ存在し、該ページが割り当てられている仮想記憶空間のページの論理アドレス，ならびに仮想記憶空間のページに割り当てられている二次記憶の仮想二次記憶ファイル番号およびスロット番号からなる仮想二次記憶アドレスを記憶する主記憶管理エントリの配列である主記憶管理テーブルと、
プロセスごとに１つずつ存在し、仮想二次記憶ファイル番号を二次記憶ファイル番号に対応づける仮想二次記憶アドレス変換テーブルと、
プロセスごとに１つずつ存在し、該当プロセスの仮想二次記憶アドレス変換テーブルへのポインタを記憶するプロセス管理テーブルと、
二次記憶ファイルごとに１つずつ存在し、少なくともファイル使用量，先頭スロットのディスクアドレス，スロット当たりのセクタ数およびスロット割り当て管理情報を記憶する二次記憶ファイル管理テーブルと
を有することを特徴とする多重仮想記憶システムの二次記憶管理方式。
【請求項４】
プロセスごとに固有の仮想記憶空間を持つ多重仮想記憶を採用する多重仮想記憶システムであって、仮想記憶空間の一部を同一ジョブの全てのプロセスまたはシステムの全てのプロセスが共有し、仮想記憶空間の内容を主記憶および二次記憶に持つ多重仮想記憶システムの二次記憶管理方式において、
セグメント番号，ページ番号およびページ内相対アドレスからなる論理アドレスと、
ページテーブルの先頭の主記憶アドレスおよび共有レベルからなるセグメント記述子と、
仮想記憶空間のページごとに１つずつ存在し、対応するページが主記憶にあるか二次記憶にあるかを識別するページ不在情報を備え、ページが主記憶に存在する場合には主記憶アドレスを持ち、ページが二次記憶に存在する場合には仮想二次記憶ファイル番号およびスロット番号からなる仮想二次記憶アドレスを持つページ記述子の配列であるページテーブルと、
主記憶のページごとに１つずつ存在し、該ページが割り当てられている仮想記憶空間のページの論理アドレス，ならびに仮想記憶空間のページに割り当てられている二次記憶の仮想二次記憶ファイル番号およびスロット番号からなる仮想二次記憶アドレスを記憶する主記憶管理エントリの配列である主記憶管理テーブルと、
システム共有空間，ジョブ共有空間およびプロセス固有空間ごとに１つずつ存在し、仮想二次記憶ファイル番号を二次記憶ファイル番号に対応づける仮想二次記憶アドレス変換テーブルと、
プロセスごとに１つずつ存在し、システム共有空間，ジョブ共有空間およびプロセス固有空間ごとの仮想二次記憶アドレス変換テーブルへのポインタを記憶するプロセス管理テーブルと、
二次記憶ファイルごとに１つずつ存在し、少なくともファイル使用量，先頭スロットのディスクアドレス，スロット当たりのセクタ数およびスロット割り当て管理情報を記憶する二次記憶ファイル管理テーブルと
を有することを特徴とする多重仮想記憶システムの二次記憶管理方式。
【請求項５】
プロセスごとに固有の仮想記憶空間を持つ多重仮想記憶を採用する多重仮想記憶システムであって、仮想記憶空間の一部を同一ジョブの全てのプロセスまたはシステムの全てのプロセスが共有し、仮想記憶空間の内容を主記憶および二次記憶に持つ多重仮想記憶システムの二次記憶管理方法において、
ジョブ共有空間についてはジョブごとに、プロセス固有空間についてはプロセスごとに、二次記憶アドレスを仮想二次記憶アドレスとして多重化し、プロセス開始において、仮想二次記憶アドレスを二次記憶アドレスに変換する仮想二次記憶アドレス変換テーブルを生成し、
仮想二次記憶アドレス変換テーブルを用いて、二次記憶の割当，解放，ページインおよびページアウトを行うことを特徴とする多重仮想記憶システムの二次記憶管理方法。
【請求項６】
プロセスごとに固有の仮想記憶空間を持つ多重仮想記憶を採用する多重仮想記憶システムであって、仮想記憶空間の一部を同一ジョブの全てのプロセスまたはシステムの全てのプロセスが共有し、仮想記憶空間の内容を主記憶および二次記憶に持つ多重仮想記憶システムの二次記憶管理方法において、
ジョブ共有空間についてはジョブごとに、プロセス固有空間についてはプロセスごとに、二次記憶アドレスを仮想二次記憶アドレスとして多重化し、システム開始，ジョブ開始およびプロセス開始において、それぞれ、システム共有空間，ジョブ共有空間およびプロセス固有空間に対して仮想二次記憶アドレスを二次記憶アドレスに変換する仮想二次記憶アドレス変換テーブルを生成し、
ページの共有レベルに対応する仮想二次記憶アドレス変換テーブルを用いて、二次記憶の割当，解放，ページインおよびページアウトを行うことを特徴とする多重仮想記憶システムの二次記憶管理方法。
【請求項７】
システム共有二次記憶ファイルを決定するシステム立ち上げ処理と、
ジョブ共有二次記憶ファイルの個数とプロセス固有二次記憶ファイルの個数とを決定し、二次記憶ファイル管理テーブルを参照し、システム共有二次記憶ファイルを除いて、使用量の少ない二次記憶ファイルから順にジョブ共有二次記憶ファイルとして割り当てるジョブ開始処理と、
二次記憶ファイル管理テーブルを参照して、システム共有二次記憶ファイルを除いて、使用量の少ない二次記憶ファイルから順にプロセス固有二次記憶ファイルとして割り当て、開始するプロセスに対応する仮想二次記憶アドレス変換テーブルを生成して仮想二次記憶ファイル番号と二次記憶ファイル番号との対応を記憶し、仮想二次記憶アドレス変換テーブルへのポインタをプロセス管理テーブルに記憶するプロセス開始処理と、
該当ページのプロセス識別子および論理アドレスのセグメント番号によりページテーブルを決定し、論理アドレスのページ番号によりページテーブルからページ記述子を取り出し、ページが主記憶に存在する場合は主記憶アドレスを参照して該当ページにアクセスし、ページが二次記憶に存在する場合はハードウエアの例外処理機構からページ不在例外処理が呼び出され、該当ページに割り当てる主記憶を取得し、対応する主記憶管理エントリにページ記述子に記憶されていた仮想二次記憶アドレスを記憶し、ページ記述子に取得した主記憶アドレスを記憶し、該当プロセスの仮想二次記憶アドレス変換テーブルを参照して、ページ記述子に記憶されていた仮想二次記憶ファイル番号を二次記憶ファイル番号に変換し、該二次記憶ファイル番号に対応する二次記憶ファイル管理テーブルを参照して、ページ記述子に記憶されていたスロット番号から、該当ページが存在するスロットの二次記憶装置アドレスを計算し、二次記憶から主記憶にページの内容を読み出し、ページ記述子のページ不在情報をオフにするページイン処理と、
ページから主記憶を取り上げる場合は、ページ記述子から主記憶アドレスを取得し、対応する主記憶管理エントリに記憶されている仮想二次記憶アドレスを得、該当ページに二次記憶が割り当てられていない場合は、事前に二次記憶割当処理を呼び出し、該当プロセスの仮想二次記憶アドレス変換テーブルを参照して、主記憶管理エントリに記憶されていた仮想二次記憶ファイル番号を二次記憶ファイル番号に変換し、該二次記憶ファイル番号に対応する二次記憶ファイル管理テーブルを参照して主記憶管理エントリに記憶されていたスロット番号から該当ページに割り当てられているスロットの二次記憶装置アドレスを計算し、ページ記述子のページ不在情報をオンにして、主記憶から二次記憶装置にページの内容を書き込み、ページ記述子に仮想二次記憶アドレスを記憶し、該当ページに割り当てられていた主記憶を解放するページアウト処理と、
該当プロセスの仮想二次記憶アドレス変換テーブルを参照して、該当ページの共有レベルに対応する仮想二次記憶ファイル番号を１つ選択し、選択した仮想二次記憶ファイル番号を二次記憶ファイル番号に変換し、該二次記憶ファイル番号に対応する二次記憶ファイル管理テーブルを参照して該当ページに割り当てる空きスロットを取得し、二次記憶ファイル管理テーブルのスロット割り当て管理情報を更新し、仮想二次記憶ファイル番号と割り当てたスロットのスロット番号とから仮想二次記憶アドレスを計算し、該当ページが主記憶にあるか否かを判断し、該当ページが主記憶にある場合には仮想二次記憶アドレスを主記憶管理エントリに記憶し、該当ページが二次記憶にある場合には仮想二次記憶アドレスをページ記述子に記憶する二次記憶割当処理と、
該当ページが主記憶にあるか否かを判断し、該当ページが主記憶にある場合には主記憶管理エントリから仮想二次記憶アドレスを取得し、該当ページが二次記憶にある場合にはページ記述子から仮想二次記憶アドレスを取得し、該当プロセスの仮想二次記憶アドレス変換テーブルを参照して仮想二次記憶ファイル番号を二次記憶ファイル番号に変換し、該二次記憶ファイル番号に対応する二次記憶ファイル管理テーブルに対して、前記スロット番号が示すスロットを解放し、二次記憶ファイル管理テーブルのスロット割り当て管理情報を更新し、該当ページが主記憶にあるか否かを判断し、該当ページが主記憶にある場合には、主記憶管理エントリに記憶されている仮想二次記憶アドレスを零値に更新し、該当ページに主記憶が割り当てられていない場合は、ページ記述子に記憶されている仮想二次記憶アドレスを零値に更新する二次記憶解放処理と
を含むことを特徴とする多重仮想記憶システムの二次記憶管理方法。
【請求項８】
システム共有二次記憶ファイルを決定し、システム共有空間に対応する仮想二次記憶アドレス変換テーブルを生成し、仮想二次記憶ファイル番号と二次記憶ファイル番号との対応を記憶するシステム立ち上げ処理と、
二次記憶ファイル管理テーブルを参照し、システム共有二次記憶ファイルを除いて、使用量の少ない二次記憶ファイルから順に、ジョブ共有二次記憶ファイルとして割り当て、ジョブ共有空間に対応する仮想二次記憶アドレス変換テーブルを生成し、仮想二次記憶ファイル番号と二次記憶ファイル番号との対応を記憶するジョブ開始処理と、
二次記憶ファイル管理テーブルを参照し、システム共有二次記憶ファイルを除いて、使用量の少ない二次記憶ファイルから順にプロセス固有二次記憶ファイルとして割り当て、プロセス固有空間に対応する仮想二次記憶アドレス変換テーブルを生成し、仮想二次記憶ファイル番号と二次記憶ファイル番号との対応を記憶し、システム共有空間，ジョブ共有空間およびプロセス固有空間それぞれの仮想二次記憶アドレス変換テーブルへのポインタをプロセス管理テーブルに記憶するプロセス開始処理と、
該当ページのプロセス識別子および論理アドレスのセグメント番号によりページテーブルを決定し、論理アドレスのページ番号によりページテーブルからページ記述子を取り出し、ページが主記憶に存在する場合は主記憶アドレスを参照して該当ページにアクセスし、ページが二次記憶に存在する場合はハードウエアの例外処理機構からページ不在例外処理が呼び出され、該当ページに割り当てる主記憶を取得し、対応する主記憶管理エントリにページ記述子に記憶されていた仮想二次記憶アドレスを記憶し、ページ記述子に取得した主記憶アドレスを記憶し、空間の共有レベルに対応する仮想二次記憶アドレス変換テーブルを参照して、ページ記述子に記憶されていた仮想二次記憶ファイル番号を二次記憶ファイル番号に変換し、該二次記憶ファイル番号に対応する二次記憶ファイル管理テーブルを参照して、ページ記述子に記憶されていたスロット番号から、該当ページが存在するスロットの二次記憶装置アドレスを計算し、二次記憶から主記憶にページの内容を読み出し、ページ記述子のページ不在情報をオフにするページイン処理と、
ページから主記憶を取り上げる場合は、ページ記述子から主記憶アドレスを取得し、対応する主記憶管理エントリに記憶されている仮想二次記憶アドレスを得、該当ページに二次記憶が割り当てられていない場合は、事前に二次記憶割当処理を呼び出し、空間の共有レベルに対応する仮想二次記憶アドレス変換テーブルを参照して、主記憶管理エントリに記憶されていた仮想二次記憶ファイル番号を二次記憶ファイル番号に変換し、該二次記憶ファイル番号に対応する二次記憶ファイル管理テーブルを参照して主記憶管理エントリに記憶されていたスロット番号から該当ページに割り当てられているスロットの二次記憶装置アドレスを計算し、ページ記述子のページ不在情報をオンにして、主記憶から二次記憶装置にページの内容を書き込み、ページ記述子に仮想二次記憶アドレスを記憶し、該当ページに割り当てられていた主記憶を解放するページアウト処理と、
該当ページの共有レベルに対応する仮想二次記憶アドレス変換テーブルから仮想二次記憶ファイル番号を１つ選択し、選択した仮想二次記憶ファイル番号を二次記憶ファイル番号に変換し、該二次記憶ファイル番号に対応する二次記憶ファイル管理テーブルを参照して該当ページに割り当てる空きスロットを取得し、二次記憶ファイル管理テーブルのスロット割り当て管理情報を更新し、仮想二次記憶ファイル番号と割り当てたスロットのスロット番号とから仮想二次記憶アドレスを計算し、該当ページが主記憶にあるか否かを判断し、該当ページが主記憶にある場合には仮想二次記憶アドレスを主記憶管理エントリに記憶し、該当ページが二次記憶にある場合には仮想二次記憶アドレスをページ記述子に記憶する二次記憶割当処理と、
該当ページが主記憶にあるか否かを判断し、該当ページが主記憶にある場合には主記憶管理エントリから仮想二次記憶アドレスを取得し、該当ページが二次記憶にある場合にはページ記述子から仮想二次記憶アドレスを取得し、空間の共有レベルに対応する仮想二次記憶アドレス変換テーブルを参照して仮想二次記憶ファイル番号を二次記憶ファイル番号に変換し、該二次記憶ファイル番号に対応する二次記憶ファイル管理テーブルに対して、前記スロット番号が示すスロットを解放し、二次記憶ファイル管理テーブルのスロット割り当て管理情報を更新し、該当ページが主記憶にあるか否かを判断し、該当ページが主記憶にある場合には、主記憶管理エントリに記憶されている仮想二次記憶アドレスを零値に更新し、該当ページに主記憶が割り当てられていない場合は、ページ記述子に記憶されている仮想二次記憶アドレスを零値に更新する二次記憶解放処理と
を含むことを特徴とする多重仮想記憶システムの二次記憶管理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は多重仮想記憶システムの二次記憶管理方式および方法に関し、特にプロセスごとに固有の仮想記憶空間を持つ多重仮想記憶を採用する多重仮想記憶システムの二次記憶管理方式および方法に関する。
【０００２】
【従来の技術】
一般に、仮想記憶空間は、同一の空間属性を持つセグメントに分割され、さらに、各セグメントは同一サイズのページに分割される。論理アドレス（仮想記憶空間のアドレス）から物理アドレス（主記憶または二次記憶のアドレス）への変換は、ページテーブルと呼ばれる変換テーブルによりページごとに行われる。ページテーブルは、各セグメントに１つ存在し、ヘッダとページ記述子の配列とから構成されており、セグメントの各ページに１つのページ記述子が対応している。ページ記述子には、対応するページが主記憶にあるか二次記憶にあるかを識別する情報があり、ページが二次記憶に存在する場合には二次記憶のアドレスを持つ。このため、二次記憶の容量はページ記述子のサイズに制約され、二次記憶を拡大するにはページ記述子の拡大が必要になる。ページテーブルは、空間管理テーブルの大半を占めるため、ページ記述子を拡大すると、空間管理テーブルの全体サイズが著しく増加する。
【０００３】
ページ記述子を拡大せずに二次記憶を拡大する方法として、二次記憶を複数のファイルから構成し、二次記憶のアドレスを「ファイル番号」と「ファイル内相対アドレス」とに分解し、同一セグメントのページを必ず同一ファイルに配置することによりページ記述子に「ファイル番号」を持つ必要はないようにした技術が公知である（例えば、特許文献１参照）。この方法では、「ファイル番号」をページテーブルのヘッダに持ち、「ファイル内相対アドレス」のみをページ記述子に持つことにより、ページ記述子のサイズを増やすことなく、二次記憶容量を拡大可能にしている。
【０００４】
【特許文献１】
特許第３１５７６７３号（第２〜３頁、図１）
【０００５】
【発明が解決しようとする課題】
上記従来の技術の場合、同一セグメントの全てのページが同一ファイルに括りつけられ、ページごとに異なるファイルへ移動できない。このため、以下のような問題がある。
【０００６】
メモリマップドファイル，ライブラリファイル（プログラムを仮想記憶空間へ展開した形式で記憶するファイル）などを二次記憶として持つセグメントの場合、更新されたページをファイルへ書き戻せないため、少なくとも１つのページが更新されると、そのページのページアウト処理で、セグメントの全てのページを別のファイルに移動する必要が生じる。したがって、二次記憶の使用効率とページアウトの処理性能とが著しく低下する。
【０００７】
セグメントの生成において、そのセグメントが必要とする二次記憶を全て割り当てない限り、二次記憶の割り当てられていないページのページアウト処理において、二次記憶ファイルが溢れる可能性があり、この場合、セグメントの全ページを別のファイルに移動する必要が生じる。
【０００８】
本発明の目的は、二次記憶の使用効率およびページアウトの処理性能を低下させず、かつ、ページ記述子を拡大せずに二次記憶を拡大する多重仮想記憶システムの二次記憶管理方式および方法を提供することにある。
【０００９】
【課題を解決するための手段】
本発明の多重仮想記憶システムの二次記憶管理方式は、プロセスごとに固有の仮想記憶空間を持つ多重仮想記憶を採用する多重仮想記憶システムであって、仮想記憶空間の一部を同一ジョブの全てのプロセスまたはシステムの全てのプロセスが共有し、仮想記憶空間の内容を主記憶および二次記憶に持つ多重仮想記憶システムの二次記憶管理方式において、仮想記憶空間のページごとに１つずつ存在し、対応するページが主記憶にあるか二次記憶にあるかを識別するページ不在情報を備え、ページが主記憶に存在する場合には主記憶アドレスを持ち、ページが二次記憶に存在する場合には仮想二次記憶ファイル番号およびスロット番号からなる仮想二次記憶アドレスを持つページ記述子の配列であるページテーブルと、プロセスごとに１つずつ存在し、仮想二次記憶ファイル番号を二次記憶ファイル番号に対応づける仮想二次記憶アドレス変換テーブルと、プロセスごとに１つずつ存在し、該当プロセスの仮想二次記憶アドレス変換テーブルへのポインタを記憶するプロセス管理テーブルと、二次記憶ファイルごとに１つずつ存在し、少なくともファイル使用量，先頭スロットのディスクアドレス，スロット当たりのセクタ数およびスロット割り当て管理情報を記憶する二次記憶ファイル管理テーブルとを有することを特徴とする。
【００１０】
また、本発明の多重仮想記憶システムの二次記憶管理方式は、プロセスごとに固有の仮想記憶空間を持つ多重仮想記憶を採用する多重仮想記憶システムであって、仮想記憶空間の一部を同一ジョブの全てのプロセスまたはシステムの全てのプロセスが共有し、仮想記憶空間の内容を主記憶および二次記憶に持つ多重仮想記憶システムの二次記憶管理方式において、仮想記憶空間のページごとに１つずつ存在し、対応するページが主記憶にあるか二次記憶にあるかを識別するページ不在情報を備え、ページが主記憶に存在する場合には主記憶アドレスを持ち、ページが二次記憶に存在する場合には仮想二次記憶ファイル番号およびスロット番号からなる仮想二次記憶アドレスを持つページ記述子の配列であるページテーブルと、システム共有空間，ジョブ共有空間およびプロセス固有空間ごとに１つずつ存在し、仮想二次記憶ファイル番号を二次記憶ファイル番号に対応づける仮想二次記憶アドレス変換テーブルと、プロセスごとに１つずつ存在し、システム共有空間，ジョブ共有空間およびプロセス固有空間ごとの仮想二次記憶アドレス変換テーブルへのポインタを記憶するプロセス管理テーブルと、二次記憶ファイルごとに１つずつ存在し、少なくともファイル使用量，先頭スロットのディスクアドレス，スロット当たりのセクタ数およびスロット割り当て管理情報を記憶する二次記憶ファイル管理テーブルとを有することを特徴とする。
【００１１】
さらに、本発明の多重仮想記憶システムの二次記憶管理方式は、プロセスごとに固有の仮想記憶空間を持つ多重仮想記憶を採用する多重仮想記憶システムであって、仮想記憶空間の一部を同一ジョブの全てのプロセスまたはシステムの全てのプロセスが共有し、仮想記憶空間の内容を主記憶および二次記憶に持つ多重仮想記憶システムの二次記憶管理方式において、セグメント番号，ページ番号およびページ内相対アドレスからなる論理アドレスと、ページテーブルの先頭の主記憶アドレスおよび共有レベルからなるセグメント記述子と、仮想記憶空間のページごとに１つずつ存在し、対応するページが主記憶にあるか二次記憶にあるかを識別するページ不在情報を備え、ページが主記憶に存在する場合には主記憶アドレスを持ち、ページが二次記憶に存在する場合には仮想二次記憶ファイル番号およびスロット番号からなる仮想二次記憶アドレスを持つページ記述子の配列であるページテーブルと、主記憶のページごとに１つずつ存在し、該ページが割り当てられている仮想記憶空間のページの論理アドレス，ならびに仮想記憶空間のページに割り当てられている二次記憶の仮想二次記憶ファイル番号およびスロット番号からなる仮想二次記憶アドレスを記憶する主記憶管理エントリの配列である主記憶管理テーブルと、プロセスごとに１つずつ存在し、仮想二次記憶ファイル番号を二次記憶ファイル番号に対応づける仮想二次記憶アドレス変換テーブルと、プロセスごとに１つずつ存在し、該当プロセスの仮想二次記憶アドレス変換テーブルへのポインタを記憶するプロセス管理テーブルと、二次記憶ファイルごとに１つずつ存在し、少なくともファイル使用量，先頭スロットのディスクアドレス，スロット当たりのセクタ数およびスロット割り当て管理情報を記憶する二次記憶ファイル管理テーブルとを有することを特徴とする。
【００１２】
さらにまた、本発明の多重仮想記憶システムの二次記憶管理方式は、プロセスごとに固有の仮想記憶空間を持つ多重仮想記憶を採用する多重仮想記憶システムであって、仮想記憶空間の一部を同一ジョブの全てのプロセスまたはシステムの全てのプロセスが共有し、仮想記憶空間の内容を主記憶および二次記憶に持つ多重仮想記憶システムの二次記憶管理方式において、セグメント番号，ページ番号およびページ内相対アドレスからなる論理アドレスと、ページテーブルの先頭の主記憶アドレスおよび共有レベルからなるセグメント記述子と、仮想記憶空間のページごとに１つずつ存在し、対応するページが主記憶にあるか二次記憶にあるかを識別するページ不在情報を備え、ページが主記憶に存在する場合には主記憶アドレスを持ち、ページが二次記憶に存在する場合には仮想二次記憶ファイル番号およびスロット番号からなる仮想二次記憶アドレスを持つページ記述子の配列であるページテーブルと、主記憶のページごとに１つずつ存在し、該ページが割り当てられている仮想記憶空間のページの論理アドレス，ならびに仮想記憶空間のページに割り当てられている二次記憶の仮想二次記憶ファイル番号およびスロット番号からなる仮想二次記憶アドレスを記憶する主記憶管理エントリの配列である主記憶管理テーブルと、システム共有空間，ジョブ共有空間およびプロセス固有空間ごとに１つずつ存在し、仮想二次記憶ファイル番号を二次記憶ファイル番号に対応づける仮想二次記憶アドレス変換テーブルと、プロセスごとに１つずつ存在し、システム共有空間，ジョブ共有空間およびプロセス固有空間ごとの仮想二次記憶アドレス変換テーブルへのポインタを記憶するプロセス管理テーブルと、二次記憶ファイルごとに１つずつ存在し、少なくともファイル使用量，先頭スロットのディスクアドレス，スロット当たりのセクタ数およびスロット割り当て管理情報を記憶する二次記憶ファイル管理テーブルとを有することを特徴とする。
【００１３】
一方、本発明の多重仮想記憶システムの二次記憶管理方法は、プロセスごとに固有の仮想記憶空間を持つ多重仮想記憶を採用する多重仮想記憶システムであって、仮想記憶空間の一部を同一ジョブの全てのプロセスまたはシステムの全てのプロセスが共有し、仮想記憶空間の内容を主記憶および二次記憶に持つ多重仮想記憶システムの二次記憶管理方法において、ジョブ共有空間についてはジョブごとに、プロセス固有空間についてはプロセスごとに、二次記憶アドレスを仮想二次記憶アドレスとして多重化し、プロセス開始において、仮想二次記憶アドレスを二次記憶アドレスに変換する仮想二次記憶アドレス変換テーブルを生成し、仮想二次記憶アドレス変換テーブルを用いて、二次記憶の割当，解放，ページインおよびページアウトを行うことを特徴とする。
【００１４】
また、本発明の多重仮想記憶システムの二次記憶管理方法は、プロセスごとに固有の仮想記憶空間を持つ多重仮想記憶を採用する多重仮想記憶システムであって、仮想記憶空間の一部を同一ジョブの全てのプロセスまたはシステムの全てのプロセスが共有し、仮想記憶空間の内容を主記憶および二次記憶に持つ多重仮想記憶システムの二次記憶管理方法において、ジョブ共有空間についてはジョブごとに、プロセス固有空間についてはプロセスごとに、二次記憶アドレスを仮想二次記憶アドレスとして多重化し、システム開始，ジョブ開始およびプロセス開始において、それぞれ、システム共有空間，ジョブ共有空間およびプロセス固有空間に対して仮想二次記憶アドレスを二次記憶アドレスに変換する仮想二次記憶アドレス変換テーブルを生成し、ページの共有レベルに対応する仮想二次記憶アドレス変換テーブルを用いて、二次記憶の割当，解放，ページインおよびページアウトを行うことを特徴とする。
【００１５】
さらに、本発明の多重仮想記憶システムの二次記憶管理方法は、システム共有二次記憶ファイルを決定するシステム立ち上げ処理と、ジョブ共有二次記憶ファイルの個数とプロセス固有二次記憶ファイルの個数とを決定し、二次記憶ファイル管理テーブルを参照し、システム共有二次記憶ファイルを除いて、使用量の少ない二次記憶ファイルから順にジョブ共有二次記憶ファイルとして割り当てるジョブ開始処理と、二次記憶ファイル管理テーブルを参照して、システム共有二次記憶ファイルを除いて、使用量の少ない二次記憶ファイルから順にプロセス固有二次記憶ファイルとして割り当て、開始するプロセスに対応する仮想二次記憶アドレス変換テーブルを生成して仮想二次記憶ファイル番号と二次記憶ファイル番号との対応を記憶し、仮想二次記憶アドレス変換テーブルへのポインタをプロセス管理テーブルに記憶するプロセス開始処理と、該当ページのプロセス識別子および論理アドレスのセグメント番号によりページテーブルを決定し、論理アドレスのページ番号によりページテーブルからページ記述子を取り出し、ページが主記憶に存在する場合は主記憶アドレスを参照して該当ページにアクセスし、ページが二次記憶に存在する場合はハードウエアの例外処理機構からページ不在例外処理が呼び出され、該当ページに割り当てる主記憶を取得し、対応する主記憶管理エントリにページ記述子に記憶されていた仮想二次記憶アドレスを記憶し、ページ記述子に取得した主記憶アドレスを記憶し、該当プロセスの仮想二次記憶アドレス変換テーブルを参照して、ページ記述子に記憶されていた仮想二次記憶ファイル番号を二次記憶ファイル番号に変換し、該二次記憶ファイル番号に対応する二次記憶ファイル管理テーブルを参照して、ページ記述子に記憶されていたスロット番号から、該当ページが存在するスロットの二次記憶装置アドレスを計算し、二次記憶から主記憶にページの内容を読み出し、ページ記述子のページ不在情報をオフにするページイン処理と、ページから主記憶を取り上げる場合は、ページ記述子から主記憶アドレスを取得し、対応する主記憶管理エントリに記憶されている仮想二次記憶アドレスを得、該当ページに二次記憶が割り当てられていない場合は、事前に二次記憶割当処理を呼び出し、該当プロセスの仮想二次記憶アドレス変換テーブルを参照して、主記憶管理エントリに記憶されていた仮想二次記憶ファイル番号を二次記憶ファイル番号に変換し、該二次記憶ファイル番号に対応する二次記憶ファイル管理テーブルを参照して主記憶管理エントリに記憶されていたスロット番号から該当ページに割り当てられているスロットの二次記憶装置アドレスを計算し、ページ記述子のページ不在情報をオンにして、主記憶から二次記憶装置にページの内容を書き込み、ページ記述子に仮想二次記憶アドレスを記憶し、該当ページに割り当てられていた主記憶を解放するページアウト処理と、該当プロセスの仮想二次記憶アドレス変換テーブルを参照して、該当ページの共有レベルに対応する仮想二次記憶ファイル番号を１つ選択し、選択した仮想二次記憶ファイル番号を二次記憶ファイル番号に変換し、該二次記憶ファイル番号に対応する二次記憶ファイル管理テーブルを参照して該当ページに割り当てる空きスロットを取得し、二次記憶ファイル管理テーブルのスロット割り当て管理情報を更新し、仮想二次記憶ファイル番号と割り当てたスロットのスロット番号とから仮想二次記憶アドレスを計算し、該当ページが主記憶にあるか否かを判断し、該当ページが主記憶にある場合には仮想二次記憶アドレスを主記憶管理エントリに記憶し、該当ページが二次記憶にある場合には仮想二次記憶アドレスをページ記述子に記憶する二次記憶割当処理と、該当ページが主記憶にあるか否かを判断し、該当ページが主記憶にある場合には主記憶管理エントリから仮想二次記憶アドレスを取得し、該当ページが二次記憶にある場合にはページ記述子から仮想二次記憶アドレスを取得し、該当プロセスの仮想二次記憶アドレス変換テーブルを参照して仮想二次記憶ファイル番号を二次記憶ファイル番号に変換し、該二次記憶ファイル番号に対応する二次記憶ファイル管理テーブルに対して、前記スロット番号が示すスロットを解放し、二次記憶ファイル管理テーブルのスロット割り当て管理情報を更新し、該当ページが主記憶にあるか否かを判断し、該当ページが主記憶にある場合には、主記憶管理エントリに記憶されている仮想二次記憶アドレスを零値に更新し、該当ページに主記憶が割り当てられていない場合は、ページ記述子に記憶されている仮想二次記憶アドレスを零値に更新する二次記憶解放処理とを含むことを特徴とする。
【００１６】
さらにまた、本発明の多重仮想記憶システムの二次記憶管理方法は、システム共有二次記憶ファイルを決定し、システム共有空間に対応する仮想二次記憶アドレス変換テーブルを生成し、仮想二次記憶ファイル番号と二次記憶ファイル番号との対応を記憶するシステム立ち上げ処理と、二次記憶ファイル管理テーブルを参照し、システム共有二次記憶ファイルを除いて、使用量の少ない二次記憶ファイルから順に、ジョブ共有二次記憶ファイルとして割り当て、ジョブ共有空間に対応する仮想二次記憶アドレス変換テーブルを生成し、仮想二次記憶ファイル番号と二次記憶ファイル番号との対応を記憶するジョブ開始処理と、二次記憶ファイル管理テーブルを参照し、システム共有二次記憶ファイルを除いて、使用量の少ない二次記憶ファイルから順にプロセス固有二次記憶ファイルとして割り当て、プロセス固有空間に対応する仮想二次記憶アドレス変換テーブルを生成し、仮想二次記憶ファイル番号と二次記憶ファイル番号との対応を記憶し、システム共有空間，ジョブ共有空間およびプロセス固有空間それぞれの仮想二次記憶アドレス変換テーブルへのポインタをプロセス管理テーブルに記憶するプロセス開始処理と、該当ページのプロセス識別子および論理アドレスのセグメント番号によりページテーブルを決定し、論理アドレスのページ番号によりページテーブルからページ記述子を取り出し、ページが主記憶に存在する場合は主記憶アドレスを参照して該当ページにアクセスし、ページが二次記憶に存在する場合はハードウエアの例外処理機構からページ不在例外処理が呼び出され、該当ページに割り当てる主記憶を取得し、対応する主記憶管理エントリにページ記述子に記憶されていた仮想二次記憶アドレスを記憶し、ページ記述子に取得した主記憶アドレスを記憶し、空間の共有レベルに対応する仮想二次記憶アドレス変換テーブルを参照して、ページ記述子に記憶されていた仮想二次記憶ファイル番号を二次記憶ファイル番号に変換し、該二次記憶ファイル番号に対応する二次記憶ファイル管理テーブルを参照して、ページ記述子に記憶されていたスロット番号から、該当ページが存在するスロットの二次記憶装置アドレスを計算し、二次記憶から主記憶にページの内容を読み出し、ページ記述子のページ不在情報をオフにするページイン処理と、ページから主記憶を取り上げる場合は、ページ記述子から主記憶アドレスを取得し、対応する主記憶管理エントリに記憶されている仮想二次記憶アドレスを得、該当ページに二次記憶が割り当てられていない場合は、事前に二次記憶割当処理を呼び出し、空間の共有レベルに対応する仮想二次記憶アドレス変換テーブルを参照して、主記憶管理エントリに記憶されていた仮想二次記憶ファイル番号を二次記憶ファイル番号に変換し、該二次記憶ファイル番号に対応する二次記憶ファイル管理テーブルを参照して主記憶管理エントリに記憶されていたスロット番号から該当ページに割り当てられているスロットの二次記憶装置アドレスを計算し、ページ記述子のページ不在情報をオンにして、主記憶から二次記憶装置にページの内容を書き込み、ページ記述子に仮想二次記憶アドレスを記憶し、該当ページに割り当てられていた主記憶を解放するページアウト処理と、該当ページの共有レベルに対応する仮想二次記憶アドレス変換テーブルから仮想二次記憶ファイル番号を１つ選択し、選択した仮想二次記憶ファイル番号を二次記憶ファイル番号に変換し、該二次記憶ファイル番号に対応する二次記憶ファイル管理テーブルを参照して該当ページに割り当てる空きスロットを取得し、二次記憶ファイル管理テーブルのスロット割り当て管理情報を更新し、仮想二次記憶ファイル番号と割り当てたスロットのスロット番号とから仮想二次記憶アドレスを計算し、該当ページが主記憶にあるか否かを判断し、該当ページが主記憶にある場合には仮想二次記憶アドレスを主記憶管理エントリに記憶し、該当ページが二次記憶にある場合には仮想二次記憶アドレスをページ記述子に記憶する二次記憶割当処理と、該当ページが主記憶にあるか否かを判断し、該当ページが主記憶にある場合には主記憶管理エントリから仮想二次記憶アドレスを取得し、該当ページが二次記憶にある場合にはページ記述子から仮想二次記憶アドレスを取得し、空間の共有レベルに対応する仮想二次記憶アドレス変換テーブルを参照して仮想二次記憶ファイル番号を二次記憶ファイル番号に変換し、該二次記憶ファイル番号に対応する二次記憶ファイル管理テーブルに対して、前記スロット番号が示すスロットを解放し、二次記憶ファイル管理テーブルのスロット割り当て管理情報を更新し、該当ページが主記憶にあるか否かを判断し、該当ページが主記憶にある場合には、主記憶管理エントリに記憶されている仮想二次記憶アドレスを零値に更新し、該当ページに主記憶が割り当てられていない場合は、ページ記述子に記憶されている仮想二次記憶アドレスを零値に更新する二次記憶解放処理とを含むことを特徴とする。
【００１７】
本発明の多重仮想記憶システムの二次記憶管理方式は、プロセスごとに固有の仮想記憶空間を持つ多重仮想記憶を採用する多重仮想記憶システムであって、仮想記憶空間の一部を、同一ジョブの全てのプロセスまたはシステムの全てのプロセスが共有し（システムの全てのプロセスが共有する空間をシステム共有空間、同一ジョブの全てのプロセスが共有する空間をジョブ共有空間、それ以外をプロセス固有空間と呼ぶ）、仮想記憶空間の内容を主記憶および二次記憶に持つ多重仮想記憶システムにおいて、ジョブ共有空間についてはジョブごとに、プロセス固有空間についてはプロセスごとに、二次記憶アドレスを多重化し（これを仮想二次記憶アドレスと呼ぶ）、ジョブ開始またはプロセス開始において、ジョブ共有空間またはプロセス固有空間に対して、仮想二次記憶アドレスを実際の二次記憶アドレスに変換する仮想二次記憶アドレス変換テーブルを生成し、ジョブ共有空間またはプロセス固有空間に属するページについて、対応する仮想二次記憶アドレス変換テーブルを用いて二次記憶の割当・解放を行い、ジョブ共有空間またはプロセス固有空間に属する、二次記憶が割り当てられたページについて、対応する二次記憶アドレス変換テーブルを用いて、仮想二次記憶アドレスを実際の二次記憶アドレスに変換し、ページインおよびページアウト（主記憶と二次記憶との間のページの移送）を行うことを特徴とする。
【００１８】
二次記憶の拡大がページ記述子の拡大を必要とする理由は、二次記憶アドレスがシステム一意であることに因る。そこで、本発明では、仮想記憶空間がジョブないしプロセスごとに多重であることに対応して、二次記憶アドレスを多重化することにより（これを仮想二次記憶アドレスと呼ぶ）、上記の問題を解決する。二次記憶は仮想記憶空間に割り当てられる資源であるから、仮想記憶空間（論理アドレス）が多重であることに対応して、二次記憶アドレスを多重にすることは、二次記憶拡大の自然かつ有効な方法である。
【００１９】
二次記憶アドレスを多重化するため、各々のジョブ共有空間およびプロセス固有空間に対して、仮想二次記憶アドレスを実際の二次記憶アドレスに変換するテーブル、例えば、仮想二次記憶アドレスのファイル番号を実際の二次記憶アドレスのファイル番号に対応づける変換テーブルを持つ。この場合、仮想二次記憶アドレスのファイル番号よりも、実際の二次記憶アドレスのファイル番号は多数存在し得る。
【００２０】
この方法を採用しても、依然として、仮想二次記憶アドレス（同一プロセスがアクセス可能な二次記憶容量）はページ記述子のサイズに制限されるが、二次記憶アドレス（システム全体の二次記憶容量）はこれに制限されない。
【００２１】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照して詳細に説明する。
【００２２】
図１は、本発明の第１の実施の形態に係る多重仮想記憶システムの二次記憶管理方式の構成を示すブロック図である。本実施の形態に係る多重仮想記憶システムの二次記憶管理方式は、論理アドレス１００と、セグメント記述子２００と、ページテーブル３００と、仮想二次記憶アドレス変換テーブル４００と、二次記憶ファイル管理テーブル５００と、プロセス管理テーブル６００と、主記憶管理テーブル７００とから、その主要部が構成されている。なお、図１中、符号８００は二次記憶（ディスク装置）、８１０は二次記憶ファイルをそれぞれ示す。
【００２３】
仮想記憶空間は、同一の空間属性を持つセグメントに分割され、さらに各セグメントは同一サイズのページに分割される。
【００２４】
論理アドレス１００は、セグメント番号１１０と、ページ番号１２０と、ページ内相対アドレス１３０とから構成される。
【００２５】
セグメント記述子２００は、セグメントごとに１つ存在し、ページテーブル３００の先頭の主記憶アドレス２１０，セグメントが属する空間の共有レベル２２０などを記憶する。プロセス識別子とセグメント番号１１０とにより、セグメント記述子２００が一意に決まる。
【００２６】
共有レベル２２０は、仮想記憶空間が、システム共有空間であるか、ジョブ共有空間であるか、プロセス固有空間であるかを示す値である。例えば、システム共有空間の場合に１、ジョブ共有空間の場合に２、プロセス固有空間の場合に３とする。
【００２７】
ページテーブル３００は、ページ記述子３１０の配列である。
【００２８】
ページ記述子３１０は、仮想記憶空間のページごとに１つずつ存在する。ページ記述子３１０には、対応するページが主記憶にあるか二次記憶８００にあるかを識別する情報があり、これをページ不在ビット３２０と呼ぶ。ページが主記憶に存在する場合には主記憶アドレス３３０を持ち、ページが二次記憶８００に存在する場合には仮想二次記憶アドレス３４０を持つ。
【００２９】
二次記憶ファイル８１０は、ページサイズのレコードから構成される。このレコードをスロットと呼ぶ。
【００３０】
二次記憶アドレスおよび仮想二次記憶アドレス３４０は、ファイル番号と、スロット番号３６０とから構成される。仮想二次記憶アドレス３４０のファイル番号を、特に仮想二次記憶ファイル番号３５０と呼ぶ。
【００３１】
仮想二次記憶アドレス変換テーブル４００は、プロセスごとに１つずつ存在し、仮想二次記憶ファイル番号４１０を、実際の二次記憶ファイル番号４２０に対応づける。
【００３２】
本実施の形態においては、説明の都合上、仮想二次記憶ファイル番号３５０を３ビット（０〜７）、二次記憶ファイル番号４２０を４ビット（０〜Ｆ）と仮定する。実際には、例えば、仮想二次記憶ファイル番号３５０を８ビット、実際の二次記憶ファイル番号４２０を１６ビットとする構成が考えられる。この場合、ページ記述子３１０を拡大せずに、二次記憶容量を２５６倍に拡大できる。
【００３３】
二次記憶ファイル管理テーブル５００のエントリは、二次記憶ファイル８１０ごとに１つずつ存在し、ファイル使用量，先頭スロットのディスクアドレス（セクタ番号），１スロット当たりのセクタ数，スロット割り当て管理情報５１０などを記憶する。
【００３４】
プロセス管理テーブル６００は、プロセスごとに１つずつ存在し、該当プロセスの仮想二次記憶アドレス変換テーブル４００へのポインタなどを記憶する。
【００３５】
主記憶管理テーブル７００は、主記憶管理エントリ７１０の配列である。
【００３６】
主記憶管理エントリ７１０は、主記憶のページごとに１つずつ存在し、そのページが割り当てられている仮想記憶空間のページの論理アドレス７２０，その仮想記憶空間のページに割り当てられている二次記憶８００の仮想二次記憶アドレス７３０などを記憶する。仮想二次記憶アドレス７３０は、仮想二次記憶ファイル番号７４０と、スロット番号７５０とから構成されている。
【００３７】
システム共有空間に割り当てる二次記憶ファイル８１０を、システム共有二次記憶ファイルと呼ぶ。
【００３８】
ジョブ共有空間に割り当てる二次記憶ファイル８１０を、ジョブ共有二次記憶ファイルと呼ぶ。これは、ジョブごとの概念であり、二次記憶ファイル８１０自体の属性ではない。
【００３９】
プロセス固有空間に割り当てる二次記憶ファイル８１０を、プロセス固有二次記憶ファイルと呼ぶ。これは、プロセスごとの概念であり、二次記憶ファイル８１０自体の属性ではない。
【００４０】
ここで、多重仮想記憶の仕組みについて、いくらか説明をしておく。仮想記憶空間はプロセスごとに存在し、全ての仮想記憶空間管理テーブルはプロセス管理テーブル６００を出発点として接続される。したがって、プロセス識別子とセグメント番号との組が与えられたとき、プロセス管理テーブル６００から順にテーブルを追跡すれば、セグメント記述子２００に到達できる。空間の共有レベル２２０は、セグメントごとに設定可能であり、セグメント記述子２００の共有により実現される。言い換えれば、システム共有空間とは、システムの全てのプロセスがセグメント記述子２００を共有しているセグメントの集合であり、ジョブ共有空間とは、ジョブに属する全てのプロセスがセグメント記述子２００を共有しているセグメントの集合である。セグメント記述子２００の説明に述べた通り、セグメント記述子２００には空間の共有レベル２２０を記憶しており、これを参照すれば、仮想記憶空間のページが、どの共有レベル２２０の空間に属するかが分かる。
【００４１】
次に、このように構成された第１の実施の形態に係る多重仮想記憶システムの二次記憶管理方式の動作について、図１および図２ないし図８のフローチャートを参照しながら説明する。
【００４２】
（１−１）  システム立ち上げにおける処理（図２参照）
ステップＡ１において、システム共有二次記憶ファイルを決定する。システム共有二次記憶ファイルについては、システムの全てのプロセスで、仮想二次記憶ファイル番号３５０，４１０，７４０を同一にする。すなわち、システム共有空間については、二次記憶アドレスを多重化しない。
【００４３】
例えば、システム共有二次記憶ファイルの個数を４つとし、その二次記憶ファイル番号４２０が、
０，１，Ｅ，Ｆ
であるとすれば、全てのプロセスで、仮想二次記憶アドレス変換テーブル４００の内容は、共通に、
０→０（システム共有）
１→１（システム共有）
２→Ｅ（システム共有）
３→Ｆ（システム共有）
となる。
【００４４】
なお、左辺が仮想二次記憶ファイル番号４１０、右辺が実際の二次記憶ファイル番号４２０である。
【００４５】
（１−２）  ジョブ開始における処理（図３参照）
ステップＢ１において、ジョブ共有二次記憶ファイルの個数，およびプロセス固有二次記憶ファイルの個数を決定する。上記の例を引き続き仮定すると、これらの個数の和は、仮想二次記憶ファイル番号４１０の個数８から、システム共有二次記憶ファイルの個数４を引いた残り、すなわち、４である。仮に、ジョブ共有二次記憶ファイルの個数を２、プロセス固有二次記憶ファイルの個数を２とする。
【００４６】
ステップＢ２において、二次記憶ファイル管理テーブル５００を参照し、システム共有二次記憶ファイルを除いて、使用量の少ない二次記憶ファイル８１０から順に、ジョブ共有二次記憶ファイルとして割り当てる。
【００４７】
例えば、システム共有二次記憶ファイルを除く二次記憶ファイル８１０を、使用量の少ない順に並べたときに、
７，Ｂ，Ｄ，２，Ｃ，３，４，８，６，Ａ，５，９
であるとすれば、仮想二次記憶アドレス変換テーブル４００の内容は、以下のようになる。
０→０（システム共有）
１→１（システム共有）
２→Ｅ（システム共有）
３→Ｆ（システム共有）
４→７（ジョブ共有）
５→Ｂ（ジョブ共有）
【００４８】
（１−３）  プロセス開始における処理（図４参照）
上記の通り、システム共有二次記憶ファイルとジョブ共有二次記憶ファイルとについては、仮想二次記憶アドレス変換テーブル４００の内容が決定している。
【００４９】
ステップＣ１において、二次記憶ファイル管理テーブル５００を参照して、システム共有二次記憶ファイルを除いて、使用量の少ない二次記憶ファイル８１０から順に、プロセス固有二次記憶ファイルとして割り当てる。プロセス固有二次記憶ファイルがジョブ共有二次記憶ファイルと重複しても論理的問題はないが、ここでは重複を避ける割り当て方を採用する。
【００５０】
例えば、システム共有二次記憶ファイルを除く二次記憶ファイル８１０を使用量の少ない順に並べて、前記の通りとすれば、仮想二次記憶アドレス変換テーブル４００の内容は、以下のようになる。
０→０（システム共有）
１→１（システム共有）
２→Ｅ（システム共有）
３→Ｆ（システム共有）
４→７（ジョブ共有）
５→Ｂ（ジョブ共有）
６→Ｄ（プロセス固有）
７→２（プロセス固有）
【００５１】
ステップＣ２おいて、開始するプロセスに対応する仮想二次記憶アドレス変換テーブル４００を生成する。
【００５２】
ステップＣ３において、上記の仮想二次記憶ファイル番号４１０と二次記憶ファイル番号４２０との対応を記憶する。
【００５３】
終わりに、ステップＣ４において、仮想二次記憶アドレス変換テーブル４００へのポインタをプロセス管理テーブル６００に記憶する。
【００５４】
なお、ジョブ共有二次記憶ファイル，およびそれらの仮想二次記憶ファイル番号４１０は、同一ジョブの全てのプロセスで共通にする必要がある。プロセス固有二次記憶ファイル，およびそれらの仮想二次記憶ファイル番号４１０は、プロセスごとに異なってよい。
【００５５】
（１−４）  ページイン処理（図５参照）
ステップＤ１において、該当ページのプロセス識別子および論理アドレス１００のセグメント番号１１０によりページテーブル３００を決定する。
【００５６】
ステップＤ２において、論理アドレス１００のページ番号１２０により、ページテーブル３００からページ記述子３１０を取り出す。ページ記述子３１０は、対応するページが主記憶に存在するか二次記憶８００に存在するかを識別するページ不在ビット３２０を持ち（主記憶に存在する場合に０、二次記憶８００に存在する場合に１であるとする）、また、ページが主記憶に存在する場合には主記憶アドレス３３０、ページが二次記憶８００に存在する場合には仮想二次記憶アドレス３４０を持つ。
【００５７】
ページが主記憶に存在する場合は、図示しないＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）が主記憶アドレス３３０を参照して、該当ページにアクセス可能である。ページが二次記憶８００に存在する場合は、ハードウエアの例外処理機構（図示せず）からページ不在例外処理が呼び出される。ここに述べているページイン処理は、ページ不在例外処理の延長で動作する処理である。
【００５８】
ステップＤ３において、該当ページに割り当てる主記憶を取得する。
【００５９】
ステップＤ４において、対応する主記憶管理エントリ７１０に、ページ記述子３１０に記憶されていた仮想二次記憶アドレス３４０を記憶する。
【００６０】
ステップＤ５において、ページ記述子３１０に、上記で取得した主記憶アドレス３３０を記憶する。
【００６１】
ステップＤ６において、該当プロセスの仮想二次記憶アドレス変換テーブル４００を参照して、ページ記述子３１０に記憶されていた仮想二次記憶ファイル番号３５０を実際の二次記憶ファイル番号４２０に変換する。
【００６２】
ステップＤ７において、その二次記憶ファイル番号４２０に対応する二次記憶ファイル管理テーブル５００を参照して、ページ記述子３１０に記憶されていたスロット番号３６０から、該当ページに割り当てられているスロットの二次記憶装置アドレス（ディスク装置のセクタ番号）を計算する。
【００６３】
ステップＤ８において、二次記憶８００から主記憶にページの内容を読み出す。
【００６４】
終わりに、ステップＤ９において、ページ記述子３１０のページ不在ビット３２０を０にする。
【００６５】
これにより、ＣＰＵが該当ページにアクセス可能になり、ページ不在例外となった命令からプログラムの処理を再開する。
【００６６】
（１−５）  ページアウト処理（図６参照）
ページから主記憶を取り上げる場合は、ステップＥ１において、ページ記述子３１０から主記憶アドレス３３０を取得する。
【００６７】
ステップＥ２において、対応する主記憶管理エントリ７１０に記憶されている仮想二次記憶アドレス７３０を得る。なお、該当ページに二次記憶８００が割り当てられていない場合は、事前に、以下に述べる二次記憶割当処理（図７参照）を呼び出す。
【００６８】
ステップＥ３において、該当プロセスの仮想二次記憶アドレス変換テーブル４００を参照して、主記憶管理エントリ７１０に記憶されていた仮想二次記憶ファイル番号７４０を、実際の二次記憶ファイル番号４２０に変換する。
【００６９】
ステップＥ４において、その二次記憶ファイル番号４２０に対応する二次記憶ファイル管理テーブル５００を参照して、主記憶管理エントリ７１０に記憶されていたスロット番号７５０から、該当ページに割り当てられているスロットの二次記憶装置アドレスを計算する。
【００７０】
ステップＥ５において、ページ記述子３１０のページ不在ビット３２０を１にする。
【００７１】
ステップＥ６において、主記憶から二次記憶装置８００にページの内容を書き込む。
【００７２】
ステップＥ７において、ページ記述子３１０に仮想二次記憶アドレス３４０を記憶する。
【００７３】
終わりに、ステップＥ８において、該当ページに割り当てられていた主記憶を解放する。
【００７４】
（１−６）  二次記憶割当処理（図７参照）
ステップＦ１において、該当プロセスの仮想二次記憶アドレス変換テーブル４００を参照して、該当ページの共有レベル２２０に対応する仮想二次記憶ファイル番号４１０を１つ選択する。例えば、前記の仮想二次記憶アドレス変換テーブル４００を例に考えると、ジョブ共有空間のページの場合、仮想二次記憶ファイル番号４１０が４または５のいずれかを選択する（選択の方法には、サイクリックに選択する方法、最も使用量の少ない二次記憶ファイル８１０を選択する方法などがある）。
【００７５】
ステップＦ２において、選択した仮想二次記憶ファイル番号４１０を実際の二次記憶ファイル番号４２０に変換する。
【００７６】
ステップＦ３において、その二次記憶ファイル番号４２０に対応する二次記憶ファイル管理テーブル５００を参照して、該当ページに割り当てる空きスロットを取得する。
【００７７】
ステップＦ４において、二次記憶ファイル管理テーブル５００のスロット割り当て管理情報５１０を更新する。
【００７８】
ステップＦ５において、仮想二次記憶ファイル番号３５０と、割り当てたスロットのスロット番号３６０とから、仮想二次記憶アドレス３４０を計算する。
【００７９】
ステップＦ６において、該当ページが主記憶にあるか否かを判断し、該当ページが主記憶にある場合には、ステップＦ７において、仮想二次記憶アドレス７３０を主記憶管理エントリ７１０に記憶し、該当ページが二次記憶８００にある場合には、ステップＦ８において、仮想二次記憶アドレス３４０をページ記述子３１０に記憶する。
【００８０】
（１−７）  二次記憶解放処理（図８参照）
ステップＧ１において、該当ページが主記憶にあるか否かを判断し、該当ページが主記憶にある場合には、ステップＧ２において、主記憶管理エントリ７１０から仮想二次記憶アドレス７３０を取得し、該当ページが二次記憶８００にある場合には、ステップＧ３において、ページ記述子３１０から仮想二次記憶アドレス３４０を取得する。なお、仮想二次記憶アドレス３４０，７３０は、仮想二次記憶ファイル番号３５０，７４０とスロット番号３６０，７５０とから構成される。
【００８１】
ステップＧ４において、該当プロセスの仮想二次記憶アドレス変換テーブル４００を参照して、仮想二次記憶ファイル番号４１０を実際の二次記憶ファイル番号４２０に変換する。
【００８２】
ステップＧ５において、その二次記憶ファイル番号４２０に対応する二次記憶ファイル管理テーブル５００に対して、上記のスロット番号３６０，７５０が示すスロットを解放する。
【００８３】
ステップＧ６において、二次記憶ファイル管理テーブル５００のスロット割り当て管理情報５１０を更新する。
【００８４】
ステップＧ７において、該当ページが主記憶にあるか否かを判断し、該当ページが主記憶にある場合には、ステップＧ８において、主記憶管理エントリ７１０に記憶されている仮想二次記憶アドレス７３０をｎｕｌｌ（零値）に更新し、該当ページが二次記憶８００にある場合は、ステップＧ９において、ページ記述子３１０に記憶されている仮想二次記憶アドレス３４０をｎｕｌｌ（零値）に更新する（この場合、ページの内容は消失する）。
【００８５】
第１の実施の形態によれば、二次記憶８００の使用効率およびページアウトの処理性能を低下させず、かつページ記述子３１０のサイズを拡大せずに、二次記憶容量を拡大できる。
【００８６】
［第２の実施の形態］
図９を参照すると、本発明の第２の実施の形態に係る多重仮想記憶システムの二次記憶管理方式は、論理アドレス１００と、セグメント記述子２００と、ページテーブル３００と、仮想二次記憶アドレス変換テーブル４００と、二次記憶ファイル管理テーブル５００と、プロセス管理テーブル６００と、主記憶管理テーブル７００から、その主要部が構成されており、図１に示した第１の実施の形態に係る多重仮想記憶システムの二次記憶管理方式とは、１点を除いて同様に構成されている。
【００８７】
詳しくは、第１の実施の形態に係る多重仮想記憶システムの二次記憶管理方式では、仮想記憶空間の共有レベル２２０に依らずに、プロセスごとに１つの仮想二次記憶アドレス変換テーブル４００を持っていた。第２の実施の形態に係る多重仮想記憶システムの二次記憶管理方式では、仮想二次記憶アドレス変換テーブル４００を、仮想記憶空間の共有レベル２２０ごとに持つ。すなわち、システム共有空間，ジョブ共有空間およびプロセス固有空間ごとに、それぞれ、１つの仮想二次記憶アドレス変換テーブル４００を持つ。したがって、二次記憶アドレスは、ジョブおよびプロセスごとに多重化されるだけでなく、共有レベル２２０ごとにも多重化される。
【００８８】
このため、プロセス管理テーブル６００は、共有レベル２２０からポイントされ、仮想二次記憶アドレス変換テーブル４００をポイントする、仮想二次記憶アドレス変換テーブルへのポインタ１，仮想二次記憶アドレス変換テーブルへのポインタ２，および仮想二次記憶アドレス変換テーブルへのポインタ３を備えている。
【００８９】
なお、その他の部分は、第１の実施の形態に係る多重仮想記憶システムの二次記憶管理方式と同様に構成されているので、同一符号を付してそれらの詳しい説明を省略する。
【００９０】
次に、このように構成された第２の実施の形態に係る多重仮想記憶システムの二次記憶管理方式の動作について、図９および図１０ないし図１２のフローチャートを参照しながら、第１の実施の形態に係る多重仮想記憶システムの二次記憶管理方式と異なる点を中心として説明する。
【００９１】
（２−１）  システム立ち上げにおける処理（図１０参照）
ステップＨ１において、システム共有二次記憶ファイルを決定する。
【００９２】
例えば、システム共有二次記憶ファイルを８個とし、その二次記憶ファイル番号４２０が、
０，１，２，３，Ｃ，Ｄ，Ｅ，Ｆ
であるとすれば、システム共有空間に対応する仮想二次記憶アドレス変換テーブル４００は、
０→０
１→１
２→２
３→３
４→Ｃ
５→Ｄ
６→Ｅ
７→Ｆ
となる。
【００９３】
ステップＨ２において、システム共有空間に対応する仮想二次記憶アドレス変換テーブル４００を生成する。
【００９４】
ステップＨ３において、仮想二次記憶ファイル番号４１０と二次記憶ファイル番号４２０との対応を記憶する。システム共有空間に割り当てられる二次記憶８００は、仮想二次記憶アドレス変換テーブル４００を参照して、仮想二次記憶ファイル番号４１０から実際の二次記憶ファイル番号４２０に変換される。仮想二次記憶アドレス変換テーブル４００の先頭へのポインタ６１０，６２０，６３０は、プロセス生成において、プロセス管理テーブル６００に記憶する。
【００９５】
なお、第１の実施の形態の場合は、システム共有二次記憶ファイル，ジョブ共有二次記憶ファイルおよびプロセス固有二次記憶ファイルの個数の総和が、仮想二次記憶ファイル番号４１０の個数以下となる必要があるが、第２の実施の形態の場合は、システム共有二次記憶ファイル，ジョブ共有二次記憶ファイルおよびプロセス固有二次記憶ファイルの各々の個数が、仮想二次記憶ファイル番号４１０の個数以下であればよい。
【００９６】
（２−２）  ジョブ開始における処理（図１１参照）
ステップＪ１において、二次記憶ファイル管理テーブル５００を参照し、システム共有二次記憶ファイルを除いて、使用量の少ない二次記憶ファイル８１０から順に、ジョブ共有二次記憶ファイルとして割り当てる。
【００９７】
例えば、ジョブ共有二次記憶ファイルの個数を４とし、システム共有二次記憶ファイルを除く二次記憶ファイル８１０を使用量の少ない順に並べたときに、
７，Ｂ，４，８，６，Ａ，５，９
であるとすれば、ジョブ共有空間に対応する仮想二次記憶アドレス変換テーブル４００は、以下のようになる。
０→７
１→Ｂ
２→４
３→８
【００９８】
ステップＪ２において、ジョブ共有空間に対応する仮想二次記憶アドレス変換テーブル４００を生成する。
【００９９】
終わりに、ステップＪ３において、仮想二次記憶ファイル番号４１０と二次記憶ファイル番号４２０との対応を記憶する。ジョブ共有空間に割り当てられる二次記憶８００は、仮想二次記憶アドレス変換テーブル４００を参照して、仮想二次記憶ファイル番号４１０から実際の二次記憶ファイル番号４２０に変換される。仮想二次記憶アドレス変換テーブル４００の先頭へのポインタ６１０，６２０，６３０は、プロセス生成において、プロセス管理テーブル６００に記憶する。
【０１００】
（２−３）  プロセス開始における処理（図１２参照）
ステップＫ１において、二次記憶ファイル管理テーブル５００を参照し、システム共有二次記憶ファイルを除いて、使用量の少ない二次記憶ファイル８１０から順に、プロセス固有二次記憶ファイルとして割り当てる。プロセス固有二次記憶ファイルがジョブ共有二次記憶ファイルと重複しても論理的問題はないが、ここでは重複を避ける割り当て方を採用する。
【０１０１】
例えば、プロセス固有二次記憶ファイルの個数を４とし、システム共有二次記憶ファイルを除く二次記憶ファイル８１０を使用量の少ない順に並べて、前記の通りとすれば、プロセス固有空間に対応する仮想二次記憶アドレス変換テーブル４００は、以下のようになる。
０→６
１→Ａ
２→５
３→９
【０１０２】
ステップＫ２において、プロセス固有空間に対応する仮想二次記憶アドレス変換テーブル４００を生成する。
【０１０３】
ステップＫ３において、仮想二次記憶ファイル番号４１０と二次記憶ファイル番号４２０との対応を記憶する。プロセス固有空間に割り当てられる二次記憶８００は、この仮想二次記憶アドレス変換テーブル４００を参照して、仮想二次記憶ファイル番号４１０から実際の二次記憶ファイル番号４２０に変換される。
【０１０４】
終わりに、ステップＫ４において、システム共有空間，ジョブ共有空間およびプロセス固有空間それぞれの、仮想二次記憶アドレス変換テーブル４００へのポインタ６１０，６２０および６３０を、プロセス管理テーブル６００の、仮想二次記憶管理テーブルへのポインタ１，仮想二次記憶管理テーブルへのポインタ２，および仮想二次記憶管理テーブルへのポインタ３に記憶する。
【０１０５】
ページイン処理，ページアウト処理，二次記憶割当処理，および二次記憶解放処理は、基本的に第１の実施の形態と同じである。両者の相違は、第１の実施の形態においては、ページの共有レベル２２０に拘わらず、共通に該当プロセスの仮想二次記憶アドレス変換テーブル４００を参照するが、第２の実施の形態においては、ページの共有レベル２２０に応じて、システム共有空間，ジョブ共有空間およびプロセス固有空間の仮想二次記憶アドレス変換テーブル４００を参照する、という点である。
【０１０６】
【発明の効果】
第１の効果は、二次記憶の使用効率およびページアウトの処理性能を低下させず、かつ、ページ記述子のサイズを拡大せずに、二次記憶容量を拡大できることである。その理由は、ジョブ共有空間についてはジョブごとに、プロセス固有空間についてはプロセスごとに二次記憶アドレスを多重化し、各々のジョブ共有空間およびプロセス固有空間に対して、仮想二次記憶アドレスを実際の二次記憶アドレスに変換する仮想二次記憶アドレス変換テーブルを設けるようにしたからである。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態に係る多重仮想記憶システムの二次記憶管理方式の構成を示すブロック図である。
【図２】第１の実施の形態に係る多重仮想記憶システムの二次記憶管理方式でのシステム立ち上げ処理を示すフローチャートである。
【図３】第１の実施の形態に係る多重仮想記憶システムの二次記憶管理方式でのジョブ開始処理を示すフローチャートである。
【図４】第１の実施の形態に係る多重仮想記憶システムの二次記憶管理方式でのプロセス開始処理を示すフローチャートである。
【図５】第１の実施の形態に係る多重仮想記憶システムの二次記憶管理方式でのページイン処理を示すフローチャートである。
【図６】第１の実施の形態に係る多重仮想記憶システムの二次記憶管理方式でのページアウト処理を示すフローチャートである。
【図７】第１の実施の形態に係る多重仮想記憶システムの二次記憶管理方式での二次記憶割当処理を示すフローチャートである。
【図８】第１の実施の形態に係る多重仮想記憶システムの二次記憶管理方式での二次記憶解放処理を示すフローチャートである。
【図９】本発明の第２の実施の形態に係る多重仮想記憶システムの二次記憶管理方式の構成を示すブロック図である。
【図１０】第２の実施の形態に係る多重仮想記憶システムの二次記憶管理方式でのシステム立ち上げ処理を示すフローチャートである。
【図１１】第２の実施の形態に係る多重仮想記憶システムの二次記憶管理方式でのジョブ開始処理を示すフローチャートである。
【図１２】第２の実施の形態に係る多重仮想記憶システムの二次記憶管理方式でのプロセス開始処理を示すフローチャートである。
【符号の説明】
１００  論理アドレス
１１０  セグメント番号
１２０  ページ番号
１３０  ページ内相対アドレス
２００  セグメント記述子
２１０  主記憶アドレス
２２０  共有レベル
３００  ページテーブル
３１０  ページ記述子
３２０  ページ不在ビット
３３０  主記憶アドレス
３４０  仮想二次記憶アドレス
３５０  仮想二次記憶ファイル番号
３６０  スロット番号
４００  仮想二次記憶アドレス変換テーブル
４１０  仮想二次記憶ファイル番号
４２０  二次記憶ファイル番号
５００  二次記憶ファイル管理テーブル
５１０  スロット割り当て管理情報
６００  プロセス管理テーブル
７００  主記憶管理テーブル
７１０  主記憶管理エントリ
７２０  論理アドレス
７３０  仮想二次記憶アドレス
７４０  仮想二次記憶ファイル番号
７５０  スロット番号
８００  二次記憶
８１０  二次記憶ファイル
【図１】
2005004575.tif 000003
【図２】
2005004575.tif 000004
【図３】
2005004575.tif 000005
【図４】
2005004575.tif 000006
【図５】
2005004575.tif 000007
【図６】
2005004575.tif 000008
【図７】
2005004575.tif 000009
【図８】
2005004575.tif 000010
【図９】
2005004575.tif 000011
【図１０】
2005004575.tif 000012
【図１１】
2005004575.tif 000013
【図１２】
2005004575.tif 000014