カテゴリ:4.記憶管理 > 4.2 記憶管理(実記憶管理)

■H29秋
問17 ページング方式の仮想記憶において,ページ置換えの発生頻度が高くなり,システムの処理能力が急激に低下することがある。このような現象を何と呼ぶか。
ア スラッシング          イ スワップアウト
ウ フラグメンテーション     エ ページフォールト
【正解】ア

問18 CPUスケジューリングにおけるラウンドロビンスケジューリング方式に関する記述として,適切なものはどれか。
ア 自動制御システムなど,リアルタイムシステムのスケジューリングに適している。
イ タイマ機能がないシステムにおいても,簡単に実現することができる。
ウ タイムシェアリングシステムのスケジューリングに適している。
エ タスクに優先順位を付けることによって,容易に実現することができる。
【正解】ウ

■H28春
問17 ページング方式の仮想記憶において,あるプログラムを実行したとき,1回のページフォールトの平均処理時間は30 ミリ秒であった。ページフォールト発生時の処理時間が次の条件であったとすると,ページアウトを伴わないページインだけの処理の割合は幾らか。

〔ページフォールド発生時の処理時間〕
(1)ページアウトを伴わない場合,ページインの処理時間は20ミリ秒である。
(2)ページアウトを伴う場合,置換えページの選択,ページアウト,ページインの合計処理時間は60 ミリ秒である。
ア 0.25     イ 0.33     ウ 0.67     エ 0.75
【正解】エ

問18 仮想記憶方式に関する記述のうち,適切なものはどれか。
ア LRUアルゴリズムは,使用後の経過時間が最長のページを置換対象とするページ置換アルゴリズムである。
イ アドレス変換をインデックス方式で行う場合は,主記憶に存在する全ページ分のページテーブルが必要になる。
ウ ページフォールトが発生した場合は,ガーベジコレクションが必要である。
エ ページングが繰り返されるうちに多数の小さな空きメモリ領域が発生することを,フラグメンテーションという。
【正解】ア

■H27秋
問17 デマンドページング方式による仮想記憶の利点はどれか。
ア 実際にアクセスが行われたときにだけ主記憶にロードするので,無駄なページをロードしなくて済む。
イ 主記憶に対する仮想記憶の容量比を大きくするほど,ページフォールトの発生頻度を低くできる。
ウ プロセスが必要とするページを前もって主記憶にロードするので,補助記憶へのアクセスによる遅れを避けることができる。
エ ページフォールトの発生頻度が極端に高くなっても,必要な場合にしかページを読み込まないのでスラッシング状態を回避できる。
【正解】ア

■H27春
問16 仮想記憶方式では,割り当てられる実記憶の容量が小さいとページアウト,ページインが頻発し,スループットが急速に低下することがある。このような現象を何というか。
ア スラッシング          イ スワッピング
ウ フラグメンテーション     エ メモリリーク
【正解】ア

問18 500 k バイトの連続した空き領域に,複数のプログラムモジュールをオーバレイ方式で読み込んで実行する。読込み順序Aと読込み順序Bにおいて,最後の120 k バイトのモジュールを読み込む際,読込み可否の組合せとして適切なものはどれか。ここで,数値は各モジュールの大きさをkバイトで表したものであり,モジュールを読み込む領域は,ファーストフィット方式で求めることとする。

〔読込み順序A〕
100 → 200 → 200解放 → 150 → 100解放 → 80 → 100 → 120
〔読込み順序B〕
200 → 100 → 150 → 100解放 → 80 → 200解放 → 100 → 120

H27h-問18
【正解】イ

■H26秋
問16 三つの資源X~Zを占有して処理を行う四つのプロセスA~Dがある。各プロセスは処理の進行に伴い,表中の数値の順に資源を占有し,実行終了時に三つの資源を一括して解放する。プロセスAとデッドロックを起こす可能性があるプロセスはどれか。
H26a-問16
ア B,C,D     イ C,D     ウ Cだけ     エ Dだけ
【正解】イ

問17 固定区画方式を使用した主記憶において,大きさが100 k バイト,200 k バイト,300 k バイト,400 k バイトの区画をそれぞれ一つ設定する。この主記憶に,大きさが250 k バイト,250 k バイト,50 kバイトのプログラムをベストフィット方式で割り当てた。この時点で,使用できない領域は合計で何kバイト生じているか。
ア 200     イ 250     ウ 350     エ 450
【正解】イ

■H26春
問16 OSのプロセス制御におけるプリエンプティブ方式に関する記述のうち,適切なものはどれか。
ア 各プロセスがシステム資源を自主管理できるので,マルチプログラミングに向いている。
イ ノンプリエンプティブ方式に比べて,コンテキスト切替えのためのオーバヘッドが小さい。
ウ ノンプリエンプティブ方式に比べて,特定のプロセスがプロセッサを独占することが多い。
エ プリエンプティブ方式を実現するには,0Sがプロセスを強制的に切り替えて実行する機構が必要になる。
【正解】エ

問18 仮想記憶方式において,論理アドレスから物理アドレスへの変換を行うのはいつか。
ア 主記憶に存在するページをアクセスするとき
イ ページフォールトが発生したとき
ウ ページを主記憶にページインするとき
エ ページを補助記憶にページアウトするとき
【正解】ア

■H25秋
問18 記憶領域の動的な割当て及び解放を繰り返すことによって,どこからも利用できない記憶領域が発生することがある。このような記憶領域を再び利用可能にする機能はどれか。
ア ガーベジコレクション     イ スタック
ウ ヒープ              エ フラグメンテーション
【正解】ア

■H25春
問17 五つのジョブA~Eに対して,ジョブの多重度が1で,処理時間順方式のスケジューリングを適用した場合,ジョブBのターンアラウンドタイムは何秒か。ここで,OSのオーバヘッドは考慮しないものとする。
H25h-問17
ア 8     イ 9     ウ 10     エ 11
【正解】エ

問18 ぺージング方式の仮想記憶において,ページフォールト発生時のオーバヘッドによる1命令当たりの平均遅れ時間を求める式はどれか。

〔記号の説明〕
 t : 1回当たりのページフォールト処理時間
 f : ページフォールト発生率
 m : 1命令当たりの平均主記憶アクセス回数

ア t - f × m
イ t × f × m
ウ t × f ÷ m
エ f ÷ f ÷ m
【正解】イ

問19 仮想記憶方式におけるプログラムやデータの格納方法に関する記述のうち,適切なものはどれか。
ア 一つのプログラムや一連のデータは,主記憶装置及び補助記憶装置で必ず連続した領域に格納される。
イ 頻繁に参照されるプログラムやデータが主記憶装置に格納されているので,仮想記憶を用いない場合に比べて主記憶の平均アクセス時間が短くなる。
ウ プログラムやデータを補助記憶装置に格納し,必要に応じて主記憶に読み込むので,主記憶の見かけの容量を拡大できる。
エ ページアウトされたプログラムやデータがシステムの停止後も補助記憶装置に保持されるので,再起動後に主記憶の内容が復元される。
【正解】ウ

問2 オーバレイに関する次の記述を読んで,設問1,2に答えよ。

 近年,組込み(embedded)システムに利用されるプログラムの規模拡大に伴い,オーバレイが必要になってきている。オーバレイとは,プログラムを幾つかのオーバレイセグメント(以下,単にセグメントと呼ぶ)に分割しておき,OSがプログラムの実行に必要なモジュールを含むセグメントだけを主記憶領域に読み込んで実行する方法である。
 (1)10個のモジュールA~Jで構成されるプログラムがあり,各モジュールは図1に示す呼出し構造になっている。例えば,モジュールGは二つのモジュールH及びIを呼び出す。
17-FE問2-4
図1 モジュールの呼出し構造


 (2)このプログラムのモジュールの実行順序は,図2のとおりである。
17-FE問2-5
図2 モジュールの実行順序

 (3)A~Jの各モジュールの実行に必要な主記憶領域の大きさは,表のとおりである。なお,セグメントの大きさは,セグメントを構成するモジュールの大きさを合計したものになる。

        表 モジュールの大きさ
モジュール
A
B
C
D
E
F
G
H
I
J
大きさ(Mバイト)
10
8
6
5
6
4
6
2
3
15


設問1 次の記述中の[    ]に入れる正しい答えを,解答群の中から選べ。

 プログラムのオーバレイ構造と各セグメントを構成するモジュールを図3に示す。図3は,モジュールDがモジュールAから呼び出されたとき,主記憶領域にセグメントP0及びP2が読み込まれていることを表している。また,セグメントP1,P2及びP3は,主記憶領域の同じ番地を先頭としてそれ以降に読み込まれることを表している。
17-FE問2-1
図3 オーバレイ構造とセグメント


 このプログラムを実行したとき,プログラムの実行が終了するまでに,セグメントはP0,P1,P2,P3の順に,計4回だけ主記憶領域に読み込まれる。図3のオーバレイ構造で実行するのに必要な主記憶領域は,[    ]Mバイトである。

解答群
ア 24   イ 25   ウ 35   エ 36
オ 37   カ 38   キ 39   ク 40
正解は、エです。

設問2 次の記述中の[    ]に入れる正しい答えを,解答群の中から選べ。

 プログラムの実行時に利用する主記憶領域を減らすことが必要になったので,オーバレイ構造及びセグメントの見直しを行って,図4と図5に示す二つの案を作成した。
17-FE問2-2
図4 オーバレイ構造とセグメント案1

17-FE問2-3

図5 オーバレイ構造とセグメント案2

 図3のオーバレイ構造に比べて,プログラムの実行時に利用する主記憶領域を,案1では10 Mバイト,案2では[  a  ]Mバイト減らすことができる。
 プログラムを実行したとき,図2中のαの位置にあるモジュールFの実行が終了するまでに主記憶領域にセグメントが読み込まれる回数は,案1では合計6回,案2では合計[  b  ]回である。
 プログラムの実行が終了するまでに主記憶領域にセグメントが読み込まれる回数は,図3のオーバレイ構造に比べて,案1では合計[  c  ]回,案2では合計6回増える。

aに関する解答群
ア 10   イ 11   ウ 12
エ 13   オ 14   カ 15

b,cに関する解答群
ア 1   イ 2   ウ 3   エ 4   オ 5
カ 6   キ 7   ク 8   ケ 9   コ 10
正解は、
a イ
b キ
c エ です。

応用情報技術者試験シラバスでは、実記憶管理に関して、以下の記載があります。
① 実記憶管理
記憶領域の管理方式である固定区画方式,可変区画方式など,実アドレス空間の割当て方式の特徴,フラグメンテーションとその対策を理解する。また,主記憶装置を効率良く使うためのスワッピングとオーバレイを理解する。

用語例 実アドレス方式,単一連続割当て方式,記憶域管理アルゴリズム(ファーストフィット,ベストフィット,ワーストフィット),メモリコンパクション,ロールイン,ロールアウト,スワップイン,スワップアウト,セグメント方式,コンパクション
応用情報技術者試験を勉強する成子 

そもそも、「実記憶管理」ってどういう意味ですか?
CPUが頭脳で、メインメモリが机の上の作業場所に例える場合があります。
仕事をするときに、机の上の書類で作業するのですが、机の広さが足らない時がありませんか? 

その狭いスペース(メインメモリの領域)を効率良く使うための仕組みが実記憶管理です。
具体的には、スワッピングとオーバレイ、この後に記載する仮想記憶管理があります。

スワッピングに関して過去問(H20秋SW午前問27)では、「プログラムを一時的に停止させ,使用中の主記憶の内容を補助記憶に退避する。再開時には,退避した内容を主記憶に再ロードし,元の状態に戻す」とあります。

オーバレイに関して過去問(H20秋SW午前問27)では、「あらかじめプログラムを幾つかの単位に分けて補助記憶に格納しておき,プログラムの指定に基づいて主記憶に読み込む」とあります。
ようは、全てを一度に読み込むのではなく、必要なプログラムだけを主記憶(メインメモリ)に読み込むのです。
スワップ

過去問(H20秋SW午前問27)では、スワッピングに関して、「プログラムを一時的に停止させ,使用中の主記憶の内容を補助記憶に退避する。再開時には,退避した内容を主記憶に再ロードし,元の状態に戻す」とあります。

H16秋AD午前
問13 仮想記憶方式においてスワッピングが多発しているシステムに対して,主記憶を増設することの効果はどれか。
ア 画像修正ソフトで取り扱える色の数が増える。
表計算ソフトの計算精度が向上する。
ウ より大きいサイズのファイルが処理できるようになる。
ワープロソフトが速く動作するようになる。

H20秋AD
問10 仮想記憶機能をもつサーバで新しいプログラムを追加して実行したところ,スワッピングが多発し,以前から動作しているプログラムの処理効率が低下した。解決策として,最も適切なものはどれか。
ア 高速なCPUに変更する。
イ 高速な主記憶に変更する。
ウ 磁気ディスク装置を増設し,補助記憶の容量を拡大する。
エ 主記憶を増設する。

過去問(H20秋SW午前問27)では、オーバレイに関して、「あらかじめプログラムを幾つかの単位に分けて補助記憶に格納しておき,プログラムの指定に基づいて主記憶に読み込む」とあります。

過去問(H17秋FE午後問2)では、オーバレイに関する具体的な問題があります。冒頭の用語解説だけ引用すると、以下です。
オーバレイとは,プログラムを幾つかのオーバレイセグメント(以下,単にセグメントと呼ぶ)に分割しておき,  OSがプログラムの実行に必要なモジュールを含むセグメントだけを主記憶領域に読み込んで実行する方法である。
実際の過去問にもチャレンジしてください。
https://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2005h17_2/2005h17a_fe_pm_qs.pdf

応用情報技術者試験を勉強する成子 

なぜオーバレイ(重ね合わせる)というのですか?




まあ、なんとなくイメージしにくいですね。必要なプログラムを上書きしていくからです。過去問(H22春ES午前2
問7)では、「記憶管理におけるオーバレイ方式の記述:として「必要がなくなったセグメントの領域に,次に実行するセグメントが上書きされる」と述べています。

フラグメンテーションに関して、過去問(H25秋AP午後問2)では、「メモリの確保や解放の処理を繰り返すと,サイズの小さな空きメモリが分散してしまい,サイズの大きな空きメモリの確保が難しくなることがある。このような現象をフラグメンテーションと呼ぶ。」とあります。


fragment・・・断片的。つまり途切れ途切れ

メモリ領域を以下のように3つの処理が使っていたとします。
(処理1)(処理2)(処理3)
■■■■|■■■■■■|■■|・・・
処理2が終わると
■■■■|        |■■|・・・
ここで、”処理2”よりメモリ領域の使用量が少ない新しい”処理4”が入ると
■■■■|■■■■  |■■|・・・
このように、メモリ領域が断片化する

対策はメモリコンパクションです。

■H27春DB午前
問5 フラグメンテーションに関する記述のうち,適切なものはどれか。
ア 可変長ブロックのメモリプール管理方式では,様々な大きさのメモリ領域の獲得や返却を行ってもフラグメンテーションは発生しない。
イ 固定長ブロックのメモリプール管理方式では,可変長ブロックのメモリプール管理方式よりもメモリ領域の獲得と返却を速く行えるが,フラグメンテーションが発生しやすい。
フラグメンテーションの発生によって,合計としては十分な空きメモリ領域があるにもかかわらず,必要とするメモリ領域を獲得できなくなることがある。
エ メモリ領域の獲得と返却の頻度が高いシステムでは,フラグメンテーションの発生を防止するため,メモリ領域が返却されるたびにガーベジコレクションを行う必要がある。

⇒正解は、ウ

・仮想記憶方式に関する過去問(H28春AP午前問18)に、以下の選択肢があります。どこが間違っているのでしょうか。  

エ ページングが繰り返されるうちに多数の小さな空きメモリ領域が発生することを,フラグメンテーションという。

ページングはページ単位で記憶領域を管理するため、小さな空きメモリ領域が発生しません。

H24秋AP午前

問18 ページング方式の仮想記憶を用いることによって,フラグメンテーションの問題を解決できる理由はどれか。
ア 一連のプログラムやデータを,不連続な主記憶に割り付けることができる。
イ 仮想記憶のページ数を主記憶のページ数よりも多くすることができる。
ウ プログラム全体を1ページに割り付けることができる。
エ プログラムのローディング時に主記憶を割り付けることができる。

⇒正解はア

過去問(H25秋AP午後問2)を見てみましょう。
〔メモリコンパクション〕
 メモリの確保や解放の処理を繰り返すと,サイズの小さな空きメモリが分散してしまい,サイズの大きな空きメモリの確保が難しくなることがある。このような現象を[ コ ]と呼ぶ。このとき,割当て済みのメモリブロックが連続するようにメモリブロックを移動し,移動したメモリブロックの後ろに大きな空きメモリを確保することをメモリコンパクションという(図5参照)。

memori

コンパクション(圧縮)という言葉がマッチしませんが、フラグメント化(断片化)した領域を再整理するものです。
応用情報技術者試験を勉強する成子
Windowsの機能で、デフラグというのもありますよね。
デフラグはデ・フラグメンテーションなので、逆フラグメントという意味ですから、同じことですか?
デフラグとメモリコンパクションは、どちらも考え方は同じで、断片化した領域を集めて再配置するものです。
メモリに関するものがメモリコンパクションで、Windowsデフラグにあるように、ディスク(ファイルシステム)に関するものがデフラグと考えればいいのではないでしょうか。

デフラグメンテーションに関して
■過去問(H19春AD午前問2)
問2 磁気ディスクのデフラグメンテーションをすることによって,期待できる効果はどれか。
ア エラーのあるクラスタを代替クラスタに置き換える。
イ ファイルの見かけの容量が減少する。
ウ ファイルの読み誤りが減少する。
エ ファイルを連続的に読み込むときのアクセス時間が短くなる。

⇒正解は、エ

■H20春AD午前
問2 デフラグメンテーションの説明はどれか。
ア エラーが起きるクラスタを別クラスタに再割付けする。
イ 使われていないクラスタを再配置する。
ウ 破損しているクラスタを削除する。
エ 物理的に分散して格納されているファイルを連続した領域に再配置する。

⇒ 正解はエ

あまり試験では問われないかもしれません。優先度は下げてもいいでしょう。

これと似たものに、フラグメンテーションの対策となるメモリコンパクションがあります。情報技術者試験でも、両者を分けていますので、別物と考えてください。

ガーベジコレクション(garbage collection)
garbage=ゴミ 
collection=収集
ゴミの収集つまり、どこからも使用されなくなったメモリ領域(garbage)を集めて(collection)、再び利用できるようにします。
ガーベジコレクションに関して過去問(H25秋AP午前問18)では、「記憶領域の動的な割当て及び解放を繰り返すことによって,どこからも利用できない記憶領域が発生することがある。このような記憶領域を再び利用可能にする機能」と述べられています。
また、過去問(H24秋高度午前1問7)では、「プログラム実行時の主記憶管理に関する記述」として,「プログラムが使用しなくなったヒープ領域を回収して再度使用可能にすることを,ガーベジコレクションという」と述べています。

参考ですが、参考ですが、Javaガーベジコレクションの機能を持っているので、自動でメモリ領域の解放が行われます。

試験には出ないでしょうが、「メモリリーク(Memory leak)」という言葉があります。”秘密をリークする”など、leakは漏れるの意味です。。過去問(平成18年午前問4)を参考にすると、メモリーリークは「アプリケーションやOSバグなどが原因で,動作中に確保した主記憶領域が解放されないことであり,これが発生すると主記憶中の利用できる部分が減少する」ことです。この対策の一つが、ガーベジコレクション(garbage collection)です。

平成28年秋期 午前 問16

問16 プログラム実行時の主記憶管理に関する記述として,適切なものはどれか。

ア 主記憶の空き領域を結合して一つの連続した領域にすることを,可変区画方式という。
イ プログラムが使用しなくなったヒープ領域を回収して再度使用可能にすることを,ガーベジコレクションという。
ウ プログラムの実行中に主記憶内でモジュールの格納位置を移動させることを,動的リンキングという。
エ プログラムの実行中に必要になった時点でモジュールをロードすることを,動的再配置という。

正解は、イです。

↑このページのトップヘ