高度午前対策 直前10点アップ講座(iTAC講義ノート(10/9))

最終更新日 2006/05/02
webmaster@tomnetwork.net

Tomのネットワーク勉強ノート
Homeに戻る
(Tomのネットワーク勉強ノート) 
サイトマップ
iTAC テクニカルエンジニア
(ネットワーク)塾講義ノート 
過去問題(午後)
  テクニカルエンジニア (ネットワーク) 
  情報セキュリティ アドミニストレータ 
  テクニカルエンジニア
(情報セキュリティ)(午前・午後)
  基本情報技術者(午前・午後)
ネットワーク関連試験対策ノート
情報セキュリティ関連験対策ノート
情報処理用語辞書
自宅で出来るネットワーク簡易実習 
私の勉強法 
情報処理試験勉強に役立った本たち
更新履歴 
リンク集  
プロフィール 
国内旅行の下調べ
---Tomのトラベルオンラインリンク
(新幹線、時刻表、金券ショップ、
格安航空券など)
   
  mail
ショッピング

    Powered By 楽天市場

 

スポンサー:
Yahoo!トラベル
ホテルリステル猪苗代
株式会社東栄住宅
競馬サーチ.com
ニフティ株式会社
ホームトレイン
有限会社ルーティ
キーマンズネット
楽天仕事市場 infoseek キャリア
e-learnインターネット通信講座
アークホテルネット
ブルックス
モビット

 他

 

Tomのネットワーク勉強ノート
 iTAC テクニカルエンジニア(ネットワーク)塾講義ノート 
   高度午前対策 直前10点アップ講座

iTAC塾講義ノート

コース名

テクニカルエンジニア(ネットワーク)塾Aコース(名古屋)

講師

mitsu先生

日時

2000年10月9日

9:30〜19:00

場所

名古屋市短歌会館

内容

ウイニングあいたっく
(高度午前対策 直前10点アップ講座)

(概要)

今回の講義は、

『ウイニングあいたっく (高度午前対策 直前10点アップ講座)』

として、午前分野の要点を中心に講義がありました。

以下にその内容をまとめます。

※過去3年(平成10年〜12年)の1種に出題された問題については、カリキュラムの横に、印をつけておきました。

例:(H12-1K-21・・・平成12年 1種 問21)


1.コンピュータの科学基礎

論理式

2進数

確率

2の補数

情報落ちとケタ落ち

2.コンピュータアーキテクチャ

デュアルシステムとデュプレックスシステム

マルチプロセッサ

パイプライン

スーパースカラ

パイプラインハザード

キャッシュメモリ

3.通信ネットワーク(テクニカルエンジニア(ネットワーク)サマースクールin大阪(テクニカルエンジニア(ネットワーク)午前対策) 8/17開催 参照)

4.基本ソフトウエア

性能評価尺度

プロセスの状態遷移

プロセスとスレッド

タスクスケジューリング

セマフォ

仮想記憶装置

フラグメンテーション

プログラム制御とシステムコール

5.データベース

ANSI/SPARCの3層スキーマ論

データベース構造のモデル

データベース言語

データベースの管理機能

排他制御(ロック)

トランザクション

障害対策

2相コミット

DBコピー(レプリケーション)

テーブルについて

正規化

6.ソフトウエア工学

プロセスモデル

RAD (Rapid Application Development)ツール

コストモデル

モデル図

モジュール設計

DOA(データ中心アプローチ)

オブジェクト指向

プログラムのテスト

ソフトウエアの品質管理

その他ソフトウエア関連でよく出る変な問題

7.システム構成技術


1.コンピュータの科学基礎

☆ 論理式(H11-1K-18)

        AND,OR,NOTは簡単に書けると思いますが、

・EOR 排他的論理和    AとBが同じなら0、異なったら1(H11-1K-3)

NAND                        NOT(A AND B)

NOR                          NOT(A OR B)

について、ちゃんと答えられるようにしておきましょう。

EOR

A

B

A EOR B

0

0

0

0

1

1

1

0

1

1

1

0

NAND

A

B

A NAND B

0

0

1

0

1

1

1

0

1

1

1

0

NOR

A

B

A NOR B

0

0

1

0

1

0

1

0

0

1

1

0

式の展開

式の展開でよく出てきるのが、

NOT( A AND B) → (NOT A) OR (NOT B)

NOT( A OR B) → (NOT A) AND (NOT B)

です。

覚えられなかったら図に書いてみましょう。

______
A OR B

_

_

NOT( A OR B) = (NOT A) AND (NOT B)

ですね

NOT(A AND NOT B)

この場合は実際に書いてみましょう。 地道にやってみて下さい。

 

 

 

 

NOT(A AND NOT B)

 

 

 

A AND NOT B

 

 

 

NOT B

 

 

A

B

 

 

 

0

0

1

0

1

0

1

0

0

1

1

0

1

1

0

1

1

0

0

1

あと、テクニックとして覚えておいた方がいいのが、

A AND (B OR C)

→ (A AND B) OR (A AND C)

ANDを×、ORを+と考えると、A(B+C)=AB+AC ピンときますね。

同じようにこれも成り立ちます。

A OR (B AND C)

→ (A OR B) AND (A OR C)

☆ 2進数

整数は省略します。

小数についてたまに出題されますのでやってみましょう。

10進数

2進数

0.5

0.1

0.375

0.011

これを求める一つの方法は、、、

0.

 

|

|

|

|

|

 

1/2
=0.5

|
|

|
|

|
|

|
|

 

1/(2^2)
=0.25

|
|

|
|

|
|

 

1/(2^3)
=0.125

|
|

|
|

 

1/(2^4)
=0.0625

|
|

 

1/(2^5)
=0.03125

これを覚えてしまって、

0.5は1/2だなぁ・・・0.1(2)

0.375は0.25+0.125だなぁ・・・0.011(2)

とやります。

ちゃんとした方法は、2倍、2倍・・・していきます。

0.375

で、どこを見るかというと、、、

×

 2

掛けたあとの整数部

-

------

 

0.750

・・・・・・

0

×

2

ここに1が出てきたら

-

------

掛け算には使わない

1.500

・・・・・・

1

×

2

-

------

1.000

・・・・・・

1

答えがちょうど1になったら終わりです。

0.011

これに関連してよくあるのが、

有限10進数小数 を 2進小数 にする場合と、その逆の有限2進小数を10進数小数にする場合についてです。
(H12-1K-3,H10-1K-2)

有限10進数小数 を 2進小数 にするときは、

無限小数

}2つの場合があります。

有限小数

有限2進小数を10進数小数にするときは、

必ず、有限の10進数小数になります。

☆ 確率

・平成11年のシステム監査の問題

白い玉3個、黒い玉4個あります。

連続して3個取り出します。

このア〜エの中で、確率の一番ひくのはどれでしょう。

 

1回目

2回目

3回目

地道にやりましょう。

まず、最初に白を取り出す確率は3/7、黒を取り出す確率は4/7です。

最初に白を取り出した場合、次にさらに白を取り出す確率は2/6、黒を取り出す確率は4/6です。

アの場合は、4/7 × 3/6 × 2/5 = 0.114

今回の場合、ア〜エ全部において、絶対分母は7×6×5になりますので、分子だけ考えればいいでしょう。

 

確率の分子

4×3×2=24

4×3×3=36

4×3×3=36

3×4×3=36

答えは、アです。

・隔たりのあるサイコロ

サイコロAは2/5、サイコロBは3/8の確率で1の目が出ます。

袋に入れてサイコロを1つ取り出し、振ったら1の目が出ました。

Aのサイコロを取り出した確率は?

確率の基本は

              対象の数
確率 = -----------------
              全体の事象

暗黙のうちにこういうことを考えています。

今回は、

              Aから1が出る場合
確率 = ---------------------
              1が出る場合

A,Bを見ると、分母に5、8があります。

最小公倍数は、40ですが、40×2=80回サイコロを振ったと考えましょう。

Aのサイコロを40回、Bのサイコロを40回振りました。

Aのサイコロで、1の目が出るのは ・・・ 16回

Bのサイコロで、1の目が出るのは ・・・ 15回

ってことは、両方で、1の目が出るのは  31回、そのうちAは16回。

確率は16/31になります。

公式で考えると、

2/5

16

16

-------------------

=

--------

=

-----

1/2×2/5 + 1/2×3/8 

16+15

31

☆ 2の補数(H11-1K-18)

求め方と、理由(なぜ2の補数が必要なのか)を押さえておきましょう。

求め方・・・ビットを反転して +1

理由(なぜ2の補数が必要なのか) ・・・ 減算を加算として扱えるから

です。

やってみましょう。

10進数 4-3=1

  4-3                 
=4+(-3)
=0100 + 1101 ← -3 の2の補数・・・ 0011を反転して1100、1足して、1101。
=10001
(先頭ビット(キャリー)は無視)

=0001 ・・・ 1になります。

☆ 情報落ちとケタ落ち(H11-1K-18)

情報落ち・・・絶対値が大きく異なる正の数の足し算

 12345
+      0.00037261
------------------
  12345.00037261

となるんですが、コンピュータの有効ケタが5ケタの場合は、0.00037261が消えてしまいます。

ケタ落ち・・・絶対値がほぼ等しい正の数の引き算。

  12345
 -12344
---------
         1

有効ケタが5ケタから1ケタになりました。

情報落ちを起こさないようにするためには、

小さい順に並べて、小さい方から順に加えます。


2.コンピュータアーキテクチャ

☆ デュアルシステムとデュプレックスシステム

 

 

関連して、スタンバイ系
も覚えましょう。
(H12-1K-79)
(H11-1K-77)
(H10-1K-79)

デュアルシステム

同じ(オンライン)処理を2つのCPUで同時に実行する

ホットスタンバイ

デュプレックス

CPUは2つあるが、
1つはオンライン系として使用し、1個はバッチ系として使用する。

ウォームスタンバイ
コールドスタンバイ

☆ マルチプロセッサ(密結合と疎結合)(H11-1K-18)(H10-1K-77)

 

メモリ

OS

密結合

共有メモリ

単一のOS

疎結合

各プロセッサごとのメモリ

異なるOSも可

相対的に言うと、密結合は

・プロセッサの数に上限があります。(メモリなどを共有しているため)

・性能は、CPUの数に比例しません(一般的に√(CPU数)倍)

・キーワードは競合⇒ボトルネック

☆ RISC と CISC は省略

☆ パイプライン(H11-1K-11)

キーワードは、”ステージ””並列に動作”です。

☆ パイプラインを使う時と、使わない時ではどのくらい速度は違いますか? ☆

という問題が出されます。

(過去問より)

・各命令が5サイクル

・ストールなしで実行

・20命令で実行

で、パイプライン無しの時と比べて時間は?

[1]

[2]

[3]

[4]

[5]

[1]

[2]

[3]

[4]

[5]

・・・

・・・

・・・

[1]

[2]

[3]

[4]

[5]

で、完了。

|←ここから、勘定して、         ここまで→|

上のような絵で考えてみることをお勧めします。

・1回目は5単位。

・2回目は1単位足して、6単位。

こんな感じで、1ずらすのは20-1=19回。

つまり、5+1×19=24単位。

パイプラインを使わなかったら、

5×20=100単位。

24%に短縮されます。

この問題は出来るようにしておきましょう。

☆ スーパースカラ(H11-1K-18)

処理UNITが複数あります。

[1]

[2]

[3]

[4]

[5]

[1]

[2]

[3]

[4]

[5]

複数あるから、重ねられます。

☆ パイプラインハザード

パイプラインに関連して・・・

パイプラインハザード”という言葉があります。

きれいにプログラムが流れようとするけど、流れない状態のことを言います。

 +-

データハザード

・・・以前の命令の結果を使う

--

-+-

制御ハザード

・・・Jump命令

 +-

構造的ハザード

・・・リソースの競合

 

命令

命令の例

[1]

取り出し

[2]

解釈

[3]

・・・

[4]

・・・

[5]

・・・

[1](命令を取り出し)が終わったら、[2](解釈)してる間に次の人が[1](取り出せる)じゃない?

というのが、パイプラインの考えでした。

☆ データハザード〜以前の命令の結果〜

例えば、アセンブラの命令

ADD R1,R2、R3 ・・・ R2+R3をして、R1に入れる

SUB R4,R1、R5 ・・・ R1-R5をして、R4に入れる

を実行するとします。

ADD命令でR1にR2+R3の結果を入れるのは、[1]〜[5]の一番最後です。

逆に、SUB命令でR1を取り出すのは、ADD命令でR1に計算結果を入れる前です。

これで、うまくいかなければ、エラーが出ます。

☆ 制御ハザード〜Jump命令〜

例えば、3の命令で、8にジャンプするとしましょう。

3を読み終わって、パイプラインで次に4、5と読んでいるのに、

あとから8にジャンプすることが分かったら、4、5を読んだことが、

無駄になるし、流れが乱れてしまいます。

このように、パイプラインが止まることを、”パイプラインストール”とか、”インターロック”とか言います。

用語として覚えておいて下さい。

 

☆ キャッシュメモリ(キーワード集)(H11-1K-18)(H10-1K-16)

・NFP

・ヒット率

・ライトスルー/ライトバック

・セットアソシエイティブ

キャッシュメモリ1に対して、主メモリがあるセットで対応。

試験に良く出るのがこれ。

・フルアソシエイティブ

キャッシュメモリ1に対して、主メモリはどこを使っても良い。

若干スピードが遅い。

・ダイレクトアソシエイティブ

キャッシュメモリ1に対して、主メモリ1で対応。

柔軟性がないぶん、速い。

・メモリインタリーブ・・・主記憶をバンクに分ける(バンクといえば、インタリーブ!)

・DMA

CPUを介さずに、 

主記憶⇔入出力装置 

をアクセスすること。

・RAID0〜5(H12-1K-17)(H10-1K-18)

RAID 0

ストライピング

RAID 1

二重化

RAID 2

ハミングコード

}ほとんど使われていない

RAID 3

パリティ(バイト)

RAID 4

パリティ(ブロック)

RAID 5

パリティ+ストライピング

RAID 0(ストライピング)

ストライプ・・・帯です。

 

ディスク
A

ディスク
B

ディスク
C

 

『 

『 

『 

1

2

3

4

5

6

7

8

9

 

 』

 』

 』

バスに比べて、ディスクって遅いですよね?

1を読んでる間に、2を読みにいけば、少しでも早くなるでしょ?

RAIDというのは、冗長度を上げる(信頼性を上げる)ことです。

ストライプだけでは、例えば、”5”が無くなれば、全部だめになってしまいます。

→冗長性がありません。

RAID 2(ハミングコード)

”(7,4)ハミングコード”という書き方をします。

・4ビットのデータ、3ビットの冗長ビットがあります。

・7ビットでデータを保持します。

・2ビットの誤り検出、1ビットの誤り自動修正が出来ます。

RAID 3,4(パリティ)

ディスク
A

ディスク
B

ディスク
C

データ管理

データ管理

パリティ管理

このように、パリティ管理専用のディスクがあります。

この場合、ディスクCはパリティなので、アクセスが集中します。

RAID 5(パリティ+ストライピング)(H11-1K-16)

 

ディスク
A

ディスク
B

ディスク
C

 

『 

『 

『 

1

パリティ

2

パリティ

3

4

5

6

パリティ

 

 』

 』

 』

RAID 3、4の対策がRAID 5です。

それぞれに、パリティが散りばめられています。

RAIDのメインの目的は冗長性です。

RAID 0は冗長性がありません。目的は性能UPです。


4.基本ソフトウエア

☆ 性能評価尺度

この違いを言えるようにしておきましょう。

用語

説明

ターンアラウンドタイム

仕事を依頼してから、結果を得られるまでの時間(バッチ処理のイメージ)

レスポンスタイム
(応答時間)

『送信』キーを押下して、画面が次の1行目が表示されるまでの時間
(オンライン処理のイメージ)

スループット

一定時間に行える仕事量

☆ プロセスの状態遷移(H11-1K-18)

”○”の中の状態と矢印の意味が書けるようにしておきましょう。

『@のイベント(Run→Ready)が発生する理由を2つ書きなさい。』という問題が出されたら?

  ・タイムスライスを使い切った(自分の持ち時間で終わらなかった)

  ・自分より優先順位の高いタスクがReady状態になった。

これに関連して、覚えておいた方がいいのが、

  『最優先のタスクは「    」状態にとどまることが無い』です。

「  」には何が入るでしょう?

  一瞬「Ready」状態になりますが、すぐにRun状態になります。

☆ プロセスとスレッド(H11-1K-18)

プロセスもスレッドもプログラムを実行する単位です。

 

プロセス

スレッド
(軽量プロセス)

メモリ

共有

 

スレッドを切り替える
オーバヘッドが大きい


 ↓

同一メモリなら、それほど
オーバヘッドは大きくない

 

 

マルチスレッドは一般的
になっています。

☆ タスクスケジューリング(H11-1K-18)(H10-1K-23,24)(H10-1K-78)

タスクスケジューリングとは、たくさんの仕事をどういう風にやるか?です。

スケジュール名

説明

ラウンドロビン

一定時間おきに、チェンジ

到着順

タスクの到着順(世の中一般)

優先順

タスクに付けられた優先順

イベントドリブン

イベント(マウス押下、外線から着信)がトリガ(引き金)になってタスクが動く

多重待ち行列方式

例えば、 優先度 大、中、小に分けて、それぞれ待ち行列を作りましょうってイメージ

 

A

CPU

I/O

CPU

I/O

B

 CPU 

 I/O 

こういう過去問がよく出題されています。やっておきましょう。(H12-1K-21)(H11-1K-24)

以下のことに気をつけましょう。

☆優先順がついています。

☆I/Oについては、専用、共有の場合があります。

☆何を問われているのか?

☆図は丁寧に書きましょう。

☆ セマフォ

キーワードは排他制御

P操作・・・資源を使う。

V操作・・・資源を戻す。

電話ボックスをイメージしてください。だれかが使っていれば使えません。

(共有)

A

[電話BOX]

B

係数セマフォというメモリがあって、P操作で-1、V操作で+1します。

それで、係数セマフォの値が0になると、資源が使えないことを意味します。

☆ 仮想記憶装置

主記憶装置 ≪ 補助記憶装置 なので、補助記憶装置を主記憶装置に見立てて使いましょう!ということです。

補助記憶装置から主記憶装置にロードする単位は3つありました。

単位

サイズ

 

プログラム単位

可変

ロールイン、ロールアウト

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

可変

 

ページ単位

固定

ページイン、ページアウト

ページイン、ページアウトを合わせて、”ページング”といいます。

そのページングにCPUの能力が削がれて、処理能力が上がらないことを”スラッシング”と言います。

主記憶にページが無いことを、”ページフォールト”と言います。無いから、ページインします。

一般論として、サイズの大きさは

プログラム > セグメント > ページ(固定)

です。主記憶にロードしてくる時に、空きが無ければページアウトします。

そのアルゴリズムが

FIFO・・・先入れ先出し

LRU・・・最も遅くに使用したページをページアウトします。

です。この手の問題が出題されても、図はていねいに書くことを心がけましょう。

このバッファ(メモリ)のやりとりについて。

オーバーヘッドは可変長の方が、固定長(ページ)よりも大きくなります。

☆ フラグメンテーション(H11-1K-18)

可変長のときに使います。

すき間

///////

\\\\\\\
\\\\\\\

すき間

///////

図 メモリ分布

これらのすき間を集めて(カーベジコレクション)、メモリを確保します。

ロードされているプログラムの場所を変えることを”再配置”といいました。

☆ プログラム制御とシステムコール

再配置といえば、定番の『再○○』4つを復習しましょう。

再配置

リロケータブル

ロードされているプログラムの場所を変えること

再入

リエントラント

実行中に別タスクが同一プログラムを実行

再使用

リユーザブル

実行終了後、もう一度使用する

再帰

リカーシブル

自分自身をCALL


5.データベース

☆ ANSI/SPARCの3層スキーマ論(H11-1K-18)

論理データモデル
(それだけの相手
に見せますか?)

抽象化

抽象世界

----→

概念データモデル
(これは、架空のモデルです)

物理データモデル
(コンピュータに格納する
方法は?)

これを、ドキュメント化することをスキーマといいます。

ANSI・SPARCの
3層スキーマ

論理データモデル

・・・外部スキーマ
     (Viewはこれです)
   プログラムを組んだりします。
   人が使います。

概念データモデル

・・・概念スキーマ
     (DBMSに依存しません)

物理データモデル

・・・内部スキーマ

それぞれのスキーマは互いに独立しあっています。
(コンピュータに格納する方法が変わっても、Viewは変わらないし、その逆もない。)

これをそれぞれ、論理データ独立、物理データ独立と言います。

☆ データベース構造のモデル

データ構造モデルとして、次の3つとその特徴を覚えておきましょう。

階層モデル

親子関係

1:n

ネットワークモデル

n:n

関係モデル

 

 

 

☆ データベース言語

SQLの利用形態

SQLはデータ定義文(DDL)データ操作文(DML)で構成される。

データ操作文(DML)(H11-1K-45)(H10-1K-46)

構文

意味

内容

別の言い方

selection

選択

行を選ぶ

タプル、row

projection

射影

列を選ぶ

アトリビュート、カラム

join

結合

 

 

操作の順番として、

@自然結合(join)

AB 選択(selection)、射影(projection)

で行います。

データ定義文(DDL)

これは、DDLの言葉だけ覚えておきましょう。

プログラム方式

埋め込み型言語・・・親言語(ホスト)がいて、その中にモジュールを埋め込む。
            そして、モジュールごと呼ぶ(CALL ○○)

独立言語 ・・・ データベース独自が持っている言語(NAFRAL、T-SQL、PL/SQL)

☆ データベースの管理機能

データベースには次の管理機能を持っています。

再構成・・・構成を変更する

再編成・・・入出力を繰り返すうちに、データの物理的な並び方が乱れてきます。

      すると、効率が悪くなるので、きれいに並びなおしてあげます。(H12-1K-48)

☆ 排他制御(ロック)

キーワードは”ロックする”です。

占有ロックと共有ロックの関係はこんなんでした。(H8-1K-54)

 

共有

占有

共有

×

占有

×

×

ロックの単位(これを粒度といいます)は、

これも覚えておきましょう

ロックの単位

粒度

同時実行性

オーバヘッド

排他待ち

DB全体

テーブル単位





ページ単位

レコード単位

デッドロック(H12-1K-26)(H11-1K-21)(H11-1K-18)

X

Y

資源a

|

×

|

資源b

タスクXが資源aを確保し、タスクYが資源bを確保した後に、
タスクYが資源bを要求し、タスクYが資源bを要求すると、デッドロックが発生します。

対策としては、

ロックする順序を決めておきましょう。 (Xの後にYをロックするなど。)

デッドロックが起きてしまったら、DBMSが適切に対処します(一方をキャンセルします)

2相ロック

排他制御のところで、時々”2相ロック”という言葉が出てきます。

2相ロックとは、

・.データにアクセスする前にロックしなければならない。
・.トランザクション内で1度でもアンロック操作を行った場合、それ以降ロック操作は行わない。
  (アンロックのみ)

です。

2相というのは、ロック獲得相と、アンロック相があるということです。

(2相コミットとは別の話です)

☆ トランザクション

1つの不可分な処理のかたまり。

例えば、

A・・・出荷する。

B・・・出荷した分、在庫を減らす。

このA,Bを合わせて、トランザクションといいます。

A,B,CのJOBがあって、A、Bは実行、Cは未実行・・・これはあってはなりません。

トランザクションはALL OR NOTHING です。

これをトランザクションの原子性(Atomicity)と言います。

トランザクションの性質として、ACIDを言う言葉がありました。(H11-1K-18)

A

Atomicity

原子性

All or Nothing。 これ以上分けられないこと

C

Concurrency

一貫性、同時性

矛盾の無いこと

I

Isolation

独立性、隔離性

どんな順序でも、同じ結果になること

D

Durability

耐久性

完結したトランザクションはDB障害で失われないこと

これでよく出てくるのが(A