基本技術者メモ
■パイプライン制御
①命令の取り出し IF:Instruction Fetch
②命令の解読 D:Decode
③オペランドアドレスの計算 A:Address calculation
④アドレス変換 T:Translation
⑤オペランドデータ取り出し OF:Operand Fetch
⑥命令の実行 E:Execution
■制御の用語
○データフロー制御
複数のプロセッサが並列処理をおこなう非ノイマン型のアーキテクチャの一つ
○プロセス制御
多重プログラミング方式のオペレーティングシステムで、プロセスやタスクの「実行可能」、「実行」、「待ち」の各条件を管理・制御すること
○マイクロプログラム制御(ストアードロジック)
機械語命令の実行に必要なCPU内の動作をマイクロ命令の組み合わせ(マイクロプログラム)でおこなう制御方式。命令の基本動作に対応するマイクロ命令を用意し、マイクロ命令の組み合わせによって種種の命令を実現する方法。既存の命令を変更したり、新しい命令を追加するときは、マイクロプログラムの作り直しだけでよいので、柔軟性に富んでいる。この方式は、CISCに用いられている。
○ワイヤードロジック制御(布線論理制御)
命令の実行をハードウェア(電子回路)で直接おこなうこと。マイクロプログラムを使わないCPUでは、命令の基本動作ごとに対応した固定配線(論理回路)が存在する。そして、命令の解読結果に従って、部分動作をする回路を順次呼び出していく方法。RISCに多く用いられている。
■割り込みの原因
外部割り込み
機械チェック割り込み
処理装置の誤動作、電源・電圧異常、主記憶装置障害
計時機構割り込み
所定時間の経過(インターバルタイマ)、所定時刻通過
入出力割り込み
入出力完了、入出力装置状態変化(印刷装置紙切れなど)
外部信号割り込み
システム操作卓からの指示、外部信号によるもの
内部割り込み(割り出し)
プログラム割り込み
桁あふれ、不当命令コード、0による除算、記憶保護例外
監視プログラム呼び出し割り込み
入出力操作要求、タスク切り替え、ページフォルト、監視プログラムの機能呼び出し
■制御プログラムの機能
○ジョブ管理
ジョブ管理は、ジョブの連続処理を管理する。ジョブのスケジュールを効率的に管理することで、システムの遊休時間をなくし、ターンアラウンドタイムを短縮し、スループットを向上させることができる。
・スケジューラ:ジョブの実行順序の管理
マスタスケジューラ:オペレータとのインターフェース
ジョブスケジューラ:ジョブの受付、洗濯、開始、終了の管理
・リーダ:ジョブの読みとり
・イニシエータ:ジョブ・プログラムの開始準備
・ターミネータ:ジョブ・プログラムの後始末
・スプール機能:ジョブの処理結果の出力管理
・連続処理機能:ジョブの連続実行の管理
○記憶管理
記憶領域を最も効果的に使用するとともに、主記憶装置の容量の制約をカバーする。そのため、補助記憶装置を仮想記憶空間として有効に活用し、コンピュータシステムの使用効率を向上させる。
○データ管理
コンピュータシステムのあらゆるデータを管理する機能である。プログラムやデータをすべてファイルという統一概念で取り扱うことにより、ここの応用プログラムとは独立した共有資源として提供する。
○運用管理
運用管理者によっておこなわれる運用管理業務を支援する。システムの運用を可能な限り自動化し、稼働状況の報告やその他のオペレータのメッセージなどによって、支障のないシステムの運用維持管理を実現する。
○入出力管理
装置の制御やデータの読み込み/書き込みなどをおこなう。データ管理の指示に従い、装置の制御などをプログラマが意識せずにプログラムを作成したり、実行中のプログラムと連絡を取って入出力動作をおこなう。また、補助記憶装置の使用効率を高めるため、ブロック単位で補助記憶装置に対して入出力をおこなう。
○障害管理
システムの信頼性の維持/システムの安全性の確保など、システムの維持管理のために、ハードウェアの監視・運用状況の把握をおこない、システムの異常の検出・障害対策・バックアップなどおこなう。
○通信管理
複数のコンピュータ間での通信や、コンピュータとの複数の端末との間の通信など、通信回線を利用したネットワーク処理を制御(管理)する。
■分割技法
○KJ法
一つの問題に関して数多くの考えを提出し、それらをグループ化しながら相互に関連つけていく方法である。問題点の抽出や考え方を整理するのに用いられる。
○OMT法
Object Modeling Technique。オブジェクト指向設計の方法論の一つ。オブジェクト指向技法は、どこに後戻りしても良い。絶えず保守しながらシステムを発展させていく。一方、ウォーターフォールモデルでの後戻りは、原則として一つ前の工程だけである。そのため、開発中心の工程となる。
○ジャクソン法
入出力のデータ構造に会わせてプログラムの論理を構造化する技法である。
○トランザクション分割法
分岐するデータの流れに対して、それぞれのトランザクションごとに分割したものをモジュールの構成とする技法である。
○STS分割
Source/Transform/Sink, 源泉/分割/吸収分割、複合設計。STS分割では、処理の流れを3〜10程度の機能に分割し、各機能を、入力部分(源泉)、処理部分(変換)、出力部分(吸収)の3つに整理する。
■レビュー技法
○ウォークスルー
参加者が持ち回りで責任者を務めながら、全体のレビューを遂行する。
○プロトタイプモデル
対象ソフトウェアの一部を試作し、実際に動作させてレビューする。
○インスペクション
レビュー実施の焦点を絞っておき、一度に1項目を確認することによって、迅速に資料を評価する。
レビューは、作業工程の区切りをつけるもので、各開発工程で作成された文章(設計書)について会議形式で内容の検証をおこなうものである。種種の立場の人が参加し、それぞれの観点から文書と作業内容を検証する。
レビューでは、各工程で作成された文書や関連資料が用意され、資料作成者(設計者)がレビュー参加者に内容を説明し、参加者が内容の検証をおこなう。プロジェクトの各段階に携わっている人々が参加するので、管理面と技術面の両方の面での可視性が高いといわれている。
レビューには、その方法において、ウォークスルーとインスペクションがある。ウォークスルーは相互検証という性格を持っており、会議の進行役は出席者の中から選出される。一方、インスペクションは、モデレータという責任者のもとに組織的に実施される。そのため、モデレータは、インスペクションについての訓練を受けている必要がある。また、インスペクションでは、発見されたエラーは周知徹底させる。
■プログラム設計
○NSチャート
ナッシーとシュナイダーマンにより提案された技法であり、プログラム設計を構造化設計でおこなうときの技法である。階層構造の形でプログラムの全体構造を表す。
主な特徴は、①矢線を使用しない論理の図的表現、②一つの入り口と一つの出口を持つ、③基本制御構造を表現、④視覚的でわかりやすいことにある。
○PERT図
Program Evaluation and Review Technique の略。プロジェクトの日程計画を表現するのに使用される。プロジェクトを構成する作業と所要日数に着目し、作業間の順序や全体の所要時間を図で示す。
○状態遷移図
事象の発生とその遷移を図に表したものである。オペレーティングシステムのタスク管理によるタスクの状態遷移を表すときなどに用いる。プログラム全体の構造を表すものではない。
○バブルチャート
データの流れに着目した図式表現。DFDに似ているが、機能(処理、プロセス)を楕円、データの流れ(データフロー)を矢線で表す。
○ワーニエ法
ワーニエ法は、JDワーニエによって提唱された技法で、システム構成法とプログラム構成法を総称したものである。構造の作成に集合論を適用しているところに特徴がある。ファイルやデータの構造を分析し、分析結果からワーニエ図を作成する。さらに、ワーニエ図をもとにプログラムの流れ図を作成する。
一方、流れ図は、基本的にJIS規格と同じであるが、処理と判断を一緒にしているところに特徴がある。そして、ワーニエ法のプログラム構造は、選択構造と繰り返し構造のいずれかになる。さらに、初期処理などに相当する処理は、仮に処理がなくても必ずつける。そのため、スタート部(初期処理)手続き(種処理)エンド部(終了処理)という流れになる。
■単体テスト
○ホワイトボックステスト
命令網羅・判定条件網羅・条件網羅・複数条件網羅
○ブラックボックステスト
同値分割・限界値分析・因果グラフ・実験計画法・エラー推測
■オブジェクト指向
データ構造と手続き(プロセス)を一体化(カプセル化)して、情報隠蔽を可能としたものをオブジェクトという。オブジェクト指向とは、オブジェクトを部品として取り扱い、設計作業プログラミングの生産効率を向上させようとする考え方である。カプセル化によって、データと手続きの変更があっても、その影響を受ける手続きの範囲が限定されてくる。このような局所性の高い構造は、信頼性の高いソフトウェア部品となり、再利用に最適となる。
オブジェクトの動作は、他のオブジェクトから伝えられたメッセージとそれによって起動するメソッド(手続き)と呼ばれる内部状態にアクセスする手続きとで規定されるため、情報隠蔽が実現する。同じ性質や機能を持つオブジェクトは同じクラスに分類され、それらが階層関係にある場合は、下位のクラスに上位の性質や機能を継承(インヘリタンス)させることができる。そして、クラスを集積し、自由に使えるようにしたものがクラスライブラリである。
○インスタンス
クラスに属するオブジェクトを具体化させたものがインスタンス、プログラム実行時に動作するオブジェクトである。一方、クラスはそのひな形である。
○抽象化
外界の対象に対して最も特徴的な要素だけを抽出して、それ以外のものを捨てることにより、特性を見いだすという考え方である。たとえば、スタックを想定すると、ポップとプッシュという動作を知っていれば、その実現方式については何も知らなくてよいということである。
■リバースエンジニアリング(逆エンジニアリング)
リバースエンジニアリングとは、既存システムを解析し、設計技術を抽出する技術である。たとえば、高級言語などで書かれたソースプログラムしかないシステムから、ソースプログラムを解析し、モジュール構造図、画面仕様、ファイル仕様などの設計レベルの文書を作成し、そのシステムの使用を導くことである。
■クラスタ
複数のコンピュータを結合したマルチプロセッサシステムにおいて、これらのコンピュータシステムを大規模なサーバーシステムとして運用するための技術をいう。
■ACID特性
複数の利用者からのデータ更新に備えて、データベースの状態を矛盾なく一貫した状態にしておくための管理方法をACID特性という。
○原始性(Atomicity)
トランザクション終了時に、すべての処理が完了済みか、あるいは全くおこなわれていない状態を保つ
○一貫性(Consistency)
トランザクション終了時の状態に関係なく、データベースが一貫性を保つ
○独立性(Isolation)
トランザクションを複数同時に実行した際に、直列(順番)に実行したときと同じ状態を保つ
○耐久性(Durability)
トランザクション終了後、障害などによる原因でデータベースの内容が変化しないように保つ
■SQL Structured Query Language
関係データベース専用の非手続き型言語
○スキーマ定義言語 SQL-DDL Data Difinition Language
スキーマ定義言語は、SQLデータベースの論理的な構造を定義する。
CREATE DROP(表定義の削除)
○モジュール言語
SQL文をコーディングするための言語。データのアクセス部分だけをSQLでコーディングし、専用のコンパイラで解釈しておく。これを親プログラム(COBOLなど)から外部手続きと見なし、CALL文で呼び出して使用する。
○データ操作言語 SQL-DML Data Manipulation Language
データベース操作やカーソル操作をおこなうための文の集合である。
CLOSE カーソルを閉じる
COMMIT トランザクションの終了
DELETE 行削除
FETCH カーソル位置付けと行の読み込み
INSERT 行の挿入・追加
OPEN カーソルを開く
ROLLBACK トランザクション処理の取り消し
UPDATE 行の内容の更新
■NDL
網型モデルのデータベース言語としてNDLがある。NDLは、データベースに対する論理データ構造と基本操作を定義する。スキーマ定義言語、サブスキーマ定義言語、モジュール定義・データベース操作言語から構成される。そして、データベース設計、アクセス、保守、制御、保護のための機能を提供している。
なお、NDLは親言語インターフェースだけが提供されているため、SQLのように会話型で直接データベース操作のコマンドを指定することができない。
NDLの標準化の検討は、CODASYLのデータベースに関する報告をもとにANSIによりおこなわれ、その後、ISOがANSI案をもとに国際規格を制定した。
■OSIの7つの層 Open System Interconnection
第7層 アプリケーション層、応用層 - 意味内容
業務処理を担当している応用プログラムや端末の利用者にデータ通信機能を提供する。利用者間のデータレコード形式やその内容の取り決めなどである。
第6層 プレゼンテーション層 - 表現内容
送受信するデータの文字やコード形式、暗号化、圧縮などによるデータ表現形式の取り決めをおこなう
第5層 セション層 - 会話
利用者間の会話が正しく行えるように、回線の接続・切断などの制御方式を取り決める。全二重、半二重、優先データ、送信機能、同期、再送機能などである。
第4層 トランスポート層 - データ
伝送路のデータ転送の誤り検出や訂正の制御を規定する。通信網の違いを吸収し、高い信頼性で経済的な通信機能を実現する
第3層 ネットワーク層
下位のデータリンクの機能を利用して、システム間の透過的なデータ転送をおこなう。中継や経路の選択をおこない、端末間にネットワークサービスを提供する
第2層 データリンク層
データが正しく伝送されるように、伝送誤りの検出、同期の取り方、再送の制御方法を規定する。HDLC、CSMA/CDなどの伝送制御手順が該当する
第1層 物理層、フィジカル層
端末を通信回線へ接続するためのコネクタ形状や、ビット伝送のための電気的条件、物理的性質を規定する。V.24、X.21、RS-232Cなどが対応する
■HDLC手順 High-level Data Link Control
高水準伝送制御手順(ハイレベルデータリンク制御手順)ともいい、コンピュータ間のデータ通信を高能率で高い信頼性でおこなうための伝送制御手順である。 HDLCでは、フレームというデータのひとかたまりで伝送をおこなう。フラグシーケンスは同期用のビット列であり、(0111110)2というビット列である。そのため、フラグシーケンス以外では、6個以上1であるビットが連続すると、5個ごとに0であるビットを挿入している。この方法によって、任意のビット列を送ることができる。特徴は、つぎのとおり。
①ビットオリエンティドな伝送:任意のビットパターンの伝送が可能
②連続転送:ある範囲で応答なしに先送り転送が可能
③CRC:CRCの採用でデータ誤りの発見率が高い
④全二重通信:分岐回線でも全二重通信が可能
⑤フレーム転送:フレーム単位(ブロック)に伝送する形式
HDLCの各フレームの役割
F フラグシーケンス
フレームの開始と終了
A アドレスフィールド
二次局のアドレス
送信するときは送信先アドレス
応答するときは送信元のアドレス
C コントロールフィールド 制御部
要求や応答の区分
I データフィールド 情報部
送信データ
FCS フレームチェックシーケンス
CRCによる誤り検出符号
■伝送制御
○誤り制御
データを通信回線で伝送する場合、雑音などの影響で正しく送受信されないことがある。そこで、誤りが発生しているかどうかを検出したり、検出された誤りを訂正する方式のことを、誤り制御という。パリティチェック方式、CRCチェック方式、エコーチェック方式などがある
○回線制御
DCE(アナログ回線の時はモデム、デジタル回線の時はDSU)の監視制御をおこなう。また、交換回線においては、通信回線との接続・切断をおこなう。
○データリンク制御(伝送制御手順)
通信相手を識別して確認し、送信側と受信側の物理的な伝送路と、論理的なデータリンクの確立をおこなうことを、データリンク制御という。一般的には、データリンクの確立→データの伝送→データリンクの解放という手続きがある。
○同期制御
データの送受信をおこなうとき、送受信側で時間的な調整をおこない正しく送受信できるようにすることを、同期制御という。①調歩同期(非同期式:ビット同期、スターストップ同期)、②SYN同期方式(連続同期:キャラクタ同期、ベーシック手順)、③フラグ同期(ブロック同期、HDLC手順)がある。
ベーシック手順(基本形データ伝送制御手順)
SOH 情報メッセージのヘディング開始
STX テキストの開始及びヘディングの終了
EXT テキスト終了
EOT 伝送終了
ENQ 相手局からの応答要求
ACK 肯定応答
DLE これに続く伝送制御文字の意味を変更
NAK 否定応答
SYN 同期の維持
ETB 伝送ブロックの終了
■内外の標準機関や標準規格
○CERN European Particle Physics Laboratory
欧州素粒子物理学研究所。現在、インターネットの情報サービスの中心になっているWWWのしくみを開発したことで有名。
○COSE Common Open Software Environment
米国のヒューレットパッカード、IBM、サンマイクロシステムズ、ノベル、SCO、ユニベルが1993年3月に設立したUNIXアプリケーション環境の標準化推進グループ。米マイクロソフトが1993年に発表したWindowsNTに対抗するために、それまで2つに別れていたUNIXの標準団体を事実上統合した形になった。
○IEEE Institute of Electrical and Electronics Engineers
米国電気電子技術者協会。LANや各種インターフェースの規格制定などに大きな力を持つ。LAN規格の標準化を進めているIEEE802や今後普及が期待される高速インターフェースのIEEE1394などが有名。
○IPA Information technology Promotion Agency, Japan
情報処理振興事業団。「情報処理の促進に関する法律」に基づいて1970年10月に設立された政府関係機関(特別認可法人)。汎用プログラム言語の開発・普及促進などをおこなっている。
○ITU-TSS
ITUが1992年12月に組織の大幅な改変をし、標準化については、従来のCCITT(国際電信電話諮問委員会)から名称変更したITU-TSS (Telecommunication Standardization Sector, 電気通信標準化部門)でおこなわれることになった。また、電気通信標準化部門の勧告は、ITU-TSS勧告という形で1994年7月以降に出され、それ以前の勧告については、旧CCITT勧告と呼ぶことになっている。
○JUST Japanese Unified Standard for Telecommunication
ITU-TSS(旧CCITT)の勧告に基づき、郵政省の電気通信技術審議会で審議され、望ましい通信方式として告示されたもの。ファクシミリに関する奨励通信方式、コンピュータコミュニケーションネットワークの推奨通信方式、パーソナルコンピュータ通信装置の推奨通信方式などがある。
■CAE Computer Aided Engineering
コンピュータ支援エンジニアリング。製品開発に関わるエンジニアリングをコンピュータで支援するシステム。
■CALS Commerce At Light Speed
企画、開発、設計から、調達、製造、運用、保守に至る製品のライフサイクルに関する情報を統合データベースで一元管理し、取引情報や技術情報などを調達側と供給側の双方で共有することにより、製造業の活性化と国際競争力の強化を目的としたものである。
■CAM Computer Aided Manufacturing
コンピュータ支援製造。生産活動のための工程設計や作業設計、NC(数値制御)プログラムなど生産準備を支援するシステム。
■CORBA Common Object Request Broker Architecture
分散システム環境におけるオブジェクト同士がメッセージを交換するための共通仕様である。OMG(Object Management Group)が規定している。オブジェクト同士がメッセージを交換するための機能及びソフトウェアをORB(Object Request Broker)という。
■ISO 14000
ISOが制定した環境保全管理に関する国際規格群である。エネルギー消費や産業廃棄物のような、地球の環境悪化につながる問題を改善するための企業などの取り組みのガイドラインを決めている。環境管理システム、環境監査、エコラベル、環境影響評価、ライフサイクルアセスメント(Life-Cycle Assessment:LCA)、関連用語の定義などから構成される。ISO 9000シリーズの環境版であり、第三者機関による適合認定を制度化している。
■EJB Enterprise Java Beans
Javaで分散オブジェクト指向の業務アプリケーションを構築するための標準コンポーネントアーキテクチャである。EJBによって、異なるベンダのツールを使用し開発したコンポーネントを組み合わせ、分散アプリケーションを構築できる。さらにCORBAとの互換性も持つ。
■コンピュータ犯罪
○サラミ法
サラミ法は、多数の資源の中からわずかずつ資産を搾取する方法である。たとえば、銀行システムで、多くの口座の中から1口座につき1〜2円程度自分の作っておいた架空の口座に移すようなことである。
○トロイの木馬
トロイの木馬は、プログラムの中の本来の処理に影響を与えないように特殊な命令を隠しておき、本来の目的を果たさせながら無許可の機能を実行させるものである。コンピュータの全ファイルを破壊したり、パスワードを盗み出したりする。
○論理爆弾(ロジック爆弾)
論理爆弾は、トロイの木馬的手法の応用で、特定の条件(時間や状況、回数など)によってシステムを破壊するような処理をシステムに組み込んでおく。
○電子メール爆弾
電子メール爆弾は、特定の相手に対して大量あるいは容量の大きな電子メールを短時間に送りつけることである。メールシステムの障害につながる。
○スキャビンジング(ゴミ箱あさり)
スキャビンジングは、ジョブ実行後のコンピュータから情報を盗む行為である。ハードディスクやメモリに残った情報を盗む行為、ゴミとして捨てられた書類などから情報を盗む行為などである。
○スーバザップ法
スーバザップ法は、緊急事態に対処するためにシステムが用意しているあらゆる制限を回避できる機能を悪用する手口である。この機能を使うと、すべてのファイルの変更ができる。
○トラップドア(隠し戸)
トラップドアは、プログラムの開発途中に挿入したデバッグ命令などの取り忘れを悪用する。本来、最終段階では取り除かなければならないが、残されていると未承認のプログラムの挿入などに利用される。
■RAID Redundant Array of Inexpenseive Disks
○RAID0
ストライピングとも呼ばれ、複数のディスクにデータを特定サイズごとに書き込む方法である。単一の装置にアクセスが集中しないため、効率はよい。しかし、データに冗長性を持たせられないので、信頼性の向上は望めない。そのため、次第に使われなくなる傾向にある。
○RAID1
2代のハードディスクに同じデータを記録することでデータの安全性を高めた構成であり、ミラーリングである。
○RAID2
データを記録するハードディスク以外に、チェック用ディスクを用意し、障害防止だけでなくエラーの訂正もできるようにした構成である。
○RAID3
1台をエラー訂正のためのパリティ記録用とし、1台のディスクに障害が起こっても処理を続行できる構成である。ただし、RAID2とはチェック方式が異なっており、データの訂正はできない。
○RAID4
RAID3が、1ビットもしくは1バイト単位でデータを分割するのに対し、セクタ単位でデータを分割するのがRAID4である。
○RAID5
パリティ付きストライピングとも呼ばれ、各データブロックにパリティを持たせたものである。データとパリティが別々のディスクに書かれるため、1台のディスク障害は復旧可能である。現在、多くのシステムに使われている。
■モジュールの独立性
○モジュールの強度
モジュールの内部の関連性が大きいほど、モジュールの独立性は高くなる。
暗号的強度
プログラムを単純に分割したり、重複する機能をまとめたもの。モジュール内の機能間には特別の関係はない。
論理的強度
複数の機能を持ったモジュールで、パラメタの条件などで処理を選択する。
時間的強度
特定の時期に実行するモジュールをまとめ、複数の機能を逐次的に実行する。初期設定モジュールなどが該当する。
手順的強度
複数の逐次的な機能を実行するモジュールで、モジュール内の関連性が強く、各機能を単独で実行できない。
連絡的強度
複数の逐次的な機能を実行する点は手順的強度と同じであるが、機能間でデータの受け渡しがある。
情報的強度
同一データ構造を取り扱う複数の機能を一つにまとめ、機能ごとに入り口点と出口点を持ち、機能ごとに呼び出せる。
機能的強度
一つの機能からなるモジュールで、命令はすべて一つの機能を実現するためにあり強い関連性を持つ。
○モジュールの結合度
モジュール間の関連性が小さいほど、モジュールの独立性は高くなる。
データ結合
処理に必要なデータだけを受け渡す。呼び出し側も呼ばれる側も機能的な関係はない。
スタンプ結合
データの構造体を引数として受け渡す。呼ばれたモジュールでは、構造体の一部を使用する。
制御結合
機能コードを引数としてサブプログラムに渡し、サブプログラムの実行に影響を与える。
外部結合
外部宣言したデータを共有する。共通結合との違いは、必要なデータのみ外部宣言することである。
共通結合
共通領域に定義したデータを共有する。FORTRANのCOMMON文などが該当する。
内容結合
あるモジュールが、直接他のモジュールを参照、変更する。