「ソフトウェア」カテゴリーアーカイブ

オペレーティングシステム(OS)

情報処理技術者試験での学習内容

【応用情報】
・OS の種類,特徴,機能,構成を修得し,応用する。
・ジョブ管理,タスク管理,記憶管理などOS の代表的な機能,役割を修得し,応用する。
・プログラムの形態,性質,OS の動向を修得し,応用する。

【基本情報】
・OS の種類,特徴,機能,構成を理解し,担当する事項に適用する。
・ジョブ管理,タスク管理,記憶管理などOS の代表的な機能について,管理の仕組みを
理解し,担当する事項に適用する。

【ITパスポート】
オペレーティングシステム(OS:Operating System)の必要性,機能,種類を理解する。

(1)OS の種類と特徴 ITパスポート 基本情報 応用情報

ソフトウェアの体系におけるOS の位置付けと必要性,汎用機用,パソコン用,リアルタイム用などのOS の種類,特徴を理解する。

用語例:システムソフトウェア,UNIX,PC 用OS,オープンOS,リアルタイムOS,VM(Virtual Machine:仮想マシン),互換性

(2)OS の機能と構成 ITパスポート 基本情報 応用情報

OS の機能,構成,カーネル,言語プロセッサなどを理解する。

用語例:マイクロカーネル,モノリシックカーネル,ミドルウェア,カーネルモード(スーパバイザモード),特権モード,ユーザモード,非特権モード,コンパイラ,インタプリタ,リンケージエディタ,サービスプログラム,仮想記憶管理,プロセス管理,タスク管理,記憶管理,データ管理,運用管理,障害管理,入出力管理,ユーザ管理,割込み,多重(マルチ)プログラミング,ブートストラップ,ネットワークブート,マルチブート,フラッシュブートローダ

(3)ジョブ管理 基本情報 応用情報

一つのまとまった仕事の単位であるジョブと,それを構成するジョブステップの概念,ジョブ管理の手順,ジョブ管理に関連する制御プログラムの役割を理解する。

用語例:ジョブスケジューラ,マスタスケジューラ,セション,省力化,自動運転,システム管理,バックグラウンドジョブ,バッチ処理,cron

(4)タスク管理 基本情報 応用情報

1.タスクと状態遷移

タスクとジョブステップ,スレッドとの関係,タスクの生成から実行,消滅までの状態遷移,ディスパッチャの役割を理解する。

用語例:軽量プロセス,実行可能状態,実行状態,待ち状態,プロセス,スレッド

2.多重(マルチ)プログラミング(マルチタスク)とスケジューリング

多重(マルチ)プログラミングの考え方,タスクのスケジューリングの代表的な方式について,スケジューリングの方法,特徴,スケジューリングにおけるトリガと優先順位の役割,同期制御・排他制御の必要性,実現方法を理解する。また,タスクとタスクの同期,タスク間でのデータの受け渡し,マルチスレッドの考え方,並列処理などを理解する。

用語例:プリエンプティブ方式,ノンプリエンプティブ方式,タイムスライス方式,イベントドリブン方式,フィードバック待ち行列方式,処理時間順方式,優先順,静的優先順位方式,動的優先順位方式,ラウンドロビン,SJF(Short Job First),最短時間順,割込み禁止,マルチCPU,排他制御,FCFS(First Come First Served),タイムクウォンタム,リソーススタベーション,SVC(Super Visor Call)割込み,入出力終了割込み,ディスパッチ

(5)データ管理 基本情報 応用情報

補助記憶装置へのアクセスを装置に依存しないインタフェースで応用プログラムに提供する機能を理解する。

用語例:レコード,スペース管理,カタログ管理,ファイル保護

(6)入出力管理 基本情報 応用情報

入出力装置を効率良く動作させる入出力制御方式の種類,特徴,チャネルの種類,データ転送方式など,入出力制御の仕組みを理解する。また,スプール,バッファリングなどCPUのアイドル時間を減らして効率を上げるための仕組みを理解する。

IOCS(Input/Output Control System:入出力制御システム),スプーリング,バッファプール,入出力ポート(I/O ポート),入出力マッピング(I/O マッピング),メモリマッピング,チャネル,チャネル制御方式,DMA(Direct Memory Access:直接記憶アクセス),チャネルサブシステム,セレクタチャネル,マル
チプレクサチャネル,入出力割込み,メモリマップドI/O,I/O マップドI/O

(7)記憶管理 基本情報 応用情報

1.実記憶管理

記憶領域の管理方式である固定区画方式,可変区画方式など,実アドレス空間の割当て方式の特徴,フラグメンテーションとその対策を理解する。また,主記憶装置を効率良く使うためのスワッピングとオーバレイを理解する。

用語例:実アドレス方式,単一連続割当て方式,記憶域管理アルゴリズム(ファーストフィット,ベストフィット,ワーストフィット),メモリコンパクション,ロールイン,ロールアウト,スワップイン,スワップアウト,セグメント方式,コンパクション

2.仮想記憶管理

実記憶と仮想記憶の関係,仮想記憶の有効性,仮想記憶方式の種類と特徴,動的アドレス変換の仕組みを理解する。また,ページング方式の代表的なページ置換えアルゴリズムについて,ページ置換え手順を理解する。

用語例:ベースアドレス方式,セグメント方式,セグメントページング方式,単一仮想空間方式, 多重仮想空間方式, スラッシング, DAT ( Dynamic Address Translator:動的アドレス変換),TLB(Translation Lookaside Buffer),ページフォールト,ページイン,ページアウト,デマンドページング,ページリプレースメント,LRU,FIFO,ワーキングセット

(8)ネットワーク制御 基本情報 応用情報

ネットワーク制御プログラムの役割,機能,OS における位置付けを理解し,OS が提供する通信インタフェースを理解する。

用語例:ネットワークOS,LAN,WAN,プロトコル制御,リアルタイムOS,通信プロトコル,TCP/IP,OSI 基本参照モデル

(9)運用の管理 基本情報 応用情報

システム始動処理(OS の初期化),システム終了処理,オペレータとの交信,ユーザ管理機能,スケジューリング,システムモニタリングなど,運用に関する容易性や柔軟性を実現する機能を理解する。

用語例:プロファイル,ユーザアカウント,システム利用権,ファイルアクセス権,端末利用権,ディスククオータ

(10)ユーザ管理 基本情報 応用情報

ユーザアカウントの種類,特徴を理解し,アカウントの作成方法,パスワードの設定や変更方法,権限の付与や変更方法などを理解する。また,アカウントを一元管理するためのディレクトリサービスなどを理解する。

用語例:スーパユーザ,root,Administrator,ゲスト,管理者権限,LDAP,Active Directory

(11)セキュリティ制御 基本情報 応用情報

OS には,アクセス制御,フロー制御,推論制御,暗号化制御などのセキュリティ制御機能があることを理解し,OS での制御方法の種類と特徴を理解する。また,ファイル保護,外部からの侵入検出と防御などのセキュリティが施されたセキュリティカーネルの特徴を理解する。

用語例:外部セキュリティ,内部セキュリティ,多重レベルセキュリティ,BLP(Bell-LaPadula)モデル,ロギング機能,オーディット機能,アカウンタビリティ,信頼プロセス, 完全性, 隔離, 認証, 検証可能性, ITSEC ( Information Technology Security Evaluation Criteria)

(12)障害管理 基本情報 応用情報

障害の検出,試験と診断,自動訂正,障害の記録,再構成,リスタート,原因の解決など,障害発生から対策完了までの一連の工程を理解する。

用語例:タイマ監視,CPU 監視装置,ハードウェア障害,ソフトウェア障害,再構成(動的装置再構成,自動CPU 再構成),多重化(入出力パスの多重化,補助記憶装置の二重化,ライブラリの二重化,ディスクの二重書き),システムの多重化(デュアルシステム,デュプレックスシステム),ホットスタンバイシステム,障害回復ルーチン

(13)プログラムの形態と性質 応用情報

プログラムには,ソースプログラム,オブジェクトプログラムなどの形態があること,ソースプログラムの管理対象には,データ構造定義,レコード構造定義などのマクロソースがあることを理解する。また,再入可能プログラム,逐次再使用可能プログラムなどの性質と,それらの使用のされ方を理解する。

用語例:原始プログラム,目的プログラム,コンパイラ,ロードモジュール,ローダ,ライブラリ,動的リンキング,リエントラント,API,ABI(Application Binary Interface),POSIX(Portable Operating System Interface),SCM(Software Configuration Management:ソフトウェア構成管理)

(14)サービスプログラム 応用情報

サービスプログラムの種類と特徴を理解する。

用語例:ユーティリティプログラム,整列プログラム,併合プログラム,フォーマッティング,アーカイバ,データ編集,ファイルコピー,バックアップ

(15)OS の動向 応用情報

OS に関連する最新のトピックス,標準化,技術動向などを理解する。

用語例:移動型小型OS,JavaOS,携帯電話系OS,OSE(Open Systems Environment),ODP(Open Distributed Processing:開放型分散処理),セキュアOS,クラウドコンピューティング用OS

OSの種類と特徴

この記事での学習内容 ITパスポート 基本情報 応用情報

ソフトウェアの体系におけるOS の位置付けと必要性,汎用機用,パソコン用,リアルタイム用などのOS の種類,特徴を理解する。

用語例:システムソフトウェア,UNIX,PC 用OS,オープンOS,リアルタイムOS,VM(Virtual Machine:仮想マシン),互換性

オペレーティングシステム(Operating System:OS)

OSはプログラムの実行を管理するソフトウェアです。作業の運用(オペレーション)に由来しています。

OSは「プログラムを主記憶装置に読み込む」「ユーザが入力した文字を画面に表示させる」などといった、コンピュータの基本的な動作を指示するソフトウェアであり、OSがあることによって、さまざまなアプリケーションソフトを起動できるようになります。

OSの種類

主なOSには次のようなものがあります。

名前インタフェースハードウェア特徴
WindowsGUIPC
(PC/AT互換機)
マルチタスク、プラグアンドプレイ等に対応
PC向けOSのデファクトスタンダード
Mac OSGUIPC
(Macintosh)
マルチタスク、プラグアンドプレイ等に対応
GUIに優れ、マルチメディア系のソフトが豊富
UNIXCUIサーバマルチユーザ、マルチタスク対応OS
ソースコードが公開されており移植性が高い
LinuxCUIPC/サーバPC上でUNIX環境を作るために開発され、無償で配布されるOS

OSの働き

OSの主な働きには次のものがあります。

入出力管理
周辺機器のコントロールやヒューマンインタフェースの提供など、コンピュータが動作する環境を管理します。
タスク管理
タスクの実行管理を行います。一度に複数のアプリケーションを動かすOSの機能を、マルチタスクといいます。
メモリ管理
マルチメディア処理のような大容量のメモリが必要な処理にも対応できるよう、メモリの使用領域を管理して効率良く使えるようにします。
ファイル管理
ディレクトリ(フォルダ)などを使ってファイルを効率よく格納します。
ユーザ管理
ユーザIDの登録・抹消の管理、ユーザ別のアクセス権の管理を行います。

*ハードウェアやOSによって構成される、アプリケーションソフトを実行するための動作環境のことをプラットフォームといいます。

OSの機能と構成

この記事での学習内容 ITパスポート 基本情報 応用情報

OS の機能,構成,カーネル,言語プロセッサなどを理解する。

用語例:マイクロカーネル,モノリシックカーネル,ミドルウェア,カーネルモード(スーパバイザモード),特権モード,ユーザモード,非特権モード,コンパイラ,インタプリタ,リンケージエディタ,サービスプログラム,仮想記憶管理,プロセス管理,タスク管理,記憶管理,データ管理,運用管理,障害管理,入出力管理,ユーザ管理,割込み,多重(マルチ)プログラミング,ブートストラップ,ネットワークブート,マルチブート,フラッシュブートローダ

システムソフトウェア

システムソフトウェアは、基本ソフトウェアとミドルウェアに大別されます。基本ソフトウェアというのは、広い意味でのOSです。

基本ソフトウェアには、狭義のOS、言語プロセッサ、サービスプログラムが含まれます。

ミドルウェア

ミドルウェアはOSとアプリケーションソフトウェアの中間で動作するソフトウェアです。多くのアプリケーションソフトウェアに共通する機能を標準的なインタフェースで提供します。

ミドルウェアの例としては、Java VMなどの仮想マシン環境や、データベース管理システム、クラスタ管理システム、統合運用管理システムなどがあります。

API(Application Programming Interface)

多くのアプリケーションに共通する、ウィンドウ操作や印刷などの機能については、OSやミドルウェアで用意されていることがあります。これらをアプリケーションから、呼び出すための仕様をAPIといいます。

OSの構成

OSはカーネルとカーネルモジュールから構成されています。

カーネルは、メモリ管理やタスク管理、周辺機器の管理などを行うOSの中核的な機能です。

カーネルモジュールは必要に応じてOSに追加される部品で、デバイスドライバなどがあります。

OSの実行モード

OSの実行モードには以下のものがあります。

  • カーネルモード:あらゆるハードウェアにアクセス可能(OSの実行モード)
  • ユーザモード:周辺機器やメモリへのアクセスが制限・監視される(通常のアプリケーションの実行モード)

マイクロカーネル

マイクロカーネルとは、オペレーティングシステムの同心円構造において、タスク管理やメモリ管理などの最小限の機能だけを担うように設計されたカーネルです。それ以外の機能は外側の層として作動します。マイクロカーネルの特徴は、簡潔で保守性が良いことです。

モノリシックカーネル

モノリシックカーネルとは、オペレーティングシステムの同心円構造において、プログラム管理、メモリ管理、入出力管理、ネットワーク管理などの基本的な機能をモノリシック(一枚岩)のように担うように設計されたカーネルです。

言語プロセッサ

言語プロセッサとは、ある文法に従うコンピュータ言語を処理するソフトウェアの総称です。オペレーティングシステムが作業を運用するのに対して、言語プロセッサは作業の段取り(プログラム)を準備するものです。

言語プロセッサには次のような種類があります。

名称特徴
アセンブラアセンブラ言語を機械語へ翻訳する。
コンパイラ高水準言語を機械語へ翻訳する。
インタプリタ高水準言語の文を一つひとつ解釈しながら実行する。
ジェネレータパラメータを入力してプログラムを生成する。
エミュレータ別の種類のコンピュータ用のプログラムを実行する。
トランスレータ高水準言語を異なる高水準言語に翻訳する。

言語プロセッサが入力するプログラムを原始プログラム、言語プロセッサが出力する機械語などのプログラムをオブジェクトモジュールといいます。

サービスプログラム

サービスプログラムとは、コンピュータの基本ソフトウェアの中で、オペレーティングシステム、言語プロセッサ以外の、様々な機能を提供するソフトウェアのことで、ユーティリティプログラムともいいます。

言語プロセッサがプログラムという製品(プロダクト)を提供するのに対して、サービスプログラムは利用者が直接何かを処理するための役務(サービス)を提供します。

プログラム実行の手助けになる機能や、システム運用のための定型業務を行うプログラムなどがあります。

 

ジョブ管理

この記事での学習内容 基本情報 応用情報

一つのまとまった仕事の単位であるジョブと,それを構成するジョブステップの概念,ジョブ管理の手順,ジョブ管理に関連する制御プログラムの役割を理解する。

用語例:ジョブスケジューラ,マスタスケジューラ,セション,省力化,自動運転,システム管理,バックグラウンドジョブ,バッチ処理,cron

ジョブ

ジョブとは、メインフレームコンピュータやサーバに処理させる一連の仕事のまとまりを指し、ユーザから見た仕事の単位となります。一つのジョブはバッチ処理させる幾つかのジョブステップのまとまりで、ジョブ制御言語によって記述されます。
一つのジョブステップはいくつかのタスクで構成されます。タスクはシステム側から見た仕事の単位となります。

ジョブステップ

ジョブステップとは、一つのジョブを構成するより小さな単位です。ジョブとタスクの中間のまとまりです。一つのジョブステップが一つのプログラムの実行に相当します。

ジョブ管理

ジョブ管理はオペレーティングシステムの管理作業の一つであり、ユーザから依頼されるジョブ及びジョブステップの実行を管理します。オペレーティングシステムを構成するジョブ管理プログラムが、次のような処理をします。

  • ジョブの起動
  • ジョブステップの実行順序の管理
  • ジョブの終了の監視・報告
  • 複数のジョブの実行順序の管理
  • 日時指定のジョブの実行や定例的なジョブの反復

なお、ジョブ管理プログラムの構成は下記のようになっています。

  • マスタスケジューラ
  • ジョブスケジューラ
    • リーダ
    • イニシエータ
    • ターミネータ
    • ライタ

マスタスケジューラ

マスタスケジューラは、ジョブスケジューラより上位の制御をするプログラムです。オペレータからの指示をジョブスケジューラに伝えたり、ジョブスケジューラからの状況報告をオペレータに伝えたりします。(ユーザとジョブ管理プログラムとのやりとりを管理する部分)

ジョブスケジューラ

ジョブスケジューラは、待ち行列として並んでいるジョブの実行順序を制御します。

ジョブスケジューラは下記のプログラムから構成されています。

リーダ

ジョブ管理プログラムの最初の処理をするリーダは、ユーザから依頼された一連のジョブ制御分を入力して、解釈するプログラムです。

イニシエータ

イニシエータはジョブに必要な資源を割り振る準備処理をして、プログラムの実行を開始します。

ジョブの実行順序は、下記のようなルールで管理されます。

  1. 原則としてジョブは入力された順序に実行されます。
  2. 優先順位が指定されていれば、それに従います。
  3. 前提となるジョブの正常終了や異常終了に応じて、後継のジョブの実行開始や実行中止が指定されていれば、それに従います。
  4. 開始日時が指定されていれば、それに従います。
ターミネータ

ターミネータは、ジョブが使用した資源を解放する後始末をします。

ライタ

ライタは、ジョブの出力を処理します。例えばプリンタへの出力は速度が遅いので、指定したプログラムの実行中は高速な外部記憶装置へいったん出力して、ライタがプリンタへの出力を引き継ぎます。ジョブの実行とプリンタへの出力を並行処理することによって、コンピュータシステムの効率を向上させます。

ジョブスケジューリング

ジョブ管理プログラムでの、ジョブの処理順序をまとめると、以下のようになります。

  1. リーダが一連のジョブ制御文を入力する。
  2. ジョブスケジューラが、ジョブの実行順序をスケジューリングする。
    1. イニシエータがジョブの開始処理をする。
    2. <ジョブステップとして指定したプログラム群が実行される>
    3. ターミネータがジョブの終了処理をする。
  3. 必要ならマスタスケジューラが、オペレータとジョブスケジューラのやりとりを仲介する。
  4. ライタがジョブの報告を出力する。

タスク管理

この記事での学習内容 基本情報 応用情報

  • タスクとジョブステップ,スレッドとの関係,タスクの生成から実行,消滅までの状態遷移,ディスパッチャの役割を理解する。
  • 多重(マルチ)プログラミングの考え方,タスクのスケジューリングの代表的な方式について,スケジューリングの方法,特徴,スケジューリングにおけるトリガと優先順位の役割,同期制御・排他制御の必要性,実現方法を理解する。また,タスクとタスクの同期,タスク間でのデータの受け渡し,マルチスレッドの考え方,並列処理などを理解する。

用語例:軽量プロセス,実行可能状態,実行状態,待ち状態,プロセス,スレッド、プリエンプティブ方式,ノンプリエンプティブ方式,タイムスライス方式,イベントドリブン方式,フィードバック待ち行列方式,処理時間順方式,優先順,静的優先順位方式,動的優先順位方式,ラウンドロビン,SJF(Short Job First),最短時間順,割込み禁止,マルチCPU,排他制御,FCFS(First Come First Served),タイムクウォンタム,リソーススタベーション,SVC(Super Visor Call)割込み,入出力終了割込み,ディスパッチ

タスクとジョブステップ

ジョブステップは一つのプログラムの実行に相当し、一つのプログラムはいくつかの小さなタスクに分解されて、CPUや入出力チャネルなどのハードウェアで実行されます。

ジョブステップの実行順序は、ユーザがジョブ制御分によって指定することができます。これは人間の作業の日程計画に相当します。

一方、タスクの実行順序はユーザが指定するというよりも、前のタスクの実行終了によるCPUや入出力チャネルの空き具合に応じて、臨機応変に決定されます。

スレッド

タスクと似た仕事の単位には、プロセスやスレッドがあります。これらはオペレーティングシステムの種類によって用語の異なる同義語であることがあります。あるいはハードウェアの並列処理の細かさによる階層関係であることもあります。

典型的には、一つのタスクが幾つかのプロセスで構成され、一つのプロセスが幾つかのスレッドで構成されます。それらが並行処理の単位になり、ハードウェアを有効利用して、性能を向上させます。

タスクの生成から実行

タスクは、ハードウェアで実行される小さな作業単位であり、次のように状態遷移をして処理されます。

タスクが生成されると「実行可能状態」になります。ディスパッチャによって実行可能状態から「実行状態」になります。

タスクの消滅までの状態遷移(実行可能状態、実行状態、待ち状態)

実行状態のタスクは、入出力処理の間は待ち状態になります。入出力処理が終わると実行可能状態になります。
実行状態のタスクは、割り込みがあると実行状態から実行可能状態になります。

どちらの場合も実行可能状態のタスクはディスパッチャによる実行再開を待ちます。

タスクの実行が完了すると、使用した資源が開放され、タスクは消滅します。

ディスパッチャ

ディスパッチャとは並行処理されている複数のタスクやプロセスに、次々とCPUへ割り振るプログラムです。CPUの処理は極めて短時間なので、人間がジョブ制御文で実行順序を計画するよりも、ディスパッチャに実行制御を任せるほうが効率的です。

優先度順方式

スケジューリングの一種である優先度準方式は、各タスクに優先度を設定して、優先度の順に実行する方式です。

即時処理すべき業務と、それ以外の業務を区別することなどに役立ちます。優先度に低いタスクは、待ち時間が長引く可能性があります。

ラウンドロビン方式

スケジューリングの一種であるラウンドロビン方式は、中断されたタスクが待ち行列の最後に並ぶことによって、グルグル回るように順番が来るという単純な方式です。

多重プログラミング(マルチプログラミング)

多重プログラミングとは、1台のコンピュータで複数のプログラムを見かけ上並行処理する方式です。タスク管理などによってCPUと入出力チャネルを並行処理させることによって、ハードウェア資源を有効に利用し、処理能力を向上させます。

多重プログラミングにおけるタスクのスケジューリング方式には以下のような種類があります。

プリエンプティブ方式

プリエンプティブ方式は、本格的なタイムスライス方式です。オペレーティングシステムがハードウェアタイマを用いて、もれなく制御する方式です。

タイムスライス方式

スケジューリングの一種であるタイムスライス方式は、ハードウェア大麻によるクロック割込みによって、一定時間(タイムクォンタム)で次のタスクに切り替える方式です。長時間を要するタスクの終了を、他のタスクが待つ必要がなくなります。

タイムクォンタム

タイムクォンタムとは、タイムスライス方式においてタスクを切り替える一定時間のことです。タイムクォンタムを短くするほど、タスクの待ち時間が減る可能性が高まります。

タイムクォンタムと切替回数は反比例するので、タイムクォンタムを短くするほど、切替処理のオーバーヘッドが増える欠点があります。

ノンプリエンプティブ方式

ノンプリエンプティブ方式とは、簡易的なタイムスライス方式です。オペレーティングシステムの管理のもとに実行されるプログラムの側が、自発的に空き時間を開放する方式です。

オペレーティングシステムの処理が完結になりますが、何らかの理由で空き時間の開放がなされないと、ハードウェア資源の利用効率が落ちるという欠点があります。

マルチタスク(プログラミング)の実行イメージ

以下の2つのプログラムを並行処理させた場合のイメージは以下のようになります。

  • プログラムA:CPU(20ms)→I/O(30ms)→CPU(20ms)→I/O(40ms)→CPU(10ms)
  • プログラムB:CPU(10ms)→I/O(30ms)→CPU(20ms)→I/O(20ms)→CPU(20ms)

データ管理

この記事での学習内容 基本情報 応用情報

補助記憶装置へのアクセスを装置に依存しないインタフェースで応用プログラムに提供する機能を理解する。

用語例:レコード,スペース管理,カタログ管理,ファイル保護

データ管理

データ管理とは、論理的なファイルの入出力の管理です。オペレーティングシステムの一部である、データ管理プログラムが管理します。

特にメインフレームコンピュータのデータ管理では、次のようなことを扱います。

  • 物理的な入出力単位であるブロックを、論理的な入出力単位であるレコードとして扱えるようにする。
  • 固定長レコードや可変長レコードなどの様々な種類のレコードを扱う。
  • ファイルの開始処理および後始末処理をまとめて、オープン処理およびクローズ処理のモジュール呼び出しで済むように抽象化する。
  • 順編成ファイルや区分編成ファイルなどの、様々な編成のファイルを扱う。

 

入出力管理

この記事での学習内容 基本情報 応用情報

入出力装置を効率良く動作させる入出力制御方式の種類,特徴,チャネルの種類,データ転送方式など,入出力制御の仕組みを理解する。また,スプール,バッファリングなどCPUのアイドル時間を減らして効率を上げるための仕組みを理解する。

IOCS(Input/Output Control System:入出力制御システム),スプーリング,バッファプール,入出力ポート(I/O ポート),入出力マッピング(I/O マッピング),メモリマッピング,チャネル,チャネル制御方式,DMA(Direct Memory Access:直接記憶アクセス),チャネルサブシステム,セレクタチャネル,マルチプレクサチャネル,入出力割込み,メモリマップドI/O,I/O マップドI/O

入出力管理

入出力管理とは、コンピュータ本体と入出力装置との間の入出力の管理です。次のような機能があります。

  • オペレーティングシステム全体での標準的な入出力方式と、装置ごとの固有の処理を仲介する。装置ごとの固有の処理のアダプタとなるプログラムをデバイスドライバといいます。
  • データを直接に入出力するのではなく、バッファを経由させることによって、コンピュータ本体と入出力装置を並行処理させて性能を向上させる。バッファとはデータを一時的に保存する場所のことで、バッファ用の領域のことをバッファプールといいます。
  • プリンタなどの低速な装置の入出力データを、高速な外部記憶装置を経由させることによって性能を向上させる。この方式をスプーリングといいます。

入出力制御

入出力制御方式は、各種の入出力装置を効率よく動作させる方式のことです。データ管理や入出力管理と比べると、ハードウェア側の細かな制御です。入出力制御方式には、次のようなものがあります。

プログラム制御方式
プログラム中の入出力命令を実行して、レジスタを経由して、主記憶装置と入出力装置との間のデータのやり取りをします。低速な入出力処理の間、CPUが待たされます。
DMA(Direct Memory Access)方式
DMA方式とはプログラムが入出力命令を実行した時に、DMAコントローラという専用のハードウェアが主記憶装置と入出力装置との間のデータのやり取りをします。CPUと入出力装置が並行処理されます。
チャネル制御方式
チャネル制御装置という専用のプロセッサが。主記憶装置上のチャネルプログラムを解読して、一連の入出力命令とCPUとを並行処理します。元のプログラムはチャネルプログラム単位の処理依頼だけをします。

チャネル

チャネルとは、入出力や通信のためのデータの通路のことです。電気ケーブルに対応する物理チャネルと、一対一には対応しない論理チャネルとがあります。

チャネル制御装置(チャネルコントローラ)は、チャネルを経由してデータをやり取りする簡単なプロセッサです。CPUと入出力装置の並行処理を可能にします。DMAコントローラもこの仲間です。

入出力割込み

外部割込みの一種であり、入出力が完了したり、入出力に異常が起きたりした時に起こります。入出力割込みが起きるまでは、CPUは他のタスクを処理できるので、並行処理によって性能を向上させることができます。

 

記憶管理

この記事での学習内容 基本情報 応用情報

  • 記憶領域の管理方式である固定区画方式,可変区画方式など,実アドレス空間の割当て方式の特徴,フラグメンテーションとその対策を理解する。また,主記憶装置を効率良く使うためのスワッピングとオーバレイを理解する。
  • 実記憶と仮想記憶の関係,仮想記憶の有効性,仮想記憶方式の種類と特徴,動的アドレス変換の仕組みを理解する。また,ページング方式の代表的なページ置換えアルゴリズムについて,ページ置換え手順を理解する。

用語例:実アドレス方式,単一連続割当て方式,記憶域管理アルゴリズム(ファーストフィット,ベストフィット,ワーストフィット),メモリコンパクション,ロールイン,ロールアウト,スワップイン,スワップアウト,セグメント方式,コンパクション、ベースアドレス方式,セグメント方式,セグメントページング方式,単一仮想空間方式, 多重仮想空間方式, スラッシング, DAT ( Dynamic Address Translator:動的アドレス変換),TLB(Translation Lookaside Buffer),ページフォールト,ページイン,ページアウト,デマンドページング,ページリプレースメント,LRU,FIFO,ワーキングセット

実記憶管理

実記憶管理とは、それぞれのプログラムとそのためのデータが使用する主記憶装置の領域の確保および解放の管理です。基本的な領域の区画方法の管理、限られた主記憶装置領域の有効利用、および領域の制約の解消などを行います。

固定区画方式

固定区画方式とは、主記憶管理の区画方式の一種であり、主記憶を固定長の区画として管理する方式です。管理が簡単ですが、それぞれのプログラムが使用する領域は可変なので、使用されない部分が無駄になります。固定区画方式には区画が一つだけの単一区画方式と多重区画方式とがあります。

単一区画方式は、区画が一つだけであり、最も簡単な方式です。

多重区画方式は、複数の区画を設けて、それぞれのプログラムに割り当てます。単一区画方式より少し管理が複雑になりますが、複数のプログラムを処理できます。

いずれの方法でも、プログラムが使用しない部分が無駄になります。

可変区画方式

可変区画方式とは、主記憶管理の区画方式の一種であり、それぞれのプログラムに必要なだけの可変長の領域を割り当てるため、主記憶装置の利用効率が高まります。

各プログラムの実行が終了すると、使用していた領域は開放されます。次々に実行されるプログラムの使用領域の大きさはそれぞれ異なるので、空き領域が細分化されて利用しにくくなるという、フラグメンテーションが発生します。

フラグメンテーション対策

主記憶装置や仮想記憶用の外部記憶装置の空き領域は、次々とプログラムを実行して、領域の確保と開放を繰り返しているうちに、領域が細分化されて再利用しにくくなるという、フラグメンテーションが発生します。

使用中の領域を移動させて隣り合わせに配置し直して、細分化されていた空き領域を隣り合わせにまとめて再利用しやすく処理をデフラグメンテーション又はコンパクションといいます。

ガベージコレクション

ガベージコレクションとは、「ゴミ集め」という意味の言葉であり、プログラムが使用しなくなった主記憶領域を集めて、再利用に備えることです。主記憶領域の再利用に備える処理には次のような種類があります。

  • プログラムの実行終了時に、一括して領域を解放する。解放のためのオーバーヘッドが少なくて済みますが、きめ細やかな再利用はできません。
  • プログラムの実行中に、関数実行などによって、きめ細かく領域の確保と解放を行う。領域の有効利用ができますが、開放のためのオーバーヘッドが多くなります。

ガベージコレクションは、専用のプログラムが使用しなくなった領域を開放するので、領域の有効利用とオーバーヘッドのバランスをとることができます。

オーバーレイ方式(セグメント方式)

オーバーレイ方式は、一つのプログラムを主記憶装置の区画に収まる大きさのセグメントに分割しておき、実行するセグメントをその都度外部記憶装置からロードする方式です。オペレーティングシステムの主記憶管理よりも、プログラム側とプログラム管理が主記憶装置の使用方法を考慮する方式です。

仮想記憶

仮想記憶とは、領域の物理的なアドレスとは別に仮想的なアドレスを設けて管理される記憶領域です。飛び飛びの領域を一連の領域として利用したりします。

フラグメンテーション対策として、プログラムやデータを移動したり、空き領域をまとめたりする必要が無いことと、主記憶装置の全体の大きさや区画の大きさを気にせずに、大きな領域を使用できることが仮想記憶のメリットです。

処理しなければならないプログラムやデータが主記憶装置の空き領域に格納しきれない時、一旦ハードディスク上の仮想記憶領域へ一部を書き出し、必要に応じて主記憶装置と仮想記憶の間でプログラムやデータを入れ替えながら処理を進める方法で、この入れ替えをスワッピングといいます。

補助記憶装置は主記憶装置よりも低速なので、スワッピングが多発すると処理に時間がかかるのが仮想記憶のデメリットです。

スワップイン(ロールイン)

仮想記憶のスワッピングにおいて、プログラムやデータを補助記憶装置から主記憶装置へ読み込むことをスワップイン又はロールインといいます。

スワップアウト(ロールアウト)

仮想記憶のスワッピングにおいて、プログラムやデータを主記憶装置から補助記憶装置へ書き出すことをスワップアウト又はロールアウトといいます。

スワッピングの欠点

仮想記憶と、主記憶装置の容量不足で実行できなかったプログラムを動かせるようになります。その反面、転送速度の遅いハードディスクなどの補助記憶装置に繰り返しアクセスしなければならないという欠点があります。そのため、スワッピングが多発すると、全体の処理速度が低下してしまいます。

スラッシング

スラッシングとは、仮想記憶にロードされたプログラムの数が多すぎたり、巨大なプログラムがロードされたりして、主記憶装置と補助記憶装置との間のプログラムやデータのやり取りが頻繁になり、補助記憶装置が激しく作動していながら、プログラムの実行がなかなか進まないことです。

スラッシングへの対策としては、プログラムの数や大きさを制限したり、主記憶装置を容量の大きいものに取り替えるといったことがあります。

仮想記憶管理

仮想記憶管理とは、仮想記憶を取り扱う管理のことです。ハードウェア側の仮想記憶管理の機構が処理する場合があります。また、オペレーティングシステムの記憶管理プログラムが介在する方式もあります。

仮想記憶管理を行うために必須なのが、動的アドレス変換機構(DAT:Dynamic Address Translator)と呼ばれるものです。

動的アドレス変換の代表的な方式としては、ページングという方式があります。(他の方式として、セグメント方式、セグメントページング方式など)

ページング方式

ページング方式は、主記憶とプログラムを固定長であるページに分割し、効率よく記憶管理する方法です。「大きなプログラムの実行でも、ごく短い時間を見れば、必要なのはほとんど一部のみである」という性質を利用したもので、この場合のプログラムの実行は下記の手順で行われます。

  1. 主記憶とプログラムをページ単位に分割
  2. 実行に必要なページを補助記憶から主記憶にロード(ページイン)
  3. 必要なページが主記憶上にない場合、ページ不在の割り込み(=ページフォルト)が発生します。この時、補助記憶から主記憶城の空きスペースにページインします。
  4. どんどんロードしていくと、主記憶に空きスペースがなくなります。
  5. ページ置き換えアルゴリズムに従い、置き換え対象のページを決定します。
  6. 実行に必要のないページを補助記憶に退避します(ページアウト)
  7. 実行に必要なページを主記憶上にロードします(ページイン)

ページイン、ページアウトの操作を総じて、ページングと呼んでいます。また、ページングが多発する現象をスラッシングといいます。

ページフォールト

ページフォールトとは、必要な仮想記憶のページが主記憶装置上にない状態です。ページフォールトは、割込みの形で仮想記憶管理の機構に知らされます。

ページ置き換え

ページ置き換えとは、ページング方式の記憶管理において、主記憶装置の空き領域が不足した時、ページの置き換えをする処理です。ページ置き換えアルゴリズムが使われます。

ページ置き換えアルゴリズム(FIFO,LRU)

ページ置き換えアルゴリズムとは、ページング方式の記憶管理において、主記憶装置の空き領域が不足した時、ページを置換する処理のアルゴリズムです。

FIFOやLRU、LFUというページ置き換えアルゴリズムがあります。

FIFO(First In First Out)
最初に読み込まれたページを最初に補助記憶装置へ書き出すというアルゴリズムです。処理は簡単ですが、頻繁に使われているページが書き出されると性能が低下します。
LRU(Least Recently Used)
最も長く使われていないページを補助記憶装置へ書き出すというアルゴリズムです。使用履歴が必要なのでアルゴリズムは少し複雑ですが、頻繁に使われているページは主記憶装置にある確率が高いので、性能が良くなります。
LFU(Least Frequency Used)
最も使用頻度の低いページを補助記憶装置へ書き出すというアルゴリズムです。使用履歴が必要なのでアルゴリズムは少し複雑ですが、頻繁に使われているページは主記憶装置にある確率が高いので、性能が良くなります。

セグメント方式

セグメント方式は、プログラムやデータをセグメントという可変の大きさの区分で記憶管理をする方式です。セグメントが仮想記憶やメモリ保護の単位になります。各セグメントの先頭アドレスと大きさは、セグメントテーブルで管理されます。

一定の大きさのページという区分を用いるページング方式より、手間はかかりますが、領域のムダは少なくなります。

セグメントページング方式

セグメントページング方式は、ページング方式とセグメント方式を組み合わせた方式です。セグメントテーブルの各セグメントにページテーブルをリンクします。

ページング方式の簡潔さを活かしつつ、セグメントの種類によってプログラムのセグメントを書き換え禁止にしたり、リードオンリーのセグメントを共有したりすることができます。

ネットワーク制御

この記事での学習内容 基本情報 応用情報

ネットワーク制御プログラムの役割,機能,OS における位置付けを理解し,OS が提供する通信インタフェースを理解する。

用語例:ネットワークOS,LAN,WAN,プロトコル制御,リアルタイムOS,通信プロトコル,TCP/IP,OSI 基本参照モデル

ネットワーク制御

ネットワーク制御とは、コンピュータがネットワークを経由してデータの送信・受信をすることやその際の通信異常などを制御することです。オペレーティングシステムの機能の一つであり、入出力管理が入出力装置を管理するように、ネットワーク制御はネットワークアダプタやLANカードなどのネットワーク用の装置を制御します。高水準の処理はネットワーク管理ともいいます。通信制御・通信管理も類似の概念です。

通信プロトコルはコンピュータ同士がネットワーク経由で通信を行うために、ネットワーク全体で決められた通信手順です。送信するデータの他に、送信先アドレス、発信元アドレスなどを付加する規約です。

OSI参照モデルは国際最標準化機構(ISO)が定めた次の表のような階層モデルの規定です。ネットワークを扱うシステムを階層的にして、全体を簡潔かつ柔軟にするのに役立ちます。

7アプリケーション層ユーザレベルの通信。メールやファイルの転送等。
6プレゼンテーション層データの表現方法。圧縮や文字コード、暗号化など。
5セッション層通信の開始から終了までの1回分の手順。プログラム間の会話単位の制御。
4トランスポート層エラー訂正や再送信などの信頼性の確保。
TCP(Transmission Control Protocol)など。
3ネットワーク層通信経路の選択(ルーティング)
IP(Internet Protocol)など。
2データリンク層装置間の信号の送受信。
スイッチングHUBなど。
1物理層物理的なコネクタの形状や電気的な信号

 

 

運用の管理

この記事での学習内容 基本情報 応用情報

システム始動処理(OS の初期化),システム終了処理,オペレータとの交信,ユーザ管理機能,スケジューリング,システムモニタリングなど,運用に関する容易性や柔軟性を実現する機能を理解する。

用語例:プロファイル,ユーザアカウント,システム利用権,ファイルアクセス権,端末利用権,ディスククオータ

運用に関する容易性や柔軟性を実現する機能

オペレーティングシステムの基本的な昨日は、個々のプログラムの運用(実行)を管理することです。その他プログラム群の全体の運用管理をする機能もあります。それによってユーザが全体の運用をする操作が用意かつ安全になります。また、オプションも選択できて、ユーザ間の違いに柔軟に対応します。

システム指導処理は、システムの開始時にはオペレーティングシステムのさまざまな初期化のプログラム群を一連の手続きにまとめて、ユーザの操作を容易にします。また日常のシステムの指導のときには、基盤となるプログラム群をまとめて実行開始します。

システム終了処理は、電源をオフにする前に、基盤として実行されていたプログラム群をまとめて終了させます。

運用の面倒を見るオペレータのためには、システムと更新する機能、システムの状態を監視するためのシステムモニタリング機能、および定形操作や期日指定の処理を容易にするスケジューリング機能があります。

その他に、ユーザ管理、セキュリティ制御、および障害管理の機能があります。

 

 

ユーザ管理

この記事での学習内容 基本情報 応用情報

ユーザアカウントの種類,特徴を理解し,アカウントの作成方法,パスワードの設定や変更方法,権限の付与や変更方法などを理解する。また,アカウントを一元管理するためのディレクトリサービスなどを理解する。

用語例:スーパユーザ,root,Administrator,ゲスト,管理者権限,LDAP,Active Directory

ユーザアカウントの種類

ユーザアカウントは、ユーザの権利の単位となる「口座」に相当します。ユーザアカウントはユーザ名やパスワードによって識別されます。その他のユーザ固有の情報やオプション指定を含めてプロファイルといいます。

ユーザアカウントには権限の異なる次のような種類があります。

スーパユーザ
システムのすべての操作ができる管理者権限を持つユーザです。オペレーティングシステムによっては、rootやAdministratorといいます。
標準ユーザ
一般的なファイル、フォルダ、およびプログラムへのアクセス、自分のプロファイルの変更、およびスーパユーザが許可するソフトウェアやハードウェアのインストールやアンインストールの権限を持ちます。このような権限の範囲が付与されることによって、一つのシステムを他のユーザと共用することができます。
ゲスト
システムを一時的に使用するユーザです。所定のゲスト用のユーザ名やパスワードを用いてシステムを使用します。ソフトウェアやハードウェアのインストール及びアンインストールはできません。また、ファイルの新規作成、削除、および保存には制限がつきます。

管理者権限

システムのすべての操作ができる権限を管理者権限といいます。あらゆすソフトウェアおよびハードウェアのインストールおよびアンインストール、システムの基盤となる設定、ファイル、およびフォルダへのアクセス、およびそれらの新規作成、変更、削除ができます。また、ユーザアカウントの許可や設定変更などの権限も持ちます。

ディレクトリサービス

ディレクトリサービスは、システムやネットワーク上にあるユーザプロファイルやプリンタ等の共有資源のプロファイルを管理するサービスです。

ここでいうディレクトリとは住所録や案内図という意味を持ちます。

LDAP(Lightweight Directory Access Protocol)

LDAPは、ネットワークのディレクトリサービスにアクセスするためのプロトコルの一種です。ユーザプロファイルや共有資源の扱いを標準化することに役立ちます。

セキュリティ制御

この記事での学習内容 基本情報 応用情報

OS には,アクセス制御,フロー制御,推論制御,暗号化制御などのセキュリティ制御機能があることを理解し,OS での制御方法の種類と特徴を理解する。また,ファイル保護,外部からの侵入検出と防御などのセキュリティが施されたセキュリティカーネルの特徴を理解する。

用語例:外部セキュリティ,内部セキュリティ,多重レベルセキュリティ,BLP(Bell-LaPadula)モデル,ロギング機能,オーディット機能,アカウンタビリティ,信頼プロセス, 完全性, 隔離, 認証, 検証可能性, ITSEC ( Information Technology Security Evaluation Criteria)

セキュリティ制御

セキュリティ制御とは、システムの機密性、安全性、可用性、およびアカウンタビリティを保つための制御です。アクセス制御、暗号化制御、外部からの侵入の防御・検出、ロギング機能、オーディット機能などがあります。これらの制御や機能による記録は、記録を根拠にする説明に利用でき、アカウンタビリティを保ちます。

アクセス制御

ユーザごとにシステムの利用券を定義し、アクセスを管理することです。セキュリティポリシに沿わないアクセスはOSが強制的に制御する、管理者権限をできるだけ分散化するなどの仕組みを設定します。

暗号化制御

情報を暗号化して機密が第三者にもれないようにすることです。

外部からの侵入の防御・検出

ファイアウォール機能によって外部からの不正アクセスを防ぎます。

ロギング機能

ロギング機能は、システムのエラーや警告が発生した時に、その情報をファイルに記録する機能です。システムの安全性および可用性を保つのが主な目的です。

オペレータなどが障害に気づいた時に、ログファイルを分析して、原因を究明することができます。また、信頼できないプロセスが実行されようとした時の警告、あるいは監査の成功や失敗なども記録して、監査にも利用されます。

オーディット機能

オーディット機能(監査機能)は、ユーザのシステムへのアクセスやファイルへのアクセスなどセキュリティに関する事象を記録する機能です。

オーディットの記録はシステムの機密性および安全性が保たれていることの証拠や、機密性や安全性を損なったユーザを特定する証拠になります。

 

障害管理

この記事での学習内容 基本情報 応用情報

障害の検出,試験と診断,自動訂正,障害の記録,再構成,リスタート,原因の解決など,障害発生から対策完了までの一連の工程を理解する。

用語例:タイマ監視,CPU 監視装置,ハードウェア障害,ソフトウェア障害,再構成(動的装置再構成,自動CPU 再構成),多重化(入出力パスの多重化,補助記憶装置の二重化,ライブラリの二重化,ディスクの二重書き),システムの多重化(デュアルシステム,デュプレックスシステム),ホットスタンバイシステム,障害回復ルーチン

障害管理

障害管理は、システムのハードウェア障害やソフトウェア障害に対処する機能です。システムの安全性および可用性を保つのが主な目的です。

障害の検出、自動訂正、障害の記録、システムの再構成、リスタートなどが含まれます。

オペレータやユーザは、障害管理機能を用いて、障害の影響範囲限定、現象把握、切り分け、原因究明、修正、およびシステムの復旧をします。

 

ミドルウェア

情報処理技術者試験での学習内容

【応用情報・基本情報】
代表的なミドルウェアの役割,機能を修得し,応用する。

(1)ミドルウェアの役割と機能 基本情報 応用情報

OS と応用ソフトウェアの中間に位置する各種ミドルウェアの役割と機能,ミドルウェアの選択と利用の考え方を理解する。

用語例:応用プログラム間連携ソフトウェア,DBMS,通信管理システム,ソフトウェア開発支援ツール,運用管理ツール,TP(Transaction Processing:トランザクション処理)モニタ

(2)シェルの役割と機能 基本情報 応用情報

シェルは,利用者からのコマンド,指示を受けてそれを解釈し,プログラムの起動,制御などカーネルの機能を呼び出す役割をもつこと,及び代表的なコマンドを理解する。

用語例:コマンドインタプリタ,BShell,CShell,COMMAND.COM,cmd.exe

(3)API 基本情報 応用情報

応用プログラムから見たAPI の役割,機能を理解する。

用語例:関数,ライブラリ,Web API,API 仕様

(4)ライブラリ 基本情報 応用情報

プログラムやマクロなどを格納するライブラリを理解する。

用語例:ソースライブラリ,オブジェクトライブラリ,ロードライブラリ,DLL(Dynamic Link Library),クラスライブラリ

(5)コンポーネントウェア 基本情報 応用情報

オブジェクト指向技術を基盤としたソフトウェアの部品化によるソフトウェア開発手法であるコンポーネントウェアの考え方,代表的なコンポーネントウェア技術を理解する。

用語例:コンポーネント,Java Beans,ActiveX,CORBA

(6)開発フレームワーク 基本情報 応用情報

アプリケーションソフトウェアの標準構造の実装に使われるクラスやライブラリの集まりである開発フレームワークの考え方,代表的なフレームワークを理解する。

Apache Struts,CakePHP,Spring,Ruby on Rails

ミドルウェアの役割と機能

この記事での学習内容 基本情報 応用情報

 

OS と応用ソフトウェアの中間に位置する各種ミドルウェアの役割と機能,ミドルウェアの選択と利用の考え方を理解する。

用語例:応用プログラム間連携ソフトウェア,DBMS,通信管理システム,ソフトウェア開発支援ツール,運用管理ツール,TP(Transaction Processing:トランザクション処理)モニタ

ミドルウェアの役割と機能

ミドルウェアは、オペレーティングシステムと応用ソフトウェアの中間に位置するソフトウェアの総称です。応用プログラム間連携ソフトウェアともいいます。

ミドルウェアには、データベース管理システム、通信管理システム、ソフトウェア開発支援ツール、運用管理ツール、TPモニタなどがあります。これらのソフトウェアはプログラミングやプログラムの実行管理の基本的なソフトウェアとはいえませんし、業種や業務の実務を担う応用ソフトウェアとも言えません。

ミドルウェアを共通基盤として利用することによって、応用ソフトウェアの開発の効率化、および応用ソフトウェアの間の連携の標準化が可能です。

応用プログラム間連携ソフトウェア

応用プログラム間連携ソフトウェアはミドルウェアの別名です。例えば、データベース管理システムは、ファイルにアクセスするインタフェースを高水準かつ柔軟にすることにより、購買管理システム、生産管理システム、販売管理システムなどの応用プログラム間の連携を容易にします。

DBMS(DataBase Management System)

DBMS(データベース管理システム)はファイルに含まれるデータ群を、多角的かつ標準的なアクセスが出来るように管理するシステムです。応用ソフトウェアの間でファイルを受け渡しする必要がなくなり、それぞれが一つのデータベースにアクセスする形で、データを共有できます。また、DBMSはデータ処理の共通機能を提供するので、応用ソフトウェアの開発を効率化したり、ユーザが直接利用したりすることができます。

通信管理システム

コンピュータ間の通信のために、高水準かつ標準的なインタフェースを提供するシステムです。パソコンのオペレーティングシステムには、ネットワーク制御の機能があることが多いですが、本格的な応用ソフトウェアは、ミドルウェアである通信管理システムが用いられることが多いです。

ソフトウェア開発支援ツール

ソフトウェア開発支援ツールは、ソフトウェアの要求分析、設計、開発、試験を支援するソフトウェアの総称です。プログラミングのためのコンパイラというツールがあったのに対して、ソフトウェア開発が大規模な仕事であるという考え方による広い総称です。

運用管理ツール

運用管理ツールは、コンピュータやネットワークの運用のための高水準な機能を持つソフトウェアです。基本的な運用管理機能はオペレーティングシステムに含まれます。本格的な応用情報システム向きのミドルウェアが運用管理ツールです。システムの関し、オペレータ作業の自動化、セキュリティ管理などを行います。

TPモニタ

TP(Transaction Processing)モニタは、通信回線を経由するトランザクション(取引)単位を応用ソフトウェアとオペレーティングシステムの中間で監視・制御するミドルウェアです。

 

その他の主要なミドルウェアとして、障害監視システム、トランザクションスケジューリング、システム資源管理などがあります。

 

シェルの役割と機能

この記事での学習内容 基本情報 応用情報

シェルは,利用者からのコマンド,指示を受けてそれを解釈し,プログラムの起動,制御などカーネルの機能を呼び出す役割をもつこと,及び代表的なコマンドを理解する。

用語例:コマンドインタプリタ,BShell,CShell,COMMAND.COM,cmd.exe

シェルの役割と機能

シェルは、オペレーティングシステムのカーネルに対して、コマンドインタプリタやグラフィカルユーザインタフェースなどの外周の部分です。オーペレーティングシステムを階層化して、標準化や柔軟性を図ります。

カーネル・コアに対して、貝殻のようにそれらを守るということで、”Shell”(=貝殻の意)と呼ばれています。

機能としては、プログラムの起動や制御など、カーネルの機能を呼び出す、ユーザの入力を受け付けてコマンドをOSのカーネルに伝えるといったものです。

コマンドインタプリタ

コマンドインタプリタは、コマンド走査型のオペレーティングシステムのシェルの代表的なプログラムです。ユーザの入力したコマンドの種類とパラメータを解釈して、カーネルの該当機能へ引き継ぎます。

 

API

この記事での学習内容 基本情報 応用情報

応用プログラムから見たAPI の役割,機能を理解する。

用語例:関数,ライブラリ,Web API,API 仕様

API

API(Application Programming Interface:アプリケーション・プログラミング・インタフェース)とは、応用ソフトウェアから利用できるオペレーティングシステムのモジュール、プログラミング言語のライブラリモジュール、及びそれらの利用規約のことです。

多くのアプリケーションに共通する、文字処理、画像処理、入出力、ウィンドウ制御などがその例です。エンドユーザによるプログラミングを推進する役割もあります。

 

ライブラリ

この記事での学習内容 基本情報 応用情報

プログラムやマクロなどを格納するライブラリを理解する。

用語例:ソースライブラリ,オブジェクトライブラリ,ロードライブラリ,DLL(Dynamic Link Library),クラスライブラリ

ライブラリ

ライブラリとは、応用ソフトウェアでよく利用される関数や機能などを一箇所にまとめて、共用できるようにしたもののことです。

提供される形式や利用形態によって、以下の様なものがあります。

ソースライブラリ

ソースライブラリは共用するためのライブラリとして提供されるソースモジュールの集合です。応用ソフトウェアの共通部分をカバーすることによって、開発を効率化します。

APIやオブジェクトライブラリとは異なり、応用ソフトウェアとあわせてコンパイルして用いられます。

オブジェクトライブラリ

オブジェクトライブラリは、共用するためのライブラリとして提供される、実行形式のモジュールの集合です。

クラスライブラリ

ライブラリのうち、オブジェクト指向に基づいて設計・作成されたライブラリのことをクラスライブラリと呼んでいます。

ロードライブラリ

ロードライブラリは、共用するためのライブラリとして提供される、実行形式のモジュールで、主モジュールと連結されて実行されます。

DLL(Dynamic Link Library)

DLL(ダイナミックリンクライブラリ)は、共用するためのライブラリとして提供される、動的リンクを用いた実行形式のモジュールの集合です。

 

コンポーネントウェア

この記事での学習内容 基本情報 応用情報

オブジェクト指向技術を基盤としたソフトウェアの部品化によるソフトウェア開発手法であるコンポーネントウェアの考え方,代表的なコンポーネントウェア技術を理解する。

用語例:コンポーネント,Java Beans,ActiveX,CORBA

コンポーネントウェア

コンポーネントウェアは、ソフトウェアのコンポーネント(部品、モジュール)の総称です。ハードウェアやソフトウェアと同じように命名したものです。

Java Beans

Java Beansとは、Java言語でプログラミングされたオブジェクトライブラリです。Java言語で書かれたコンポーネントウェアとその技術仕様ともいえます。

開発フレームワーク

この記事での学習内容 基本情報 応用情報

アプリケーションソフトウェアの標準構造の実装に使われるクラスやライブラリの集まりである開発フレームワークの考え方,代表的なフレームワークを理解する。

開発フレームワーク

開発フレームワークとは、システム開発を標準化して効率的にすすめるための全体的な枠組みです。ソフトウェアをどのように開発すべきかを、再利用可能なクラスなどによって示し、特定の用途に使えるようにしています。

例えば、Webアプリケーションを開発するための、JavaのStrutsやSpring、RubyのRuby on Rails、PHPのCake PHP等のWebアプリケーションるフレームワークがあります。

 

ファイルシステム

情報処理技術者試験での学習内容

【応用情報・基本情報】
・ファイルを階層化して管理するディクトリの種類,特徴,ファイル管理の仕組みを修得し,応用する。
・ファイルシステムの種類,特徴を修得し,応用する。
・ファイル編成,アクセス手法,検索手法,バックアップ方式を修得し,応用する。

【ITパスポート】
・ファイル管理の考え方を理解し,基本的な機能を利用する。
・バックアップの基本的な考え方を理解する。

(1)ディレクトリ管理とファイル管理 ITパスポート 基本情報 応用情報

ファイルを階層化して扱うディレクトリの種類と特徴,ディレクトリが管理するファイル情報,ファイル制御ブロック,ファイルポインタ,ファイルハンドルなどのファイル管理の仕組み,絶対パス,相対パスを使用したファイルの特定方法を理解する。また,ディレクトリ管理,ファイル共有の仕組み,考え方,アクセス権を理解する。

用語例:物理的位置,保護情報,参照情報,シンボリックリンク,ショートカット,エイリアス,ルートディレクトリ,カレントディレクトリ,ホームディレクトリ,単一ディレクトリ,2 階層ディレクトリ,階層型ディレクトリ,木構造ディレクトリ,パス名,ファイルハンドル,ファイル記述子,キャラクタデバイス,ブロックデバイス,ブロッキング,共有ファイル

(2)ファイルシステムの種類と特徴 ITパスポート 基本情報 応用情報

ハードディスク装置などの補助記憶装置の領域を,OS や利用者がファイルやディレクトリ(フォルダ)として使用できるようにするための機能を理解する。また,OS ごとに異なるファイルシステムが提供されていること,代表的なファイルシステムの特徴を理解する。

用語例:FAT ファイルシステム,NTFS,HFS(Hierarchical File System),NFS(Network File System),ボリューム

(3)ファイル編成とアクセス手法 基本情報 応用情報

ファイル編成やアクセス手法の種類,特徴を理解する。また,各編成方式におけるレコードの追加,削除,変更などの処理方法を理解する。

用語例:論理レコード,物理レコード,ブロック,非ブロックレコード,ブロックレコード,ブロックサイズ,順次アクセス,直接アクセス,動的アクセス,順編成,区分編成,索引順編成,直接編成,VSAM 編成,あふれ域,ブロッキング,デブロッキング

(4)検索手法 応用情報

ディレクトリの構造の特徴による検索手法の違いを理解する。

用語例:ハッシング,インデックス

(5)バックアップ ITパスポート 基本情報 応用情報

ファイルのリカバリを目的としたバックアップの取得方法と手順,世代管理,ファイルの修復方法と手順など,バックアップの方式を理解する。

用語例:多重バックアップ,フルバックアップ,差分バックアップ,増分バックアップ

ディレクトリ管理とファイル管理

この記事での学習内容 ITパスポート 基本情報 応用情報

ファイルを階層化して扱うディレクトリの種類と特徴,ディレクトリが管理するファイル情報,ファイル制御ブロック,ファイルポインタ,ファイルハンドルなどのファイル管理の仕組み,絶対パス,相対パスを使用したファイルの特定方法を理解する。また,ディレクトリ管理,ファイル共有の仕組み,考え方,アクセス権を理解する。

用語例:物理的位置,保護情報,参照情報,シンボリックリンク,ショートカット,エイリアス,ルートディレクトリ,カレントディレクトリ,ホームディレクトリ,単一ディレクトリ,2 階層ディレクトリ,階層型ディレクトリ,木構造ディレクトリ,パス名,ファイルハンドル,ファイル記述子,キャラクタデバイス,ブロックデバイス,ブロッキング,共有ファイル

ディレクトリ(フォルダ)

ディレクトリとは、OSの持つファイル管理機能で、ファイル群を保存、分類、整理するものです。ディレクトリには住所録や案内図という意味があります。ユーザはディスク内に階層的にディレクトリを作ることができます。

ディスク装置の中の最上位に当たるディレクトリを、ルートディレクトリといいます。ルートディレクトリの下には、ファイルを保存したり、さらに別のディレクトリを作ったりすることができます。

あるディレクトリの下に作られている別のディレクトリのことを、サブディレクトリともいいます。

OSによっては、ディレクトリをフォルダと呼ぶものもあり、Windows系では『フォルダ』、UNIX系では『ディレクトリ』と呼ばれるのが一般的です。

なお『ルートディレクトリ』に関して、UNIX系では明確に定義されているものはあるが、Windows系ではイメージしにくくなっています。一部の解説では、『Windowsのルート=デスクトップ』とされているものがあるが、これは明らかな間違いです。例えばWindows7の場合では『C:\Users\(ユーザ名)\Desktop』をさしており、明らかにルートではありません。

パス

コマンドの操作や、HTML文書のハイパーリンクで、あるファイルを参照したいときには、「どのディレクトリに保存されている何というファイルか」を指示する必要があります。

参照するファイルの位置を指定する方法を「パス」といいます。パスの記述には、頂点にあるルートディレクトリを起点とし、そこから順にたどってディレクトリ名を記述する絶対パスと、現在操作しているディレクトリ(=カレントディレクトリ)を起点とする相対パスの二つの方法があります。

絶対パス

絶対パスは、ルートディレクトリを起点として、上位→下位の順にたどる記述方法です。ルートディレクトリを「/」と表し、続けてサブディレクトリ名やファイル名を「/」で区切りながら記述します。

相対パス

相対パスでは、カレントディレクトリを起点として、親ディレクトリ又は子ディレクトリに移りながら順にたどって参照ファイルに行き着きます。

参照元となるファイルがあるディレクトリをカレントディレクトとし、カレントディレクトリを「 . / 」という記号で表して、続けて相対パスを記述します。(「 . / 」は多くの場合省略される)

カレントディレクトリより下位のサブディレクトリの中のファイルを参照するときは、パスにそのサブディレクトリ名を指定し「サブディレクトリ名 / ファイル名」のように記述します。

カレントディレクトリより一つ上位になるディレクトリ(親ディレクトリ)に遡ってファイルを参照する場合には、親ディレクトリを「 . . / 」という記号で表して、「  . . / ファイル名」とします。

 

ファイルシステムの種類と特徴

この記事での学習内容 ITパスポート 基本情報 応用情報

ハードディスク装置などの補助記憶装置の領域を,OS や利用者がファイルやディレクトリ(フォルダ)として使用できるようにするための機能を理解する。また,OS ごとに異なるファイルシステムが提供されていること,代表的なファイルシステムの特徴を理解する。

用語例:FAT ファイルシステム,NTFS,HFS(Hierarchical File System),NFS(Network File System),ボリューム

ファイルシステム

ファイルシステムとは、ハードディスクなどの記憶媒体中にファイルやディレクトリを作成・管理する仕組みのことです。ファイルシステムはOSによって異なり、FAT、NTFS、HFSなどがあります。

FAT(File Allocation Tables)

FATはハードディスク媒体の領域の区分である、クラスタの割り付け状況の表です。クラスタの使用状態・空き状態を記録したり、クラスタの連鎖を表すためにFATをリンクしたりします。FAT方式は、ハードディスク媒体のファイル管理の方式として普及しています。

FATの項目はクラスタの状態をビットで表す簡潔な形式です。ビット数の異なる幾つかの方式があり、扱えるハードディスク媒体の容量には限界があるので、非互換や効率低下があることをユーザが意識することがあります。代表的なものにFAT16、FAT32があり、WindowsでもUSBメモリなどの外部媒体にはFAT32がよく用いられています。

NTFS(NT File System)

NTSFはマイクロソフトのOSであるWindows NTで使われはじめて本格的なファイル管理方式です。FATよりも複雑ですが、アクセス権を記録するので、複数のユーザが使用する場合の安全性が高まります。また、アクセスを記録して障害時の復旧が容易なので信頼性が高まります。

アクセス権の細かな設定の他に、1ファイル、1ドライブの最大容量がFATよりも大きく取れるのが特徴です。

HFS(Hierarchial File System)

HFSは、木構造の管理情報を用いてハードディスク媒体のファイルを階層的に管理する方式です。配列型の表を用いるFATに比べて柔軟性があるのが特徴です。

ボリューム

ボリュームとは一つの記憶媒体の一区画を示す単位です。磁気テープ1本、ハードディスク1台といった単位でボリューム名(ボリュームラベル)がつけられて管理されます。OSによっては、1台のハードディスクに複数のボリュームを作成できるものもあります。

通常、1つのボリュームには複数のファイルを収納します。ファイル管理プログラムが表示するファイルやフォルダの階層図にはボリュームも表示されます。

その他のファイルシステム

その他の代表的なファイルシステムとしては、UNIX系で用いられるJFSがあります。

JFSはジャーナル・ファイル・システムの意味で、ファイルシステム上のメタデータをトランザクション単位で管理・保持している。

その他、Linux系で用いられるext3、ext4などもよく知られています。

 

ファイル編成とアクセス手法

この記事での学習内容 基本情報 応用情報

ファイル編成やアクセス手法の種類,特徴を理解する。また,各編成方式におけるレコードの追加,削除,変更などの処理方法を理解する。

用語例:論理レコード,物理レコード,ブロック,非ブロックレコード,ブロックレコード,ブロックサイズ,順次アクセス,直接アクセス,動的アクセス,順編成,区分編成,索引順編成,直接編成,VSAM 編成,あふれ域,ブロッキング,デブロッキング

アクセス方式

順次アクセス

順次アクセスとは、記憶媒体のデータを先頭から順序どおりに読み込みや書き出しをするアクセス方式です。磁気テープ媒体に向いています。後述する直接アクセスと比較すると、場所を探す時間がかかりませんが、任意の場所にアクセスするためには、順送りや順戻しをするのに時間がかかります。

直接アクセス

直接アクセスとは、記憶媒体のデータを配列とみなして、任意の場所を直接アクセスして、読み込みや書き出しを行うアクセス方式です。ハードディスク媒体やフラッシュメモリに向いています。目的の場所に移動するのに少し時間がかかりますが、順送りや順戻しの時間はかかりません。

動的アクセス

動的アクセスとは、基本的には順次アクセスをしますが、任意の場所へ移動するときだけは直接アクセスで行うという、順次アクセスと直接アクセスを組み合わせた方式です。光ディスクの類はこの方法です。映画のDVDのように、先頭からの順次アクセスであったり、ドラマやバラエティー、音楽等の場合、チャプタや曲の先頭に行くまでは、直接アクセスする必要があるが、そこからしばらくは順次アクセスで良い場合が多いので、映像・音楽コンテンツでよく利用される光ディスクにはこのアクセス方法がマッチしています。

ファイル編成

順編成

順編成は、一つのファイルを構成する複数のレコードが、一次元的に並んだ編成です。順次アクセス向きです。

直接編成

直接編成は、一つのファイルを直接アクセス可能なレコードの集合とする編成です。レコード中のキー値を元にして格納アドレスを決定します。その位置をアクセスして読み込みや書き出しをします。

索引順編成

索引順編成は、本来のデータの他に索引(インデックス)部を持つ本のような編成です。任意に索引を作ることによって、順次アクセスを基本として、直接アクセスや動的アクセスも可能です。

あふれ域

あふれ域とは、索引編成において本来のデータ域に収まりきらなくなったデータを収容する領域です。索引順編成が順次アクセス、直接アクセス、および動的アクセスを可能にするために、あふれ領域が使われます。なお、あふれ域が大きくなってくると、再編成という作業が必要になります。

区分編成

区分編成は、一つのファイルを構成する複数のメンバの先頭アドレスをディレクトリに記録して、それぞれ一つのメンバは複数のレコードの順編成である階層的な編成です。メンバに対して直接アクセスし、メンバ内のレコードに対しては順次アクセスするので、動的アクセス向きです。

VSAM(Virtual Strage Access Method)編成

VSAM編成は主記憶装置と補助記憶装置の両方にわたって、仮想的なファイルを編成するものです。レコードが主記憶装置にあれば、アクセスは高速になります。

仮想記憶が主記憶装置のメモリを補助記憶装置へも仮想的に拡張したものであるのと反対に、VSAMは補助記憶装置上のファイルを主記憶装置に仮想的に拡張したものです。

レコードを論理的な記憶空間上で管理するもので、媒体の物理的特性に依存しない方式です。

ファイル=データセットという単位で扱い、
・入力順データセット=順編成ファイルに相当します。
・キー順データセット=索引順編成ファイルに相当します。
・相対レコードデータセット=直接編成ファイルに相当します。

 

なお、最近のサーバ~PC向けのOSの場合、OSが管理するのはファイルシステムまでとし、ファイルの中身の編成方法については、アプリケーションに任せているケースも多くあります。
例えばPDFファイルなどのように、多数のOSをまたがってやり取りされるようなファイルも存在するので、ファイルの中身についてはプラットフォームに依存しないように、アプリケーション側にファイルの編成方式を委ねています。

バックアップ

この記事での学習内容 ITパスポート 基本情報 応用情報

ファイルのリカバリを目的としたバックアップの取得方法と手順,世代管理,ファイルの修復方法と手順など,バックアップの方式を理解する。

用語例:多重バックアップ,フルバックアップ,差分バックアップ,増分バックアップ

バックアップ

大量のデータを保存し、大勢のユーザが共有利用するデータベースは万が一の障害に備えて、定期的にバックアップを作る必要があります。

バックアップの作成方法には、データをすべてコピーするフルバックアップ方式と、部分的にコピーする差分バックアップ方式、増分バックアップ方式があります。

一般的には、定期的なフルバックアップと差分又は増分バックアップを組み合わせて運用します。

フルバックアップ

ファイルを丸ごとコピーしてバックアップファイルを作成する方法をフルバックアップといいます。

フルバックアップは作成時も復旧(リストア)時も一度のコピー作業で済みますが、大量のデータを一括してコピーするためバックアップ作業に長時間かかるという欠点があります。

差分バックアップ

一度フルバックアップを行った後、さらに更新されたデータのみをバックアップする方法を、差分バックアップといいます。差分バックアップは通常、定期的なフルバックアップと組み合わせて行います。

差分バックアップはフルバックアップに比べるとコピーするデータの量が少なくなるので、作業時間が短くて済むという利点があります。

しかし、障害が起きた後のリストア作業として、一旦フルバックアップのデータを書き戻し、それから障害発生の直前に作成した差分バックアップのデータを書き戻す必要があるため、復旧作業の時間が長くなるという欠点があります。

増分バックアップ

前回のフルバックアップもしくは差分バックアップの後で、さらに更新されたデータのみをバックアップしていく方法を増分バックアップといいます。

増分バックアップはコピーするデータ量が少なくて済むので短時間でバックアップできますが、リストア作業として、直前のフルバックアップのデータを書き戻し、その後に作成した全ての増分バックアップのデータを順に書き戻す必要があるため、復旧作業に手間と時間がかかります。

 

どのバックアップ方式を選ぶか、どんな周期でフルバックアップを作成するかは、データの量や重要度に応じて決定します。

頻繁に更新するデータほど、こまめにバックアップを取る必要があり、速く復旧させることが重視される場合には、フルバックアップもこまめに作成する必要があります。

バックアップの運用ルール

大量のデータのフルバックアップを作るには長い時間がかかるため、運用スケジュールと実施責任者を決め、業務に支障なく確実に行えるように管理する必要があります。

バックアップ処理中にファイルを更新すると正副のデータに矛盾が起きてしまうので、バックアップ処理はユーザからのファイルアクセスのない、業務時間外や深夜などに行います。確実に手間なくバックアップを作成するためには、バックアップ作業を自動化するのが一般的です。

バックアップ用の媒体

バックアップを作成する媒体には、DATなどの磁気テープや、DVD-RAMなど、大量のデータを繰り返し複写できる媒体が適しています。

媒体の管理

バックアップファイルを、原本となるデータと同じハードディスク内などに作ると、ディスク装置が故障した場合に両方共失われてしまうので、通常、原本とは別の媒体に作成します。

また、地震や火事などの災害時を考慮し、バックアップ媒体はシステムのある場所とは別のところに保管するのが望ましいとされています。

世代管理

バックアップ媒体を最新の1セットしか保存しないと、バックアップ作成途中のトラブルなどで正副両方のデータが失われてしまった場合に復旧できなくなるので、以前のバックアップデータも何世代かに渡って残しておくほうが安全です。バックアップ媒体にはラベルを貼るなどし、世代別にきちんと管理します。

開発ツール

情報処理技術者試験での学習内容

【応用情報・基本情報】
ソフトウェア開発に用いる開発ツールの種類,特徴,機能を修得し,応用する。

【ITパスポート】
オフィスツールなどのソフトウェアパッケージの特徴と基本操作を理解する。

(1)開発ツールの種類と特徴 基本情報 応用情報

設計を支援するツール,プログラミングやテストを支援するツール,ソフトウェア開発の各工程を通して自動化,効率化を目的とするツール,開発作業全体を一貫して工程を支援するIDE(Integrated Development Environment:統合開発環境)など,代表的な開発ツールの種類,特徴,機能を理解する。

用語例:設計支援ツール(SADT:Structured Analysis and Design Techniques,SREM:Software Requirement Engineering Methodology,PSL/PSA:Problem Statement Language /Problem Statement Analyzer),設計ツール,ドキュメント生成ツール,構築ツール,テストツール(静的デバッギングツール(プリティプリンタ,クロスリファレンス),動的デバッギングツール,静的解析ツール(ソースコード解析ツール,プログラム構造解析ツール),動的解析ツール(テストデータ生成ツール,テストカバレージツール,テストベッドツール,プログラム検証ツール)),ツールチェーン, エミュレータ,シミュレータ, ICE ( In-Circuit Emulator:インサーキットエミュレータ),トレーサ,インスペクタ,スナップショット,アサーションチェッカ,バージョン管理ツール

(2)言語処理ツールの種類と特徴 基本情報 応用情報

代表的な言語処理ツールの種類,特徴,機能を理解する。

ジェネレータ,原始プログラム,プリプロセッサ,アセンブラ,コンパイラ,実行時コンパイラ,クロスコンパイラ,インタプリタ,目的プログラム,リンカ,ローダ,ロードモジュール

 

開発ツールの種類と特徴

この記事での学習内容 基本情報 応用情報

設計を支援するツール,プログラミングやテストを支援するツール,ソフトウェア開発の各工程を通して自動化,効率化を目的とするツール,開発作業全体を一貫して工程を支援するIDE(Integrated Development Environment:統合開発環境)など,代表的な開発ツールの種類,特徴,機能を理解する。

用語例:設計支援ツール(SADT:Structured Analysis and Design Techniques,SREM:Software Requirement Engineering Methodology,PSL/PSA:Problem Statement Language /Problem Statement Analyzer),設計ツール,ドキュメント生成ツール,構築ツール,テストツール(静的デバッギングツール(プリティプリンタ,クロスリファレンス),動的デバッギングツール,静的解析ツール(ソースコード解析ツール,プログラム構造解析ツール),動的解析ツール(テストデータ生成ツール,テストカバレージツール,テストベッドツール,プログラム検証ツール)),ツールチェーン, エミュレータ,シミュレータ, ICE ( In-Circuit Emulator:インサーキットエミュレータ),トレーサ,インスペクタ,スナップショット,アサーションチェッカ,バージョン管理ツール

CASEツール

CASEツールはコンピュータ支援ソフトウェア工学(Computer Aided Software Engineering:CASE)というソフトウェア開発方法論のための開発支援ツールの総称です。

要求分析、機能設計、内部設計のツールを上流CASEツール、プログラム作成、試験、提供、保守のツールを下流CASEツールに区分されます。

全てのプロセスのツールを備えたものを統合CASEツールといいます。

現在よく使われているツールの例として、業務などをモデル化するためのUML作成ソフトや、プログラムソース生成ツール、バージョン管理システムなどがあります。

統合開発環境(Integrated Development Environment)

統合開発環境(IDE)は、ソフトウェアの開発支援ツール軍に対して、統一された操作インタフェースと、統一されたファイル管理を備えた開発支援システムです。

操作性やファイル管理が標準化されるとともに、開発プロセス間のファイルの受け渡しが用意になります。

ツールチェーン

ツールチェーンは、一連の開発プロセス用に並んだツール群の総称です。一つのツールの出力ファイルが、次のツールの入力ファイルになります。

コンパイラやリンカ、ユーティリティプログラムなどを組み合わせた、一連の開発プロセス用ツール群の総称です。

エミュレータ

エミュレータは、あるハードウェアやオペレーティングシステムで動作していたプログラムを、異なるハードウェアのマイクロプログラムやオペレーティングシステムのAPIを調整して動作可能にする機構です。

コンピュータをリプレースしたときや、新たなコンピュータを開発する時に利用されます。

シミュレータ

シミュレータは、あるハードウェアやオペレーティングシステムで動作していたプログラムを、異なるコンピュータで動作させる模擬実行用のソフトウェアです。

エミュレータと違って、ハードウェアやオペレーティングシステムには手を加えませんが、動作は遅くなります。

最近の流れとして、エミュレータ・シミュレータの境界線は曖昧になっており、どちらの特性も兼ね備えた、『仮想マシン環境』と呼ばれるものも存在しています。

元々は『仮想マシン環境』もテストツールとして用いられることが主流でしたが、機器の高性能化やダウンサイジング化の流れの中で、レンタルサーバ、ホスティングといった事業で、1機器で複数のサーバを運用するといった用途で用いられています。

ICE(In-circuite Emulator)

インサーキットエミュレータは、デジタル回路のエミュレータです。組込みソフトウェアを含むハードウェアの開発に用いられます。

マイクロプロセッサをエミュレーションしつつ、ソフトウェアのデバッグ機能を持っており、実際にマイクロプロセッサにソフトウェアを組み込んでデバッグするのに比べて、バグ分析やソフトウェア修正の手間が減ります。

トレーサ

トレーサは、デバッグツールの一種であり、プログラムの実行経路を表示するツールです。選択や反復の判定の間違いや性能不良の問題箇所を発見するのに役立ちます。

スナップショット

スナップショットは、デバッグツールの一種であり、データの値を表示するツールです。固定のプログラム部と変化するデータぶとを分割するオブジェクト指向プログラミングによく用いられます。

アサーションチェッカ

アサーションチェッカは、デバッグツールの一種であり、プログラムの実行経路の特定の地点で、あるデータが所定の条件を満たすか診断して、満たさなければ警告を表示するツールです。

アサーション(主張)という名前のとおり、人間だけに判断を委ねるスナップショットよりも積極的です。また、通常の診断メッセージがユーザへの表示であるのに対して、アサーションチェッカはソフトウェア開発者へのメッセージを表示します。

 

言語処理ツールの種類と特徴

この記事での学習内容 基本情報 応用情報

代表的な言語処理ツールの種類,特徴,機能を理解する。

ジェネレータ,原始プログラム,プリプロセッサ,アセンブラ,コンパイラ,実行時コンパイラ,クロスコンパイラ,インタプリタ,目的プログラム,リンカ,ローダ,ロードモジュール

原始プログラム

原始プログラムは、プログラム言語で書かれた文字列のファイルです。人間が書いたり読んだりするプログラムであり、そのままではコンピュータでは実行できません。

オブジェクトプログラム

オブジェクトプログラムは、コンパイラやアセンブラが出力した機械語プログラムです。メインルーチンやサブルーチンや再利用のためのルーチンが分かれており、機械語部分の他に、リンカが結合するための結合用の情報がついています。

ロードモジュール

ロードモジュールは、主記憶装置にロードして実行できる機械語命令だけのファイルです。ただし、動的リンクのための情報を持っていることがあります。ロードモジュールはリンカによって出力され、ローダによって入力されます。

リンカ

リンカ(連係編集プログラム)は、複数のオブジェクトプログラムを入力して結合し、一つのロードモジュールを出力するソフトウェアです。コンパイラやアセンブラが原始プログラムの形式のメインルーチンやサブルーチンを翻訳して、複数のオブジェクトプログラムを出力します。リンカはそれらを結合するのに加えて、既存の目的ライブラリの中のオブジェクトプログラムを再利用するために結合することも行います。

ローダ

ローダは、補助記憶装置上のロードモジュールを主記憶装置上へ読み込むソフトウェアです。

クロスコンパイラ

クロスコンパイラは、原始プログラムを翻訳して、異なる種類のコンピュータ向けのオブジェクトプログラムを出力するコンパイラです。

対象のコンピュータの開発途上の期間に用いたり、対象のコンピュータがソフトウェアの開発に向かない場合に用いたりします。

ジェネレータ

ジェネレータは、パラメータを入力して目的プログラムを出力するソフトウェアです。プログラムのロジックが定型的である分野で、本格的なプログラミングをすること無しにプログラムを作成することができます。

プリプロセッサ

プリプロセッサは、何らかのファイルを入力して、原始プログラムを出力するソフトウェアです。

原始プログラムを整形したり、定型的な部分を、ライブラリから取り込んで展開したりします。

コンパイラの前に実行されるプロセッサなので、プリプロセッサといいます。

 

オープンソースソフトウェア(概要)

情報処理技術者試験での学習内容

【応用情報・基本情報】
オープンソースソフトウェアの種類,特徴,機能,構成,利用上の考慮点,動向を修得し,応用する。

【ITパスポート】
オープンソースソフトウェア(OSS:Open Source Software)の特徴を理解する。

(1)OSS の種類と特徴,機能,構成 ITパスポート 基本情報 応用情報

LAMP/LAPP(LAMP:Linux,Apache,MySQL,PHP,LAPP:Linux,Apache,PostgreSQL,PHP)を中心に広く利用されているOSS(Open Source Software:オープンソースソフトウェア)の代表的な種類,特徴,機能,再配布の自由,派生ソフトウェア改変の許諾などオープンソースライセンシングの内容を理解する。

用語例:Linux カーネル,Perl,Python,Ruby,オープンソースライブラリ,CPAN,PEAR,jQuery,コピーレフト(Copyleft),デュアルライセンス,GPL(General Public License ), BSDL ( Berkeley Software Distribution License ), MPL ( Mozilla Public License),Apache ライセンス

(2)UNIX 系OS 基本情報 応用情報

代表的なOSS であるUNIX,UNIX 互換OS を含むUNIX 系OS を理解する。

用語例:NetBSD , IRIX , Linux , FreeBSD ( Free Berkley Software Distribution ),OpenBSD,The Open Group

(3)オープンソースコミュニティ 基本情報 応用情報

オープンソースコミュニティによるソフトウェア開発の仕組みを理解する。

用語例:SCM(Source Code Management:ソースコード管理)

(4)OSS の利用・活用と考慮点 ITパスポート 基本情報 応用情報

ライセンスの適用範囲,利用時のサポートにかかるコスト,問題発生時の対処など,OSSを利用する上で考慮すべき点を理解する。

用語例:安全性,信頼性

(5)OSS の動向 基本情報 応用情報

OSS の開発や普及の動向を理解する。

オープンソースソフトウェア

OSSの種類と特徴、構成 ITパスポート 基本情報 応用情報

無償で利用できるソフトウェア

一定の制限のもとに無償で利用できるソフトウェアがあります。インターネット上のサイトからダウンロードして利用できるものが一般的で、利用の仕方によって、フリーウェア、シェアウェア、オープンソースソフトウェアに分けられます。

フリーウェア
開発者が誰でも自由に使えるようにネットワークなどで配布しているソフトウェア。著作権を放棄しているわけではなく、ユーザが無償で使うことを許諾している。
シェアウェア
通常、無償で使える試用期間を設けて、使用を継続するためには料金を払う形式で配布されるソフトウェア
オープンソースソフトウェア
プログラムのソースコードをインターネット状などで公開し、一定の条件のもとでの変更や改変を許しているソフトウェア。
再配布が自由で、ソースコードから派生ソフトウェアを改変することが許されている。Linuxが代表的。

コピーレフト

コピーレフトとは、著作者が著作物の自由な利用、再配布、改変を許諾する考え方です。著作権(コピーライト)が許諾契約なしには、再配布や改変ができないのとは反対の考え方なので、コピーライトに対してコピーレフトという造語で呼ばれています。

ソフトウェアの添付文書や表示画面に、コピーレフトである旨を表示することによって、不特定多数の人が利用、再配布、改変、改変物の再配布ができます。

OSSのライセンス

オープンソースソフトウェア(OSS)は一定の条件下での利用・改変・頒布を認めているソフトウェアのことです。

そのライセンス体系の代表的な種類として、GPL、BSDL、MPLがあります。

GPL(GNU General Public License:GNU GPL)

GPLはコピーレフトの代表的なものです。フリーソフトウェアと比べると、二次的著作物についてもコピーレフトの制約を引き継ぐ点が異なります。

GPLで制約されているコピーレフトの制約とは、2次的著作物を再頒布する場合には、GPLライセンスを継承する必要がある点、GPLライセンスのソースコードを一部でも組み込んだものはその制約によって、ソースコードを公開することが求められる点などがあります。

BSDL

自由度の高いライセンス形態。無保証を宣言し、著作権やライセンス条項にBSDLである旨を表示すれば、改変や再頒布が認められる。その際にソースコードの改変は必要なく、二次的著作物でコピーレフトを引き継ぐ必要はない。

MPL

独自開発のソースコードにMPL適用のOSSのコードを組み合わせた場合、改変部分のソースだけを開示すればよい。また、二次的著作物はMPL/GPL/LGPLのいずれかを採用することが選択できる。

LGPL

GPLライセンスから派生した、主にライブラリとして提供されるソフトウェア向けのライセンス形態。LGPLライセンスのソフトウェアを『リンク』として利用するだけであれば、コピーレフトの制約を引き継ぐ必要がないというもの。

OSSを利用したシステムの構成

LAPP

LAPPとは、オープンソースソフトウェアだけでオペレーティングシステムおよびミドルウェアを揃えた定番の組み合わせです。

Linux、Apache、PostgresSQL、PHPの頭文字を取ってLAPPと呼ばれます。

  • Linux:オペレーティングシステム
  • Apache:Webサーバソフトウェア
  • PostgresSQL:データベース管理システム
  • PHP:Web用スクリプト言語及び言語処理ソフトウェア

LAMP

LAPPと同様に、オープンソースソフトウェアだけでオペレーティングシステムおよびミドルウェアを揃えた定番の組み合わせです。

  • Linux:オペレーティングシステム
  • Apache:Webサーバソフトウェア
  • MySQL:データベース管理システム
  • PHP:Web用スクリプト言語及び言語処理ソフトウェア

UNIX系OS 基本情報 応用情報

主なUNIX系OSには、次のようなものがあります。

Solaris
商用UNIX。旧サン・マイクロシステムズ社が開発し販売したOS。
AIX
商用UNIX。IBM社が開発したOSで、サーバコンピュータで採用される。
UnixWare
SCO社による、商用UNIX。
HP-UX
商用UNIX。ヒューレット・パッカード社が開発したOS。
NetBSD
非商用UNIX。カリフォルニア大学バークレー校が開発したOSをベースとしている。移植性が高い。
FreeBSD
PC/AT互換機向けに特化した、非商用UNIX。
OpenBSD
NetBSDから派生した非商用UNIX。セキュリティが高い。
Linux
ライナス・トーバルス氏によって開発された非商用UNIX。この派生版が多数存在し、インターネット上のサーバによく用いられる。

オープンソースコミュニティ 基本情報 応用情報

オープンソースコミュニティとは、OSSの開発者やユーザから構成される非営利の団体です。

OSSの共同開発やバグ修正のパッチ作成と配布、セミナー開催などの啓蒙活動を行います。

現在、LinuxやApacheなど、さまざまなOSSのオープンソースコミュニティが活動しています。

OSSの利用・活用と考慮点 ITパスポート 基本情報 応用情報

オープンソースソフトウェアを利用・活用するには、次のような点を考慮する必要があります。

  • ソフトウェアの利用条件(ライセンス)をすべての関係者が正確に理解する。
    • フリーウェア、シェアウェア、コピーレフトなどとの違いを理解する。
    • 当該ソフトウェアの添付文書や表示画面の許諾条件を理解する。
    • 条件を遵守できない場合にどういう問題になるかを理解する。
  • 有償であれば、販売者側の営業員、SE、保守員、教育講師、ヘルプデスク等がしてくれる作業が、利用・活用する側の労力コストになるかどうかを見積もる。必要なら適度の料金の有償の支援サービスを依頼する。
  • ソフトウェアの安全性を検討する。委託開発と違って、導入に要する期間が短いが、安全性などの検討を疎かにしないようにする。
  • ソフトウェアに不具合があっても、修正サポートや損害賠償の責任を要求できないことを理解する。自社および社外の再配布先で不具合があった場合にどうするかを考えておく。