pulpul 日本の試験

システム監査技術者 概念書 · ソフトウェア

OSの管理機能と記憶管理

要点と定義

OSは、タスクや記憶領域、入出力などを管理し、プログラムの実行に必要な機能を提供する。IPAシラバスVer.7.2では、OSの機能のうちタスク管理、ジョブ管理、実記憶管理、仮想記憶管理などの理解を求めている。以下では、シラバスが示す到達範囲と、過去の出題で扱った補足を区別して説明する。

実記憶管理では、主記憶への領域割当てや、空き領域の管理を行う。可変区画方式はプログラムの大きさに応じて領域を割り当てる方式であり、断片化への対策としてメモリコンパクションがある。ガーベジコレクションは、ヒープ上で参照されなくなった領域を回収し、再利用可能にする処理である。これは空き領域をまとめる処理とは目的が異なる。過去の出題では、ガーベジコレクションの役割と、動的ロード、動的リンキング、動的再配置などの用語の区別が扱われた。

仮想記憶では、仮想アドレスを実記憶上の位置に対応付ける。ページングでは仮想アドレス空間をページに分け、主記憶をページ枠に分けて管理する。ページフォールトは、参照した有効なページが主記憶にない場合に起き、OSはページを読み込むためのページ枠を用意する。空き枠がなければ、ページ置換えを行う場合がある。ページフォールトとガーベジコレクションは別の処理である。過去の出題では、ページフォールト時のページ枠の割当てが扱われた。

ページ置換え方式の一つであるLRUは、最後に参照されてから最も長く経過したページを置換え候補とする。置換え対象を判断するときは、ページごとの直近の参照時点を比べる。過去の出題ではLRUの対象選択の考え方が扱われた。

ページフォールトの処理時間の平均は、各処理時間をその発生割合で重み付けして求める。例えば、処理時間が10ミリ秒と30ミリ秒の二種類で、平均が20ミリ秒なら、前者の割合をpとして、10p+30(1−p)=20よりp=0.5となる。割合の合計が1になることも確認する。過去の出題では、ページフォールト処理の平均時間から一方の処理割合を求める計算が扱われた。

タスクは生成から実行、待ち、終了などの状態を遷移する。プリエンプションは実行中のタスクからCPUを一時的に取り上げ、別のタスクへ割り当てる操作である。中断されたタスクが実行を続けられる条件にあれば、通常は実行可能状態に戻ってCPUの割当てを待つ。過去の出題では、プリエンプション後の状態判断が扱われた。

デッドロックを避ける方法の一つは、複数の資源を取得する順序を統一することである。全タスクが同じ順序に従えば、互いに相手の保持する資源を待つ循環待ちを防げる。過去の出題では、資源取得順序によるデッドロック防止が扱われた。

ジョブが使う一時ファイルの最大容量を見積もるには、ジョブの実行順だけでなく、後続ジョブが参照するために残るファイルと、新たに作成されるファイルを同時点で数える。例えば、各ファイルが12メガバイトで、ある時点に先行ジョブ由来のファイルが二つ残り、実行中の二つのジョブが各一つ作成するなら、必要量は4×12=48メガバイトとなる。この例は、ファイルの生存期間を数える考え方を示す。過去の出題では、ジョブ群の実行条件に基づく一時ファイル容量の見積りが扱われた。

プリページングは、今後必要になると予測したページを先に主記憶へ読み込む方式である。予測が当たれば、ページが実際に必要になったときの読み込み待ちを減らせる一方、予測が外れると不要なページを読み込むことがある。過去の出題では、デマンドページングと比較したプリページングの特徴が扱われた。

IPAシラバスVer.7.2の「オペレーティングシステム」では、実記憶管理の割当て方式や断片化、仮想記憶と実記憶の関係、動的アドレス変換、ページ置換え手順、タスクの状態遷移、スケジューリングなどを理解する範囲として示している。これらはシラバス上の到達範囲であり、上記の過去問が直接扱った内容すべてを意味するものではない。

この節の続き

ここまでが冒頭部分です。ログインすると、無料でも1日2節まで全文をお読みいただけます。

アプリでこの節を読む