【要点ノート】自動制御及び情報処理【情報処理編】

2020年9月26日作成,2023年4月29日更新

はじめに

科目 Ⅱ 電気の基礎 問題 5 「自動制御及び情報処理」に関する要点ノートである。本稿では,以下の章立てで要点をまとめる。

自動制御編

情報処理編

情報処理の基礎

基数と基数変換

基数(radix, base number)

基数とは,位取り記数法で数値を書き示す際に各桁の重み付けの基本となる数で,位が上がる毎に何倍になるかを表す。例えば,2 進数では 2(0 と 1),10 進数では 10(0 ~ 9),16 進数では 16(0 ~ F)となる。

基数変換(radix conversion, base number conversion)

基数変換とは,ある進数で示された数値を別の進数における数値へと変換することである。例えば,10 進数で表記された値「13」を 2 進数で「1101」と表記し直す場合などが基数変換にあたる。

符号つき 2 進数(signed binary)

2 進数で負の数を取り扱う場合,符号つき 2 進数を使用する。符号つき 2 進数は最上位ビット(MSB : most significan bit)が負の数を表し,これを符号ビット(sign bit)という。

表 符号なし 2 進数と符号つき 2 進数
2 進数 10 進数(符号なし 2 進数の場合) 10 進数(符号つき 2 進数の場合)
0000 0000 0 0
0000 0001 1 1
0000 0010 2 2
・・・ ・・・ ・・・
0111 1101 125 125
0111 1110 126 126
0111 1111 127 127
1000 0000 128 -128
1000 0001 129 -127
1000 0010 130 -126
・・・ ・・・ ・・・
1111 1101 253 -3
1111 1110 254 -2
1111 1111 255 -1

補数

補数 (complement) とは,ある自然数を n 進数(n 進法)で表現した時に,足し合わせるとちょうど「n のべき乗」か「n のべき乗 - 1」になる自然数のうち,最小のもの。前者は「足すとちょうど桁が一つ増える数」で,「基数の補数」とも呼ばれる。後者は「足しても桁が増えない最大の数」で,「減基数の補数」とも呼ばれる。

1 の補数 (one's complement)

ある自然数を 2 進数(2 進法)で表現したときに,足し合わせるとすべての桁が 1 になる最大の数(桁が増えないギリギリの数)のことを 1 の補数という。

例えば,10 進数の 3 を 8 ビットの 2 進数で表現すると (00000011)2 に対する 1 の補数は (11111100)2 である。

(0000 0011)2 + (1111 1100)2 = (1111 1111)2

コンピュータで取り扱う際には,各桁の 0 を 1 に,1 を 0 にするビット反転によって求めることができる。

2 の補数 (two's complement)

ある自然数を 2 進数(2 進法)で表現した時に,足し合わせるとちょうど 2 のべき乗となる最小の数(一桁増えて先頭が 1,残りが 0 となる数)を 2 の補数という。

例えば,10 進数の 3 を 8 ビットの 2 進数で表現すると (00000011)2,10 進数の -3 を 8 ビット 2 進数の 2 の補数で表現すると (11111101)2 となる。

(0000 0011)2 + (1111 1101)2 = (1 0000 0000)2

コンピュータで取り扱う際には元の数のビット反転によって求められる 1 の補数に 1 を足せば 2 の補数となる。コンピュータ上での負の整数の表現や計算によく用いられる。

論理回路とブール代数

論理回路

論理回路(logical circuit)は,論理演算を行う電気回路及び電子回路である。論理回路は,ほぼすべての電気・電子機器に実装されており,ボタン操作による動作設定変更や,デジタル信号処理など,多種多様な用途に用いられる。

論理回路を論理的な機能の点から分類すると,現在の入力だけで出力が決まる組合せ回路と,現在の入力及び過去の入力系列で出力が決まる順序回路に大別できる。

前者には,論理和(OR),論理積(AND),否定(NOT)などの基本論理回路や,切換回路(マルチプレクサー)などがある。

後者には,双安定マルチバイブレータとも呼ばれ,二つの安定状態を記憶する順序回路であって,入力が与えられると他の安定状態に遷移できる機能をもつ各種のフリップフロップや,それを使用したレジスタ回路,カウンタ回路などがある。

また,このような論理回路が搭載される集積回路(IC)は,汎用論理 IC と特定用途向け IC に分類される。

汎用論理 IC の一つである MPU(Micro Processor Unit)は,記述されたプログラムをシーケンシャルに命令実行処理を必要とするノイマン形コンピュータに用いられている。

一方,後者の IC として,ある特定用途の論理回路演算を実行処理する複数の回路で構成した集積回路である ASIC(Application Specific Integrated Circuit)は,最近,多くのディジタル電子機器に用いられている。この特定用途向け IC の設計では,複雑な論理式を簡略化する圧縮が重要である。圧縮法としては,計算機による機械的なアルゴリズム処理が容易なクワイン・マクラスキー法が著名であり,複数入力・複数出力のブール関数を簡略化することができる。

ブール代数

ブール代数(boolean algebra)またはブール束(boolean lattice)とは,ジョージ・ブールが 19 世紀中頃に考案した代数系の一つである。ブール代数の研究は束の理論が築かれるひとつの契機ともなった。ブール論理の演算はブール代数の一例であり,現実の応用例としては,組合せ回路(論理回路)はブール代数の式で表現できる。

論理代数の性質

論理代数は,以下に示す法則を満たす。

  • べき等則(idempotency)
    $ x \cdot x = x$ ,$ x + x = x$
  • 零元(zero element)
    $x \cdot 0 = 0$ ,$x + 1 = 1$
  • 単位元(identity element)
    $x \cdot 1 = x$ ,$x + 0 = x$
  • 交換則(comutativity)
    $x \cdot y = y \cdot x$ ,$x + y = y + x$
  • 結合則(associativity)
    $(x \cdot y) \cdot z = x \cdot (y \cdot z)$ ,$(x + y ) + z = x + (y + z)$
  • 相補則(complementation)
    $x \cdot \overline{x} = 0$ ,$x + \overline{x} = 1$
  • 分配則(distributivity)
    $x \cdot (y + z) = (x \cdot y) + (x \cdot z)$ ,$x + (y \cdot z) = (x + y)\cdot(x + z)$
  • 吸収則(absorption)
    $x + (x \cdot y) = x$ ,$x \cdot (x + y) = x$
  • 二重否定則(involution)
    $\overline{\overline{x}} = x$
  • ド・モルガンの法則(De Morgan's laws)
    $\overline{x + y} = \overline{x}\cdot\overline{y}$ ,$\overline{x \cdot y} = \overline{x} + \overline{y}$

データの表現

2 進数

コンピュータの電子回路などのデジタル回路,磁気ディスク等の記録メディアでは,電圧の高低,磁極の N/S など,物理現象を二状態のみに縮退して扱う(離散化という)ので,真と偽の 2 つの値のみを使用する二値論理をマッピングする。

浮動小数点

浮動小数点(floating point number)とは,コンピュータにおける数値の表現形式の一つで、数値を桁の並びを表す仮数部と小数点の位置を表す指数部に分割して表現する方式。小数点以下の値を含む数値の表現法として最も広く利用されている。

(浮動小数点数の例)6.02 × 1023,-0.73 × 10-2

浮動小数点数は,小数点の位置を固定せずに小数点数を表現する方法である。数値を指数形式(± f × re)で表した時の,「符号(正を 0,負を 1)」,「仮数 f」,「指数 e」を下図の順に並べて表現する。これを浮動小数点形式という。ここで,r は基数を意味し,通常,基数は 2 である。また,仮数 f は「0.1xxx」となるように,指数 e と桁合わせをする。

16 ビットの浮動小数点
16 ビットの浮動小数点

BCD

BCD(Binary Coded Decimal)とは,数値の表現方法の 1 つで,二進化十進法ともいう。

一般に二進数の 4 桁(ニブル)は,0 から 15 までの整数を表すことができる。二進化十進法では,このうちの最初の 10 個を有効な数値として扱う。

10 進数の BCD 表現
10 進数 BCD 表現
0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001

情報処理と通信

LAN と WAN

LAN(Local Area Network)は構内通信網,WAN(Wide Area Network)は広域ネットワークの意味である。

LAN(Local Area Network)

LAN とは、限られた範囲内にあるコンピュータや通信機器、情報機器などをケーブルや無線電波などで接続し、相互にデータ通信できるようにしたネットワークのこと。概ね室内あるいは建物内程度の広さで構築されるものを指す。

WAN(Wide Area Network)

WAN とは、地理的に離れた地点間を結ぶ通信ネットワーク。建物内や敷地(キャンパス)内を結ぶ LAN(Local Area Network)と対比される用語で、通信事業者が設置・運用する回線網のことを指すことが多い。

各種中継器

ネットワーク内には,端末となるコンピュータの他に,通信回線を延長したり制御したりするための各種中継機器が用いられている。

リピータは,伝送路で減衰した信号を増幅,補正して,さらに遠方まで伝送するための機器で,OSI 参照モデルの物理層の中継を行う。この機器は,信号の解釈をするものではなく,アドレスを参照した制御機能をもたない。

ブリッジは,複数の LAN を接続する機器であり,OSI 参照モデルのデータリンク層の中継を行う。この機器は,MAC アドレスによってネットワークを制御する。代表的な機器としてスイッチングハブがある。

物理層とデータリンク層の一部を定義した IEEE 802.11 関連規格があり,これに対応した無線中継機器を利用することで,Wi-Fi による LAN への無線接続ができる。

ルータは,ブリッジと同様に複数の LAN を接続する機器であり,OSI 参照モデルのネットワーク層での中継を行う。この階層で用いるアドレスは DHCP サーバを用いることで自動的にクライアントへ割り当てられるため,利用者はコンピュータをネットワークに接続しただけで通信環境を整えることができる。

DHCP (Dynamic Host Configuration Protocol)
DHCP (Dynamic Host Configuration Protocol) とは,インターネットなどの IP ネットワークに新たに接続した機器に,IP アドレスなど通信に必要な設定情報を自動的に割り当てるための通信規約(プロトコル)である。

ゲートウェイは,OSI 参照モデルの第 4 層にて,異なるプロトコルで動作している他のシステムと接続するために,プロトコル変換をする装置である。

通信ネットワークの形態

通信機能を有する分散制御機器やプロセス制御コンピュータが,生産設備制御に多用され,これら機器間の情報を伝送する通信ネットワークが重要となってくる。これら通信ネットワークの物理的な形態は,基本的に以下の五つに大別される。

  1. スター形:制御の中心となる大型コンピュータや制御局を中央に配置し,そのまわりにコンピュータや端末を接続する方法である。処理が中央に集中するので,中央部に設置される装置の信頼性が重要となる。
  2. スター形
    スター形
  3. リング形:隣接する各ノードを接続し,環状の共通な単方向伝送の通信路を構成するシステムである。高速伝送を目的とした光ファイバーケーブルを用いた LAN(Local Area Network) にはこの形態が多い。
  4. バス形:各ノードがバスと呼ばれる同一の伝送路に接続されたシステムである。これはパソコンやワークステーション用の伝送ネットワークとしてよく使用されているトポロジーであり,従来よりイーサネットに代表される同軸ケーブルを用いた LAN に採用されている。
  5. ツリー形:各ノードを樹枝状に配置し,階層構成とするもので,各階層毎にその役割に応じた処理を分担することで,システム全体の効率的な運用を行う方式である。この形態は垂直形の分散処理システムとしてよく用いられている。
  6. メッシュ形:一つのノードから,結合を必要とするすべてのノードに対して直接接続する方式で,広域網の代表的な形態である。通常,通信が必要となる二つのノードを最短経路で行うので伝送速度や待ち時間の点では有利となり,他の形態に比べネットワークの信頼性は高い。ただし,線路の総延長が長くなる欠点がある。
  7. メッシュ形
    メッシュ形

アナログ-ディジタル変換

アナログ電気信号をディジタル電気信号に変換する電子回路のことをアナログ - ディジタル変換回路(A/D 変換回路)という。

伝送信号の変調方式

音声信号などのアナログ信号,コンピュータからのディジタル信号などの原信号を伝送路に適した波形に変換する操作を変調と呼ぶ。変調を行うには,搬送波と呼ばれる適当な周波数をもつ信号のパラメータの一つ又は複数を,原信号に応じて変化させる。伝送路を通した後,この変調を受けた波形から原信号を取り出す操作を復調と呼ぶ。

アナログ信号を変調する方式としては,搬送波を変化させるパラメータによって,振幅の変化で変調する振幅変調(AM:Amplitude Modulation),周波数の変化で変調する周波数変調(FM:Frequency Modulation),位相の変化で変調する位相変調(PM:Phase Modulation)などがある。図 1 は,このうち AM を示している。

一方,ディジタル信号を変調する方式としては,ディジタルの符号に応じて搬送波を不連続的に偏移させる(Shift Keying)パラメータによって,振幅偏移変調(ASK:Amplitude Shift Keying),周波数偏移変調(FSK:Frequency Shift Keying),位相偏移変調(PSK:Phase Shift Keying),さらに,振幅変調と位相変調とを組み合わせた方式の一つに直交振幅変調(QAM:Quadrature Amplitude Modulation)がある。図 2 は,このうち ASK を示している。

伝送信号の変調
伝送信号の変調

データなどの記憶容量と伝送速度

平均アクセス時間 Ta は,ヒット率を p,主記憶装置のアクセス時間を tM,キャッシュメモリのアクセス時間を tC とすると,次式で表される。

\[ T_\text{a} = (1-p)t_\text{M} + pt_\text{C} \]

TCP/IP

インターネットでは,標準プロトコルとして TCP/IP(Transmission Control Protocol/Internet Protocol)と呼ばれる 4 階層から成るプロトコル郡が用いられ,ハイパーテキストを用いて情報の公開・閲覧サービスなどが可能な WWW(World Wide Web)が幅広く利用されている。これらは企業間の電子商取引のデータ交換を行う EDI(Electronic Data Interchange)でも利用されている。

表 TCP/IPの4階層プロトコル
TCP/IP の階層構造 説明
応用層(アプリケーション層) 電子メール,ファイル転送など特定アプリケーションプログラムの処理を行う。
トランスポート層 アプリケーションプログラム間の通信制御を行う。
ネットワーク層(インターネット層) ネットワークに流れるパケットの流れを制御する。
ネットワークインターフェイス層 物理的なハードウェアインターフェイスに関する制御を行う。

IP アドレス

IP アドレスとは,インターネットなどの TCP/IP ネットワークに接続されたコンピュータや通信機器の一台ごとに割り当てられた識別番号。現在主流の IPv4 では 32 ビットの値となっており、一つのネットワークに最大約 42 億台が参加できる。

ワールドワイドウェブ(WWW)

WWW では利用したい情報を URL(Uniform Resource Locator)により指定する。

コンピュータシステム

コンピュータの基本装置

コンピュータは,入力装置出力装置記憶装置演算装置制御装置の 5 つの装置で構成され,下図に示すデータおよび制御の流れにより処理が実行される。

コンピュータの 5 大装置
図 コンピュータの 5 大装置
演算装置
演算装置(ALU : Arithmetic and Logic Unit)とは、コンピュータを構成する基本的な装置の一つで、算術演算(四則演算)や論理演算などの計算を行う装置。現代のコンピュータでは制御装置とともにマイクロプロセッサ(CPU/MPU)などの論理回路の一部として実装されている。
制御装置
制御装置とは、機械やシステムの構成要素のうち、主に他の要素の動作の制御などの機能を担うもの。
記憶装置
記憶装置(storage unit)とは、コンピュータの構成要素の一つで、データやプログラムの保存・記憶を行うための装置。レジスタやキャッシュメモリなど CPU 内部の半導体メモリ、メインメモリ(主記憶装置/RAM)、ストレージ(外部記憶装置/補助記憶装置)などに分類される。
入力装置
入力装置(input device)とは、コンピュータなどの機器本体にデータや情報、指示などを与えるための装置。一般的には人間が操作して入力を行う装置のことを指し、手指の動きや打鍵を電気信号に変換して伝達するキーボードやマウス、タッチパネルなどが該当する。
出力装置
出力装置(output device)とは、コンピュータ(や実行中のプログラム)からデータを受け取って、人間に認識できる形で外部に物理的に提示する装置。光の像を投影して画面を映し出すディスプレイ(モニタ)やプロジェクタ、紙などに印字・印刷を行うプリンタやプロッタ、音声を発するスピーカーやイヤフォンなどがこれに該当する。

コンピュータの性能

コンピュータの性能は,中央処理装置(CPU)と主記憶装置の性能に依存する部分が多い。

CPU の性能評価のための指標としては,1 秒間に何百万回の命令が実行できるかを示す MIPS(Million Instruction Per Second),1 秒間に何回の浮動小数点演算が実行できるかを表す FLOPS(Floating Point Operation Per Second),評価用プログラムによるベンチマーク結果に基づく SPEC(Standard Performance Evaluation Corporation)値がある。

主記憶装置の性能としては,記憶容量とアクセス時間が挙げられる。主記憶装置への平均アクセス時間を短縮するために CPU と主記憶装置の間に置かれる高速記憶装置をキャッシュメモリと呼び,CPU が読み込むデータがキャッシュメモリに存在しない確率をNFP(Not Found Probability)という。

クロック周波数

クロック信号は,コンピュータ内部に設置された発信器から発生する電圧の高低が繰り返される信号である。プロセッサは,このクロック信号に同期して,命令を実行する。1 秒間に発生するクロック信号の回数をクロック周波数と呼び,Hz(ヘルツ)の単位で表す。

1 クロックにかかる時間は,クロック周波数から求められる。

1 クロックの時間 = 1 秒 ÷ クロック周波数
CPI

CPIは,1 命令の実行に必要なクロック数を表す。そのため,CPI が小さいほど 1 命令を短い時間で実行することができる。命令実行フェーズは,クロックに同期して次ステージに移動する。よって,6 ステージある命令を実行し終える場合,CPI は 6 となる。

1 命令の実行時間は,次式で求まる。

1 命令の実行時間 = 1 クロックの時間 × CPI
MIPS

1 秒当たりの命令実行数は,1 秒を 1 命令の実行時間で割れば求まる。MIPS は,1 秒間に 100 万命令を実行できることを表し,それを 1 MIPS としている。

MIPS = 1 秒 ÷ 1 命令の実行時間 ÷ 106

記憶装置

半導体メモリ

半導体メモリは読み書きが可能な RAM と,読み取り専用の ROM に分類される。さらに RAM の種別としては,高速で消費電流も少ないが大容量化が困難な SRAM と,時間が経つと記憶内容が消えてしまうためリフレッシュ動作が必要な DRAM などがある。

RAM は Ramdam Access Memory の略,ROM は Read Only Memory の略である。

RAM は,素子の構造によって,主記憶装置に用いられるDRAM(Dynamic RAM)と,キャッシュメモリなどに用いられる SRAM(Static RAM)がある。

表 RAM の種類
種類 特徴
DRAM
  • 構造が簡単なため,安価に大容量化が可能
  • 記憶内容を保持するために一定時間ごとにリフレッシュ(再書込み)[1]が必要
  • リフレッシュ動作により速度は低下する
SRAM
  • 構造が複雑なため,大容量化には向かない
  • 2 つの安定状態を持つ順序回路(フリップフロップ回路)で 1 ビットの情報を記憶し続けることが可能
  • リフレッシュ動作が不要なため,DRAM よりも高速

パソコンのハード構成

パーソナルコンピュータ本体と周辺装置との間のインターフェースには,下表に示すような種類がある。

表 インターフェース
インターフェース 接続対象機器と特徴 転送方式
IDE 内蔵形ハードディスクや CD-ROM を最大 4 台まで接続可能 パラレル
GPIB 計測制御用に利用される パラレル
USB プリンタ,キーボード,ハードディスクなど多くの周辺機器一般に使用される シリアル
RS-232C 本来はモデム接続用のインターフェースだが,他の機器の接続にも利用される シリアル
IrDA 赤外線によるデータ通信に用いられる規格 シリアル
IEEE1394 ハードディスク,MO,ディジタルビデオ機器を最大 63 台接続可能 シリアル

オペレーティングシステム

オペレーティングシステム(operating system)は,コンピュータでプログラムの実行を制御するためのソフトウェア。ジョブ管理・入出力制御・データ管理およびこれらに関連した処理を行う。

オペレーティングシステムは,複数のタスクに対して,優先度に基づき CPU やメモリ,通信インターフェースなどのハードウェア資源を効率的に割り当て,システム全体の遊び時間を少なくすることでスループットを高めている。このように,タスクを管理して,ハードウェア資源を有効活用する機能をタスク管理という。

タスクは生成されると,実行可能状態となる。実行状態にあるタスクから CPU の占有が解かれると,タスクディスパッチャが実行可能状態にあるタスクの中から最も優先度の高いタスクに CPU の使用権を与え,実行状態に移行させる。

複数のタスクを切替えて実行する場合,タスクの切替えタイミングが重要となる。一例として,外部や内部の割込みにより発生する状態変化のタイミングを用いるイベントドリブン方式がある。

タスクの実行順序は,FIFO(First-In First-Out) と呼ばれる構造の待ち行列にタスクを格納して処理を行う到着順方式や,処理時間の短いタスクを最初に実行する処理時間順方式がある。その他に,あらかじめタスクに優先度を付与しておき,優先順位に従って処理する方法がある。しかしこの方式では,優先度の低いタスクが実行されないスタベーションと呼ばれる現象が起こる可能性があり,動的に優先度を変更する対策などが行われる。

プログラミング

コンピュータに実行させる処理手順を記述することをプログラミングと呼ぶ。プログラミングには記述する人間にわかりやすく,コンピュータ処理の実行のための言語体系であるプログラミング言語が用いられ,その言語で記述されたものをソースコードと呼ぶ。

マイクロコンピュータのプログラム命令は,メモリから命令レジスタに読み込まれた後,命令デコーダで解読されて制御回路へ伝達される。このようなマイクロコンピュータが直接理解できるプログラム命令は,2 進数で記述された機械語である。機械語を扱うときには,2 進数 4 桁分を表す 16 進数を用いることが多い。

一般的に機械語命令は,基本動作を表す命令コードと命令の対象となる数値やデータのアドレスなどを表現するオペランドによって構成される。例えば,相対アドレスを指定する場合は,プログラムカウンタの値にオペランドによって指定した値を加えて,目的のアドレスを算出する。停止命令や無操作命令など,一部の命令ではオペランドの無い命令もある。

アセンブラは,機械語とほぼ 1 対 1 に対応したニモニックを用いる言語で,機械語よりもプログラムの内容が分かりやすい。

機械語やアセンブラを低水準言語という。

人間が理解しやすいように記述した原始プログラムを一括して機械語などの低水準言語に変換する言語を総称して,コンパイラ言語という。この変換作業によって原始プログラムは目的プログラムとなり,さらに別の目的プログラムやライブラリと結合させて実行可能プログラムとなる。

実行時に原始プログラムを一文ずつ解釈し,逐次実行していく言語としてインタプリタ言語がある。この言語は,コンパイラ言語に対してプログラム変更手順が容易であるが,実行速度は遅くなる。

実行時に,記述内容を言語処理によって逐次解釈しながら実行するものをインタプリタ型言語と呼び,それに対して,機械が理解可能な機械語にあらかじめ翻訳しておき実行するものをコンパイラ型言語と呼ぶ。後者は,インタプリタ型言語と比べて実行速度が速くなる

ソフトウェア開発におけるプロセスモデル

ソフトウェア開発には,いくつかのプロセスモデルがある。要求定義,設計,実装(プログラミング),テストなどの工程を上流工程から下流工程へ逐次的に遂行していくウォータフォールモデルにおいて,開発者のプログラムテストは,システムの最も小さな構成単位であるモジュールの単体テストから開始し,結合テスト,システムテストへとボトムアップ的に行う。しかしこの進め方においては,最上流の要求定義に起因する欠陥が,最後のシステムテストの段階にならないと検出されないという構造的問題がある。この開発リスクを回避するために,現在では比較的短時間で分析や設計,評価を繰り返し行う反復的なプロセスモデルも用いられている。

テスト工程では,静的解析ツールを用いたプログラム構造解析も行われるが,実行による正しさを確認するためには,実際にソフトウェアを実行環境で動作させる必要がある。単体テストの場面では,プログラムの一部モジュールだけを実行可能なようにテスト環境を整えなければならないため,本来のプログラムに代わって,被テストも受ウールを模擬的に呼び出すドライバや被テストモジュールから呼び出され模擬的な応答をするスタブを準備することが行われる。

テストを網羅的に行うためには,初めの段階ではプログラムの内部構造に基づいてテスト項目を選ぶ方法で行われる。その後,結合テスト,システムテストと進み,対象のプログラム量が大きくなるに従って,内部構造には関知せずに,インターフェースの仕様からテスト項目を選ぶブラックボックステストの比重が大きくなる。

データベースモデル

データベース

データベースとは,関連するデータをある規則に従ってまとめられた集合体であり,一元管理することにより,複数の利用者や業務で共有して利用できるようにしたものである。

データベースを論理データモデルで分類すると,階層型データベース,ネットワーク型データベース,リレーショナル型データベースに分類される。前者の二つのベータベースでは,レコードを親子に分け,レコードの親子関係が,それぞれ 1:n,m:n となっており,これらを総称して構造データベースと呼ぶこともある。ネットワーク型データベースは,事務処理プログラム言語を開発するために設立されたデータシステム言語協会の名前にちなんで,CODASYL 型データベースとも呼ばれる。リレーショナル型データベースはデータを 2 次元の表形式で管理し,表の各行がレコード,各列がレコードの項目に対応する。表の中で行をユニークに識別する列のことをキーと呼び,データ冗長性を排除する正規化の際の考慮点となる。

データベースの定義,操作する言語をデータベース言語といい,ネットワーク型データベースには NDL,リレーショナル型データベースには SQL が規定されている。

電子計算機の固定磁器ディスク構成

電子計算機の補助記憶装置として,固定磁気ディスク装置は広く使用されている。データは,表面に磁性体を塗ったアルミニウムやガラス製のプラッタと呼ばれる磁気ディスクを磁化させ,その磁化の方向で0と1の情報として記録される。読み書きの命令を受けてから読み書きの動作が終了するまでの時間をアクセス時間と呼び,次式で求められる。

アクセス時間 = シーク時間 + データ転送時間 + サーチ時間

最近では,補助記憶装置のアクセス速度の高速化や,耐障害性を確保することを目的として,複数台の固定磁気ディスク装置をまとめて管理するディスクアレイシステムが利用されている。これは RAID システムとも呼ばれ,各種のレベルがあり,次のような主要なものがある。

RAID(Redundant Arrays of Inexpensive Disks)とは、ハードディスクなどのストレージ(外部記憶装置)を複数台まとめて一台の装置として管理する技術。1987 年カリフォルニア大学バークリー校のデービッド・パターソン(David A.Patterson)氏、ガース・ギブソン(Garth Gibson)氏、ランディ・カッツ(Randy Katz)氏の 3 人によって提唱された。

表 RAID の種類
種類 説明
RAID0 RAID 0 とは、複数のストレージ(外部記憶装置)をまとめて一台の装置のように管理する RAID 技術の方式(RAID レベル)の一つで、複数の装置に均等にデータを振り分け、並行して同時に記録することで読み書きを高速化する方式。ストライピング(striping)ともいう。
RAID1 RAID 1 とは、複数のストレージ(外部記憶装置)をまとめて一台の装置のように管理する RAID 技術の方式(RAID レベル)の一つで、2 台の装置にまったく同じデータを同時に書き込む方式。ミラーリング(mirroring)ともいう。
RAID2 RAID 2 とは、複数の外部記憶装置(ハードディスクなど)をまとめて一台の装置として管理する RAID 技術の方式の一つで、ハミングコードと呼ばれる誤り訂正符号を生成し、データとは別に分散して記録する方式。効率の悪さなどからほぼ使われていない。
RAID3 RAID 3 とは、複数の外部記憶装置(ハードディスクなど)をまとめて一台の装置として管理する RAID 技術の方式の一つで、1 台をパリティと呼ばれる誤り訂正符号の記録に割り当て、残りの装置にビット単位やバイト単位でデータを分散記録する方式。
RAID4 RAID 4 とは、複数の外部記憶装置(ハードディスクなど)をまとめて一台の装置として管理する RAID 技術の方式の一つで、1 台をパリティと呼ばれる誤り訂正符号の記録に割り当て、残りの装置にブロック単位でデータを分散記録する方式。
RAID5 RAID 5 とは、複数の外部記憶装置(ハードディスクなど)をまとめて一台の装置として管理する RAID 技術の方式の一つで、書き込むデータから誤り訂正符号を生成し、データとともに分散して記録する方式。
RAID6 RAID 6 とは、複数の外部記憶装置(ハードディスクなど)をまとめて一台の装置として管理する RAID 技術の方式の一つで、データからパリティと呼ばれる誤り訂正符号を 2 つ生成し、データとともに分散して書き込む方式。

SAN と NAS

SAN(ストレージエリアネットワーク)とは,サーバとストレージをファイバチャネルで接続したストレージ専用のネットワークである。SANは,業務ネットワークに負荷をかけず,高速データ通信ができるが,導入コストがやや高くつく。

NAS(ネットワークアタッチドストレージ)は,LAN と直接接続されるストレージである。NAS の多くは,RAID(Redundant Array of Inexpensive Disk)構成のハードディスクを内蔵し,専用の OS を搭載しており,ネットワークを経由したファイル共有を可能としている。

文字コード

EUC コード
UNIX の国際化対応のために体系化されたコードであり,漢字も表現できる。
Unicode
米国のベンダによるコンソーシアムが提唱した 2 バイトコードで,ISO の標準となっている。
シフト JIS コード
キャラクター切り替えのエスケープシーケンスを用いることなく,1 バイト目を読み込めば,半角英数字の 1 バイト文字であるか,漢字の 2 バイト文字であるかが区別できる。
ASCII コード
アメリカの ANSI によって設定された規格である。文字コードは7ビットで表現し,8ビット目はパリティビットとして使用している。
EBCDIC コード
IBM が開発した 1 バイト(8 ビット)コードで,汎用機を中心に普及している。

RASIS

RASIS(Reliability Availability Serviceability Integrity Security)とは、コンピュータシステムが期待された機能・性能を安定して発揮できるか否かを示すのに用いられる代表的な5つの特性の頭文字を繋ぎ合わせた用語。

表 RASIS
特性 説明
信頼性(Reliability) 障害や不具合による停止や性能低下の発生しにくさを表す。稼働時間当たりの障害発生回数(MTBF:Mean Time Between Failures)などの指標で表すことが多い。
可用性(Availability) 稼働率の高さ、障害や保守による停止時間の短さを意味する。稼働が期待される時間に対する実際の稼働時間の割合(稼働率)などの指標で表す場合が多い。
保守性(Serviceability) 障害復旧やメンテナンスのしやすさを表す。障害発生から復旧までの平均時間(MTTR:Mean Time To Repair)などの指標で表すことが多い。
保全性(Integrity) 過負荷や障害、誤操作などによるデータの破壊や喪失、不整合などの起こりにくさを意味する。
機密性(Security) 外部の攻撃者による不正侵入や遠隔操作、データやプログラムの改竄や機密データの漏洩などの起こりにくさを表す。

アベイラビリティ

アベイラビリティ(availability)とは,どのくらいシステムを正常に使い続けることができるか,つまりシステムの壊れにくさや耐久性のことである。可用性とも呼ばれる。

アイテムが特定の時点で機能を維持している確率。与えられた時点でシステムが動作可能である確率は、一般に、時点アベイラビリティ、瞬間アベイラビリティなどといわれる。信頼度と似ているが,修理による保全と合わせた確率である。Availability の頭文字である $A$ の記号で表され,次式で定義される。

$A$ = 動作可能時間 / 全時間

アベイラビリティには,「固有アベイラビリティ」と「運用アベイラビリティ」がある。

固有アベイラビリティ

固有アベイラビリティは,次式で定義される。

$\displaystyle A = \frac{\text{MTBF}}{\text{MTBF} + \text{MTTR}} = \frac{\mu}{\mu + \lambda}$
運用アベイラビリティ

運用アベイラビリティは次式で定義される。

$\displaystyle A = \frac{\text{MUT}}{\text{MUT} + \text{MDT}}$

ここで,MUT は平均アップ時間(Mean Up Time),MDT は平均ダウン時間(Mean Down Time,アイテムがダウン状態にある期間の期待値)である。

計算機システムの信頼性

計算機システムの信頼性の主な尺度は稼働率で,それぞれに以下の関係がある。

MTBF(mean operating time between failures : 平均故障間動作時間)

故障間動作時間の期待値。

修理系アイテムの「故障のしやすさ」を時間で表したもので,次式で定義される。

MTBF = 総動作時間 / 故障件数

指数分布型の関数であれば,MTBF は故障率の逆数となる。

$\displaystyle \text{MTBF} = \frac{1}{\lambda}$

指数関数型を含む連続分布の MTBF は,信頼度関数 $R = e^{-\lambda t}$ を用いて,次式で計算できる。

$\displaystyle \text{MTBF} = \int^{\infty}_0 R \text{d}t = \int^{\infty}_0 e^{-\lambda t} \text{d}t = [-\frac{1}{\lambda}e^{-\lambda t}]^{\infty}_0 = \frac{1}{\lambda}$
MTTR(mean time to restoration : 平均修復時間)

修復時間の期待値。修理を完了するための平均時間を表し,アベイラビリティ $A$,保全度 $M$,修復率 $\mu$に関係する。

MTTR = 総修復時間 / 保全件数

連続分布関数では,修復率 $\mu$ と逆数の関係になる。

$\displaystyle \text{MTTR} = \frac{1}{\mu}$

また,固有アベイラビリティ $A$ との関係では,次式がよく用いられる。

$\displaystyle \text{MTTR} = \text{MTBF}(\frac{1}{A} - 1)$

情報セキュリティ

情報セキュリティ管理

企業や組織が保有している情報資産の安全性を確保するためには,情報セキュリティ管理が重要である。

1) その三要素は機密性,完全性,可用性であり,そのうち完全性とは情報が破壊,改ざん,消去されない状態を確保することである。

2) 情報資産の安全性を脅かす脅威を排除するために企業や組織が作成する規定を情報セキュリティポリシーと呼ぶ。

3) セキュリティを確保する対策としては,暗証暗号やパスワード認証などを使用するユーザー認証と,ファイアウォールなどを利用するアクセス制御がある。

コンピュータのウイルス対策

コンピュータウイルス

狭い意味では,自己伝染機能,潜伏機能,発病機能がある悪意のあるソフトウェア。マルウェア一般の総称として用いられることもある。

ワーム

独立したプログラムで,自身を複製して他のシステムに拡散する性質をもったマルウェア。感染するときに,宿主となるファイルを必要としないことが特徴。

ボット

インターネット上で動く自動化されたソフトウェア全般を指す。マルフェアとは限らない。不正目的のボットがボットネットとして協調して活動し,様々な攻撃を行う。例えば,離れたところから遠隔操作を行うことができる遠隔操作ウイルスはボットに該当する。

マルウェア対策技術

感染防止

マルウェアの対策では,次の 3 つを確実にすべてのコンピュータで行うことが重要である。マルウェアの感染は,ほぼこの 3 つが正しく行われていないコンピュータで起こる。

  1. ウイルス対策ソフトの導入
  2. ウイルス定義ファイルの更新
  3. ソフトウェア脆弱性の修正

検出

マルウェアを検出するための手法には,次のものがある。

パターンマッチング

ウイルス定義ファイル(パターンファイル)と呼ばれるファイルと比較することでウイルスを検出する。主流となっている手法で,既知のマルウェアのパターンを効率的に検出できる。ウイルスの元ファイルではなく,そのハッシュ値などを利用して簡便にチェックすることが一般的である。

ビヘイビア法

ウイルスと疑われる異常な挙動(ふるまい)を検出する方法である。既知のマルウェア以外に,不審な挙動をする未知のマルウェアを検出できる。

コンペア法

安全な場所に保管しておいた原本と比較し,ウイルス感染を検出する方法である。ハッシュ値やファイル容量などで簡便に変更をチェックするコンペア法を,特にチェックサム法ということもある。

駆除

マルウェアを検知したときは,ウイルス対策ソフトの事業者が対策を発表している既知のマルウェアであれば,その対応手順に従って対処する。未知のマルウェアであれば,契約している情報セキュリティ事業者に報告するなどして対処を依頼する。

依頼を受けた事業者は,マルウェアの検体(マルウェアだと推定されるソフトウェア)について,逆アセンブル(ソフトウェアからプログラムを復元すること)などの手法で新種ウイルスの動作を解明する。

参考文献

inserted by FC2 system