本サイトはプロモーション(広告)が含まれています。

【応用情報技術者】ソフトウェアの用語メモ

【応用情報技術者】ソフトウェアの用語メモ

Docker

Dockerは、コンテナ仮想化技術を提供するプラットフォームおよびエコシステムの名前です。Dockerコンテナは、アプリケーションとその依存関係をコンテナイメージとしてパッケージ化し、異なる環境で一貫した動作を実現することができます。

コンテナ型仮想化の環境であって,アプリケーションソフトウェアの構築,実行,管理を行うためのプラットフォームを提供するOSS

EJB(Enterprise JavaBeans)

Enterprise JavaBeans(EJB)は、Javaプラットフォーム上でビジネスアプリケーションを開発するためのコンポーネントモデルおよびサーバーサイドのコンポーネントアーキテクチャです。EJBは、Java EE(Java Platform, Enterprise Edition)仕様の一部として提供され、エンタープライズアプリケーションの開発を容易にするために設計されました。

サーバアプリケーションの開発のための,オブジェクト指向技術に基づいたコンポーネントソフトウェアの仕様

  • サーバで動作するアプリケーションをJavaで構築するためのコンポーネント規約である。

Linuxカーネル

Linuxカーネル(Linux Kernel)は、Linuxオペレーティングシステムの中核となるソフトウェアコンポーネントです。LinuxはオープンソースのUnix系オペレーティングシステムであり、そのカーネルはLinus Torvaldsによって開発され、その後、広範なオープンソースコミュニティによってメンテナンスと開発が行われています。

  • プロセス管理やメモリ管理などの,アプリケーションが動作するための基本機能を提供する。

Git

Gitは、バージョン管理システム(Version Control System, VCS)の一種で、ソフトウェア開発プロジェクトや他のテキストベースの文書の変更履歴を記録し、管理するためのツールです。Gitは非常に人気があり、オープンソースのプロジェクトとして開発およびメンテナンスされており、多くのソフトウェア開発者やチームによって使用されています。

分散開発環境において,各開発者のローカル環境に全履歴を含んだ中央リポジトリの完全な複製をもつことによって,中央リポジトリにアクセスできないときでも履歴の調査や変更の記録を可能にする,バージョン管理ツール

GNU GPL(GNU General Public License)

GNU GPLは、フリーウェア運動を具現化するために考案されたオープンソースライセンスです。GPLのもとで配付されたソフトウェアが何者かに独占されることを排除し、ソフトウェアが全ての利用者にとって自由であり続けられるようにすることを目的としています。

  • GPLであるソースコードの派生物のライセンスは,無条件にGPLとなる。

Hadoop

Hadoopは、大規模なデータセットを分散処理するためのオープンソースのフレームワークで、Apacheソフトウェア財団によって開発およびメンテナンスされています。Hadoopは、膨大なデータセットを効率的に処理し、分析するための分散コンピューティングプラットフォームとして非常に人気があります。

  • 大規模なデータセットを分散処理するためのソフトウェアライブラリ

LRUアルゴリズム

LRU(Least Recently Used)アルゴリズムは、キャッシュメモリ管理やページング方式などのコンピュータシステムで使用される一般的なアルゴリズムです。LRUアルゴリズムは、キャッシュ内のアイテムのうち、最も最近使用されていない(または最も過去に使用された)アイテムを優先的に削除するために使用されます。

  • LRUアルゴリズムは,使用後の経過時間が最長のページを置換対象とするページ置換アルゴリズムである。

アサーションチェッカ

アサーションチェッカは、プログラムの正当性を検査するために、変数間で論理的に成立する条件が満たされているかをチェックするツールです。

変数の間で論理的に成立すべき条件が満たされているか否かを検査するコードをプログラムの適切な箇所に挿入し,実行時に検査結果が確認できる支援ツール

インスペクタ

インスペクタは、構造体などのデータを見やすい形で表示し、簡易に確認できるようにしたツールです。

  • インスペクタは,プログラム実行時にデータ内容を表示する。

仮想記憶方式における補助記憶

仮想記憶方式における「補助記憶」は、コンピュータシステムにおいて主記憶(物理メモリまたはRAM)の拡張として使用される記憶装置を指します。主記憶が物理メモリである場合、補助記憶は通常、ハードディスクドライブやソリッドステートドライブ(SSD)などの永続的なストレージデバイスを指します。補助記憶は、主記憶の容量を超えるデータを格納および管理するために使用され、仮想記憶システムの一部として機能します。

  • 主記憶からページアウトされたページを格納する。

クロスコンパイラ

クロスコンパイラは、コンパイラが動作している以外のプラットフォーム向けに実行ファイルを生成する機能を持つコンパイラです。主に組込みシステム向けのコンパイラとして使われたり、マルチプラットフォーム対応のコンパイルに使われます。

処理時間順方式

処理時間順方式は、処理時間の短いタスクを優先的に実行するスケジューリング方式です。新たなタスクが到着すると処理の待ち行列に加わり、CPUが空くと待ち行列の中から予想処理時間が最も短いタスクが選択され、実行状態に移されます。また、ジョブの多重度が1なので、CPUは同時に1つのジョブしか処理できません

スラッシング(Thrashing)

スラッシング(Thrashing)は、コンピュータの仮想メモリ管理に関連する現象で、システムが過剰なページング(ページフォルトによるディスクアクセス)を引き起こし、パフォーマンスが急激に低下する現象を指します。スラッシングは、物理メモリ(RAM)よりも大量のページがアクティブになり、これらのページをディスクから読み取りまたは書き込みする必要がある場合に発生します。この過程で、システムはほとんどの時間をディスクアクセスに費やし、実際のタスク処理が停滞するため、非常に低いパフォーマンスが得られます。

ページング方式の仮想記憶において,ページ置換えの発生頻度が高くなり,システムの処理能力が急激に低下することがある。このような現象

仮想記憶方式では,割り当てられる実記憶の容量が小さいとページアウト,ページインが頻発し,スループットが急速に低下することがある。

セマフォ

セマフォ(Semaphore)は、並行プログラムやマルチスレッドプログラムなどの複数のプロセスやスレッドが共有リソースへのアクセスを調整するための同期機構の一つです。セマフォは、ディジタル信号や整数値として表現され、通常は次の2つの操作をサポートします。

一つのI2Cバスに接続された二つのセンサがある。それぞれのセンサ値を読み込む二つのタスクで排他的に制御したい。利用するリアルタイムOSの機能

ターンアラウンドタイム

ターンアラウンドタイム(Turnaround Time)は、プロセスやジョブがコンピュータシステム内で実行される際にかかる時間の合計を指します。この時間には、プロセスがシステムに送信されてから実行が完了するまでのすべての時間が含まれます。

タスクのディスパッチ

タスクのディスパッチ(Task Dispatch)は、コンピュータのプロセス管理において、特定のタスクやジョブを実行するために、対応する実行環境に割り当てるプロセスです。これは、多くの場合、マルチタスクオペレーティングシステムや分散コンピューティング環境で重要な役割を果たします。

  • あるタスクの実行中に,別のタスクに切り替え,かつ実行権を渡すこと

テストカバレージ分析ツール

ホワイトボックステストにおいて,プログラムの実行された部分の割合を測定するのに使うもの

テストカバレージ分析は、テストの網羅率(カバレッジ)を定量的に測定するためのツールです。網羅率は、ソフトウェアの品質やテスト妥当性を評価する際の指標になります。

ディストリビュータ

ディストリビュータ(Distributor)は、OSSとして個々に開発されている(狭義の)OS、ライブラリやコマンドなどのユーティリティ、GUI、サーバソフトウェア、アプリケーションソフトウェアなどを組み合わせた実用的なパッケージを提供する者や組織です。提供されるパッケージを「ディストリビューション」と言い、LinuxだとDebian系やRedHat系が有名です。ディストリビューションには基本的な機能が一式揃っているので、利用者はディストリビューションをインストールするだけで、複雑な環境設定等をせずに様々な機能を使えるようになります。

ノンプリエンプティブ

ノンプリエンプティブとは、マルチタスクOS上で実行されているタスクの切替をプログラム自身に任せ、プログラムがCPUを自発的に開放したタイミングで他のタスクへの切り替えを行うマルチタスク制御方式のことをいいます。OSがCPUを管理しないので、1つのプログラムを実行中は、その他のプログラムの実行は制限されます。

  • 到着順

フラグメンテーション

フラグメンテーション(Fragmentation)は、コンピュータシステムやデータストレージシステムにおいて、利用可能なリソースが不連続な断片(フラグメント)に分かれて配置される現象を指します。主に2つのタイプのフラグメンテーションがあります。

  • フラグメンテーションの発生によって,合計としては十分な空きメモリ領域があるにもかかわらず,必要とするメモリ領域を獲得できなくなることがある。

プリエンプション

プリエンプション(Preemption)は、コンピュータサイエンスおよびオペレーティングシステムの文脈で使用される用語で、実行中のプロセスやタスクが他のプロセスやタスクによって中断され、CPUの制御を一時的に奪われることを指します。プリエンプションは、マルチタスキングやマルチスレッド環境で特に重要です。

実行状態にあるタスクがOSの制御によりCPUの使用権を奪われ実行可能状態に移されることをいい、以下の状態を満たした場合に起こります。

  • 実行状態のタスクより優先度の高いタスクが実行可能状態になる
  • 実行状態のタスクに割り当てられたCPU使用時間が終了する

プログラム実行時の主記憶管理

プログラム実行時の主記憶管理は、コンピュータのオペレーティングシステムがプログラムが使用するメモリ領域を管理するプロセスを指します。主記憶(物理メモリまたはRAM)は、プログラムの実行時に必要なデータや命令を格納するために使用されます。以下は、プログラム実行時の主記憶管理に関連するいくつかの重要な要素です。

  • プログラムが使用しなくなったヒープ領域を回収して再度使用可能にすることを,ガーベジコレクションという。

ページング方式

ページング(Paging)は、コンピュータのメモリ管理方式の一つで、物理メモリ(RAM)および仮想メモリを固定サイズのブロックに分割する方式です。このブロックはページ(またはフレームとも呼ばれます)と呼ばれ、プロセスの仮想アドレス空間も同じサイズのページに分割されます。ページング方式において、物理メモリと仮想メモリのページは、対応するページテーブルを使用してマッピングされます。

ページフォールト

プログラムの実行に必要なページが主記憶に存在していないときに発生する割込み

ページアウト

主記憶上のページを仮想記憶に移動させる処理

ページイン

仮想記憶上のページを主記憶に移動させる処理

  • ページフォールト=ページイン≧ページアウト

デマンドページング

デマンド(demand)とは要求を意味する英語で、その名の通りアクセス要求があった時に要求があったページのみを主記憶に読み込む方式。
メモリ使用量を節約できる、プログラム開始時の主記憶へのロードによる遅延がない、ページの読込みが最小限で済むなどの利点があり、実際のOSでは基本的にこの方式が用いられている。

  • 将来必要と想定されるページを主記憶にロードしておくので,実際に必要となったときの補助記憶へのアクセスによる遅れを減少できる。

プリページング

ページにアクセス要求がある前に、前もって参照されそうなページを主記憶に読み込んでおく方式。
アクセス要求があった時に周辺のページも同時に主記憶に読み込んだり、プログラムのロード時にたくさんのページを読み込んでおくことで、メモリ使用量は増加するがメモリアクセスの効率を向上させることができる。

プロファイラ(Profiler)

プロファイラ(Profiler)は、プログラムを実行した際に、どの関数が何回実行され、その処理時間がどれくらいであったかなど計測する性能解析ツールです。ボトルネックの特定やパフォーマンスの改善に役立てることができます。

ベストフィット方式

ベストフィット方式は、メモリ割り当てを制御するアルゴリズムで、空き領域の大きさ順リストを先頭から探索し、要求サイズに最も合致する空きブロックを割り当てる方式です。(“最も合致する”とは要求サイズよりも大きく、割り当て後の残り領域が最も小さくなること)
最もフィットする領域を使用するのでメモリ割り当てごとに小さい空き領域が生じ、最終的には使用するのが難しいほど小さな領域が多数残る傾向があります。

ラウンドロビンスケジューリング方式

ラウンドロビンスケジューリング(Round Robin Scheduling)は、コンピュータのプロセススケジューリング(プロセス管理)において使用される一般的なスケジューリング方式の一つです。この方式は、複数のプロセスが共有リソース(CPU時間など)を競合して利用する場合に、公平な割り当てを行うために使用されます。

  • タイムシェアリングシステムのスケジューリングに適している。
  • 各プロセスを待ち行列の順にタイムクウォンタムずつ処理し,終了しないときは待ち行列の最後につなぐ。
PAGE TOP