【フラグメンテーション】
主記憶上の不連続な未使用領域のこと。
未使用領域の合計が実行するタスクより大きくても、不連続なためにプログラムをロードすることができず、タスク実行に使うことができないといった状況。
【ページング】
フラグメンテーションを解決する技術。
仮想アドレス空間と主記憶を「ページ」と呼ばれる固定長の区画に分割し、このページ単位で主記憶と補助記憶装置のアドレス交換を行う方式。
プログラムに割り当てるメモリが連続である必要がなくなるため、大きなフラグメンテーションの発生を抑え、メモリを無駄にしないという利点がある。
★ページング方式のアドレス変換順序
1) プログラムからは仮想記憶のアドレスでアクセスがあるので、まず、このアドレスのページテーブルの先頭アドレスを得る。
2) 次に、該当ページ状態を調べる。
3) 目的のアドレスの情報がページになかったら(ページフォールトだったら)、ページイン処理を行う。
4) ページ内変位を加えて、求める主記憶アドレスを得る。
【プログラム実行時の主記憶管理】
★動的リンキング
プログラムの実行中に必要になった時点でモジュールをロードすること。
★動的再配置
プログラムの実行中に主記憶内でモジュールの格納位置を移動すること。
★ガーベジコレクション(メモリコンパクション)
可変区画方式(※)で区画の割り当てと解放を繰り返していくと、主記憶上に不連続な未使用領域が発生する。(=フラグメンテーション)
この不連続な未使用領域を結合して一つの連続した未使用領域にすることで再度使用可能にすること。
※可変区画方式
実行するプログラムの大きさに応じて主記憶を区画して割り当てる方式。
【局所参照性】
一つのリソースに複数回アクセスする処理に関する情報工学上の概念。
時間的局所性
一度アクセスされたリソースが近い将来に再び参照される可能性が高いという概念。
空間的局所性
あるリソースが参照されたとき、その近傍のリソースが参照される可能性が高いという概念。
逐次的局所性
メモリが逐次アクセスされるという概念。
一般に、サブルーチンを用いるほうがメモリの同じ位置にアクセスする可能性が高くなり、局所参照性が高くなる。
分岐命令などによってメモリを短い時間に広範囲に参照するほど、局所参照性は低くなる。
◆リアルタイムOS
処理をリアルタイムに実行することを重視し、そのための機能を実装したOSのこと。
起動時間の短縮やメモリを有効活用するために、静的なタスク(※)生成を行うことが多い。
※静的なタスク
システムが必要とするタスクを事前に設計しタスク生成手順やメモリ割り当てをあらかじめ決めておく方式。
◆実行プログラムの切り替え方式(マルチタスクOS)
プリエンプティブ
OSがCPUを管理し、CPU使用時間や優先度などによりタスクを実行状態や実行可能状態に切り替える方式。(ラウンドロビン)
ノンプリエンプティブ
実行プロセスの切り替えをプログラム自身に任せる方式。(到着順、残り時間順、処理時間順)
◆カーネルの種類
マイクロカーネルアーキテクチャ
OSが提供する機能をメモリ管理やタスク管理などの最小限の機能に絞り、他の機能はサーバプロセスとして実現する設計手法。
モノシリックカーネル
カーネル自体に多機能を持たせる設計手法。
OSの記憶管理機能
オーバレイ
データ量が大きく主記憶に格納しきれないプログラムをいくつかのブロックに分割し、主記憶にはその時点で必要となる部分だけをロードする実記憶の管理方式。
ページング
主記憶上に存在するプログラムやデータと、補助記憶装置上にある必要なプログラムやデータの入れ替えを、ページと呼ばれる固定長の単位で行う仮想記憶方式。
スワッピング
プログラムやデータの優先度に応じて主記憶の内容と補助記憶装置の内容を入れ替えながら処理を行う実記憶の管理方式。
【ページング】
主記憶を効率よく管理することを目的とした仮想記憶管理方式。
主記憶と仮想アドレス空間を「ページ」という固定長の区画に分割し、ページ単位でアドレス変換を行う。
ページサイズに比べてプログラムのサイズが大きいということは、固定長のページ内に使われていない空き領域が存在しているということである。
この場合はページサイズを圧縮することで、無駄な空き容量の削減と主記憶不足の解消が可能になる。
【スケジューリング】
到着準方式(FCFS:First Come First Served)
タスクには優先順位を持たせず、実行可能状態になった順に実行する方式。
静的優先順位方式(プリエンプション方式)
静的に(=あらかじめ)決められた優先順位のうち、最も高い優先順位を持つタスクから実行される方式。
現在実行されているタスクより優先順位が高いタスクが実行可能状態になると、実行されているたすくはプリエンプションされる。
優先順位の低いタスクにCPU使用権が与えられず、なかなか実行できない(=スタベーション(starvation))が起こる可能性がある。
動的優先順位方式(エージング方式)
スタベーションを回避するため、待ち時間が一定時間以上となったタスクの優先順位を動的に高くして実行できるようにする方式。
優先順位を高くして実行の可能性を与えることをエージング(aging)という。
ラウンドロビン方式
実行可能状態となった順に従ってタスクにCPU時間を一定時間(タイムクォンタム)ずつ割り当てる方式。
処理時間方式(SPT:Shortest Processing Time First)
処理時間の短いタスクに対し、高い優先順位を与え、最初に実行する方式。
【プログラミング・テスト工程支援ツール】
◆静的解析ツール◆
プログラムを実行させることなく解析するツール
構文チェッカ
ソースプログラムが、言語で定められた構文に従って記述されているかをチェックするツール。
コードオーディタ
ソフトウェア開発において独自に定めたプログラミング規約に従って記述されているかをチェックするツール。
モジュールインターフェースチェックツール
モジュール間のインターフェースの不一致などを検出するツール。
◆動的解析ツール◆
プログラムを実行しながら解析するツール
トレーサ(追跡プログラム)
命令単位、あるいは指定した範囲でプログラムを実行し、その時のメモリやレジスタの内容などの情報が得られるツール。
インスペクタ
構造体のようなデータ構造の内容を見やすい形で表示し、容易に確認できるようにしたツール。
プログラムの実行状態を調べるときに、変数の値や引数の値を調べる必要があるが、データがポインタでつながれた構造体の場合にインスペクタを使用することで、表示されるポインタの値を追いながら実行状態を見ていく必要がなくなる。
スナップショット(動的ダンプ)
プログラムの特定の命令文が実行されるごとに、指定されたメモリやレジスタの内容を出力するツール。
プログラムの異常終了時にメモリやレジスタの内容を出力するものをメモリダンプ(静的ダンプ)という。
カバレージモニタ
プログラム全体の経路のうち、テストでどの程度カバーしたかという網羅率を測定するツール。
アサーションチェッカ
プログラムの正当性を検証するために、変数間で論理的に成立する条件が満たされているか(=アサーション)をチェックするツール。
ミドルウェア
EJB(Enterprise Java Beans)とは
Java Beansとは、プログラムの再利用を目的としてJavaで書かれたソフトウェアの部品のこと。
開発効率の向上や、プログラムの経験がなくてもアプリケーションソフトウェアが構築できるようになる。
EJBとは、サーバでの実行を前提とした技術仕様の事を指す。
ファイルシステム
UNIXにおけるファイルシステムの種類
通常ファイル
テキスト、オブジェクトコード、画像データなどを格納するためのファイル。
ディレクトリファイル
ファイル名とファイルの実体を対応付けるためのファイル。
特殊ファイル
磁気ディスクなどの入出力装置にアクセスするためのファイル。
開発ツール
デュアルライセンス
ひとつのソフトウェアを2種類以上の異なるライセンスの元で配布する形態のこと。
「パーソナル版」、「プロフェッショナル版」などと分かれていることが多く、ユーザはその中の1つを選択して同意する。
最終更新:2013年10月02日 07:49