学習メモ保存失敗

データベースとネットワークをすこしも勉強したけど、ポメラの保存失敗によりファイルが失われた。なんども保存するようにしてるんだけど、一回ミスするとファイルがロストするのは欠陥だよなあ。
毎回別名で保存するとか??
ブログ連携とか考えると処理が面倒くさいことになるわけだけど。(タイトル比較して、一番最新のファイルを送信するとかかな)名前を付けて保存のショートカットキーはないのでメニューから呼び出さないとならず面倒…。
ああもう。今日は疲れたから問題集は終了しよう。

2/10夜

ファミレスにて。
ここ数日はブログ更新してなかったけど、さぼってたというわけじゃなくて、暗記メモを作成してた。
問題集がほったらかしになってたので今からやります。

18:30〜21:30

妙に頭に入ってる感じがしない問題ばかり。その割に正当率は7割くらい。でもやってて自信なくなってくるからなんか嫌だな。

近くの席に政治談義じじーちゃんが座っててうるさかった。国民みんなバカだから投票なんてバカのためのシステム、おれのためのシステムじゃないとかなんとか。どうでもいいけど声でけーですよ、耳栓装着…。
高校生くらいの家族連れで父も母も子供3人とも声でかい世帯がいてうるさかったけどほほえましかった。映像技術について話してた。地デジとかBDとか映画とか自分はどうも興味なくて知識が付かない話。
やっぱ興味ない分野は驚くほど知識がつかない。自分にはコンピュータ構成とかネットワークとか。このあたりは大学のときも単位を捨ててきたし。反面アルゴリズムとか数学的なところとかはやってて面白いから向いてるんだと思う。正直こういう自分の特性って仕事に役立ってる気がしないのが残念でならない。

今日はこのへんで終了。明日は祝日だな。まあやることないし、図書館で勉強とかできたらいいけど。このところ暇人すぎて勉強はかどっている。たぶん3月はやることなくなるな。勉強する習慣を絶やしたくないから別の勉強でもするかな。なんかアイデアが浮かんだらプログラムとか作って遊んでもいいかな。何も思いつかなかったら日本が沈没してもいいように英語でも勉強しようか。

勉強メモ:暗記ノートにかかなければ。

コンピュータ構成要素
  • バイポーラとCMOSの比較
  • パイプライン制御等を図示
  • SRAMDRAM
  • DMA:Direct Memory Access。専用の制御回路を用いてCPUを介さずに入出力装置と主記憶間でデータ転送を行う。

パイプライン処理

アウトオブオーダ実行 依存関係のない命令をプログラムの順序に関係なく順不同で実行
遅延分岐 分岐処理にて、どちらに分岐しても必ず実行する命令を先に実行しておく
投機実行 分岐先を先読みして実行(ギャンブル実行)

誤り訂正・検出

CRC 巡回冗長検査。CRC生成多項式を用いて謝り検出を行う
ECC Error Correctiong Code=誤り訂正コード。ハミング符号など
チェックサム 誤り検出のためにデータの和を定数で譲与をとって付与
パリティ 誤り検出のために付与する冗長ビット

バス規格

ATA 磁気ディスクなどのストレージ向けのIDEインタフェース
ISA 16ビット幅の拡張バス
PCI アドレス幅32ビット、データパス幅32/64ビット。標準的なパソコンのバス規格。
CardBus PCカードスロットの規格。PCIに接続する32ビット幅のバス
SCSI 数珠つなぎに接続。イニシエータ〜機器1〜…〜ターミネータ
GPIB コンピュータと計測機器・周辺装置を接続。バス上の各機器にコントローラ、トーカ、リスナのいずれかの機能を持たせる

データ転送方式

シリアル方式 1本の信号線を使って1ビットずつデータを転送
パラレル方式 複数の信号線を使って同時に複数ビットを転送
ストリーミング方式 確認信号を待たずに次々とデータを受信しながら同時に処理を行う
ハンドシェーク方式 受信側が受信バッファがいっぱいになった、受信データの処理が間に合わない場合などに、データ送信速度を調節する(フロー制御)

入出力制御方式

DMA制御方式 専用の制御回路を用いてCPUを介さずに入出力装置と主記憶間でデータ転送を行う
チャネル制御方式 チャネル(入出力専用のハードウェア)がデータ転送制御用のプログラムを実行して入出力装置を制御
プログラム制御方式 主記憶から取り出した命令にしたがって、主記憶と主記憶装置間のデータ転送を行う

ディスプレイ

CRT 電子管の中で電子ビームを照射して蛍光体を発光させる
TFT TFT液晶。画素ドットごとに薄膜トランジスタで制御
有機EL 有機化合物の発光を利用
プラズマディスプレイパネル 2枚のガラス板の間にネオンガスを封入し、電流を通してガス放電を行う際に発生する光を利用

ここから下は問題集ではシステム構成要素(コンピュータ構成要素と区別しないけど)

分散処理

垂直機能分散 プロセッサ間に改装または従属関係がある
水平負荷分散 同じ処理を複数のプロセッサで実行
水平機能分散 アプリケーションごとに実行するプロセッサを割り当てる
クラスタリング 信頼性向上のために、複数のコンピュータがディスクを共有する構成

Web関連

SOAP XMLエンベロープ(封筒)と呼ばれるヘッダ情報がついたメッセージをやりとりする
UDDI Webサービスを検索・照会する
WSCI XMLをベースとしたWebサービスインタフェース用言語
WSDL XMLをベースとしたWebサービス記述用言語

ネットワークストレージ

NAS Network Attached Storage ネットワークに接続したディスク装置。ネットワーク上の共有ディスクとして空き容量を有効に利用。ファイル単位の共有が可能
SAN Storage Area Network 専用のネットワークを用いてPCとディスク装置を直接接続する。LANより高速、バックアップも対応。ファイル単位の共有はできない

P2P

フラッディング 送信可能なすべての端末にパケットを伝幡させること。P2Pでは探索クエリに使用

ベンチマーク

TPC トランザクションシステムの性能評価
SPEC CPU性能評価(他に、Dhrystone、Whetstone、Linpackなど)
ベンチマークプログラム 1.システム設計においてアプリケーションプログラムのモデルとなるもの。2.ユーザの立場ではコンピュータ性能をはかるモデル

ハードウェアの故障率について

ハードウェアの時間経過ごとの故障率 初期故障期間→偶発故障期間→磨耗故障期間でバスタブ型の曲線になる

故障率

故障率はMTBFの逆数。
故障率が小さい場合、直列に接続した場合、全体の故障率は故障率の和に等しい。
全体のMTBFを計算する場合、全体の故障率の逆数をとる。

スループット

システムが単位時間内に処理できるジョブ数をスループットという。
スプーリングでは、データ入出力の前にディスク上にデータを蓄えておく方式。CPU処理と低速な入出力処理を同時処理できるのでスループット向上につながる。

2/8 昼

PERT

費用勾配 特急で仕事を仕上げる場合に、「余分にかかるお金/短縮できる時間」で特急効果の傾きを求める。

2点を通る一次直線の傾きa=(y1-y0)/(x1-x0) と算出は同じ。勾配というとわかりにくいので傾きとして認識する。
当然ながら費用勾配の低い区間を急ぐのがよい。

雑メモ

土日は図書館が休みだったので家で勉強しようと思ったんだけど無理だった…。
朝も起きれないし、ここ3日くらいさぼり気味になってきたな。いかんいかん。
今週くらいに問題集終わらせて来週くらいから延々と午後過去問とかかな。

4.システム構成要素

システム構成と方式

集中処理方式と分散処理方式
  • 集中処理方式
    • センタのコンピュータなどにデータを1カ所に集めてすべての業務を処理
  • 分散処理方式
    • 複数のコンピュータで負荷を分散
  • 負荷分散
    • 1つのアプリケーションの負荷を複数のプロセッサで分担
  • 機能分散
    • アプリケーションごとに機能のプロセッサに分担する
クライアントサーバ方式
  • クライアントサーバ方式
  • 3層クライアントサーバシステム
    • データベース層(DBサーバ)
    • ファンクション層(APサーバ)
    • プレゼンテーション層(クライアントのUI)

DBサーバとAPサーバは兼ねることもある。

並列コンピュータシステム
  • グリッドコンピューティング
    • ネットワーク上の複数のコンピュータで並列処理
  • スーパーコンピュータ
    • 多くのベクトルプロセッサを集めた計算機

システムの構成方式

  • デュプレックスシステム
    • 2系統のシステムで、一方のみ常に運用
    • もう一方は待機系で、故障時に切り替える
  • デュアルシステム
    • 2系統のシステムで、両方で常に同じ処理を行う。
    • 相互に処理結果を照合する
    • 障害時には故障した方を切り離す
  • ロードシェアシステム
    • 負荷を複数のCPUに振り分けして負荷分散
  • タンデムシステム
    • CPUの前後にFEP(FrontEndProcessor)とBEP(BackEndProcessor)を直列に接続

RAID

容量は、複数のディスクの合計サイズをs、ディスク台数をnとして計算。

RAID 0 データを複数のディスクに分散して記録(ストライピング) 読み書き高速化 容量はs
RAID 1 2つのディスクで全く同じデータを記録(ミラーリング 信頼性高める 容量はs/2
RAID 0+1 ストライピング+ミラーリング 信頼性高め、読み書き高速化 容量はs/2
RAID 2 訂正符号(ハミング符号)付きデータを分散させて記録 耐障害性は最高だが、ハミング符号の計算コスト大 5台の場合、容量はs×2/5
RAID 3 パリティを訂正符号として専用のディスクに割り当て。データは分散されずに各ディスクに保存 ハミング符号より計算量小、RAID2より容量の無駄が少ない 容量はs×(n−1)/n
RAID 4 パリティを専用のディスクに割り当て。データ用ディスクにデータを分散して記録する 分散して記録するためRAID3より高速 容量はs×(n−1)/n
RAID 5 パリティもデータも各ディスクに分散 高信頼性(1台故障しても他ディスクから復旧可能) 容量はs×(n−1)/n

フォールトトレラントシステム

  • フォールトトレラント(fault tolerant)
    • 障害に耐える(被害を最小限に押さえる)
    • 何らかの障害が発生しても、所定の処理を続行できる
  • フォールトアボイダンス(fault avoidance)
    • 障害を回避する
    • システムを構成する機器・部品に高信頼性のものを採用する、故障しにくい設計・構造を導入
    • 使用者の教育も含まれる
  • フェールセーフ(fail safe)
    • 安全にシステム停止させる
  • フェールソフト(fail soft)
    • 一部で障害が発生した場合、機能低下を許容し、障害箇所を切り離すなどして処理を続行させる
  • フールプルーフ(foolproof)
    • 馬鹿よけ
    • 操作ミスが発生しても障害を防止する(エラー処理など)
  • フォールバック(fallback)
    • ある機能で不具合が発生した場合、その機能を切り離して質を落としても全体の機能を提供する仕組み
  • ホットスタンバイ
    • 同じシステムを待機系に並行稼働させ、障害時に即座に待機系に切り替え
  • コールドスタンバイ
    • 障害発生したら待機系システムを起動しそちらに切り替える

システムの信頼性評価

  • 直列接続のシステム
    • システムを構成する装置がすべて稼働しなければシステム全体は稼働しない
  • 並列接続のシステム
    • 条件により稼働率がことなるので注意。
    • システムを構成する装置のうち1つでも稼働していればOKとするシステム
    • すべての装置が稼働していないとNG(直列と同じ)
  • 3並列システムの場合(各システムの稼働率をAとする)
    • ある1台が稼働しているときの稼働率
      • _{3}C_{1} \times A(1-A)^2
    • ある2台が稼働しているときの稼働率
      • _{3}C_{2} \times A^2(1-A)
    • 3台とも稼働しているときの稼働率
      • A^3

故障率

  • 1時間あたりにどれくらいの割合で故障が起こるか
  • MTBFの逆数で求められる。
  • 「1ー稼働率」でないことに注意。

システムの性能評価

  • アムダールの法則
    • システムのごくわずかな部分を大きく改善するよりも、全体に占める割合の大きい部分を少し改善する方が全体の性能は改善する

3.コンピュータ構成要素

メモリ

  • RAM
    • 読み書き可能
    • 揮発性(電源を切るとデータは消える)
  • ROM
    • 読みだし専用
    • 不揮発性(電源を切ってもデータは消えない)
分類 動作原理 速度 集積度 ビット単価 用途
DRAM MOS 低速 安価 主記憶
SRAM MOS 中速 安価 主記憶
SRAM バイポーラ 高速 高価 キャッシュ、レジスタ

DRAMの種類

DRAM Dynamic RAM
EDO RAM Extended Data Out DRAM メモリからデータを読み出すタイミングを工夫することで転送速度を高める
SDRAM Synchronous DRAM 外部クロックに同期して動作、クロックの立ち上がりに同期
DDR-SDRAM Double-Data-Rate SDRAMの2倍。クロックの立ち上がりと立ち下がりに同期
DDR2-SDRAM SDRAMの4倍
DDR3-SDRAM SDRAMの8倍
RD-RAM Direct Rambus DRAM

ROMの種類

  • マスクROM
    • 製造工場でプログラムを書き込んだもの
    • 後からデータを変更できない

メモリアクセスの高速化

主記憶への再書き込み方式

  • ライトスルー
    • データをキャッシュに書き込むときに同時に主記憶にも書き込む
  • ライトバック
    • データを書き込むときはキャッシュのみで、データを追い出すときに主記憶に書き込む

メモリインタリーブ

  • メモリをブロックに分割、隣接ブロックのアドレスを連続に割り付けることで、各ブロックへの並列アクセスを行うことにより高速化

キャッシュメモリへのメモリ割り当て

  • ダイレクトマッピング方式
    • ハッシュを用い、主記憶上のブロックからキャッシュ上のブロックが一意に定まる
    • アクセスは高速だが、衝突すると追い出されてしまうためヒット率は低下する
  • フルアソシエイティブ方式
    • 主記憶上のブロックをキャッシュのあいているブロックに割り当てる
    • 空きを有効に使用するのでヒット率は高いが、検索が遅い
  • セットアソシエイティブ方式
    • ダイレクトマッピングとフルアソシエイティブの中間
    • キャッシュを複数のセットに分割し、ハッシュを用いてセットを割り当て、セット内の空きブロックに割り当て

追い出しアルゴリズム

  • LRU
    • Least Recently Used
    • 最後に参照してから最も時間が経過しているデータを追い出す
  • FIFO
    • 最初にキャッシュにロードされたデータを先に追い出す
  • LIFO
    • 最後にロードしたデータを先に追い出す
  • LFU
    • Least Frequently Used
    • 使用頻度が最も低いデータを追い出す

CPUの命令サイクル

  1. 命令読みだし
    • メモリから命令を取り出す
  2. 命令解読
    • CPU内の制御装置で命令を解読する
  3. アドレス計算
    • 計算に使用しているデータが格納されているアドレスを求める
  4. オペランドフェッチ
    • メモリのデータを汎用レジスタ、アキュムレータへ読みだし
  5. 実行
    • 処理を実行し、実行結果をアキュムレータに保存

CPUの高速化技法

  • 逐次制御方式(ふつうの方式)
    • ひとつの命令の実行が完了してから次の命令の読みだしを開始する
  • 先行制御方式
    • 前の命令の命令実行のサイクルと同時に次の命令の命令読みだしを実行する
  • パイプライン方式
    • 命令をステージに分割し、1ステージずつずらしながら次々と実行する
    • 速度は向上するが、分岐命令やデータ書き換えなどで先読みしていた処理が無駄になることもある(パイプラインハザード)
  • スーパースカラ
    • パイプラインを複数用意して並列で同時実行
    • 分岐予測や順序の関係ない命令を選択して同時に実行する
  • VLIW方式
    • Very Long Instruction Word
    • 依存関係のない命令を組み合わせて複合命令を構成しパイプラインで命令をステージとして並列実行

アドレス指定方式

  • 命令は「命令部+アドレス部」から分かれる
  • アドレス部はアドレス指定方式によって複数のエリアにわかれることがある
  • 即値アドレス指定
    • アドレス部にアドレスではなくデータそのものが入っている
  • 直接アドレス指定(絶対アドレス指定)
    • アドレス部に対象データの有効アドレスが入っている
  • 間接アドレス指定
    • アドレス部で指定するアドレスに、対象データのアドレスが入っている
  • 相対アドレス指定
    • 指標アドレス指定(インデックスアドレス指定)
      • アドレス部の値と、インデックスレジスタに入っている値を足して有効アドレスを計算する
    • 既定アドレス指定(ベースアドレス指定)
  • レジスタアドレス指定
    • アドレス部で指定したレジスタに有効アドレスが入っている

プロセッサの構造、方式

マルチプロセッサ

  • 密結合型
    • 主記憶を複数のCPUで共有
    • 1つのOS
    • 1つのプログラムを複数のCPUで分散実行
  • 疎結合
    • CPUごとに主記憶
    • CPUごとにOS
    • メモリ競合が起きない

MPU(Micro Processing Unit)

CISC RISC
実装方式 マイクロプログラム ワイヤードロジック
命令語長 命令ごとに異なる、長い 固定、短い
メリット 高機能命令を実装できる 1命令の処理が単純で高速化しやすい。パイプライン向き
デメリット 1命令の内部構造が複雑 1命令では単純な処理しかできない
その他 CPUが複雑化するのでレジスタ数が少ない CPUが単純なのでキャッシュ、レジスタを内蔵可能
  • マイクロプログラム
    • マイクロ命令(CPUを基本的なレベルで制御する命令)の組み合わせで複雑な命令セットを装備
    • 人間に都合のよりマイクロプログラムを定義できる
    • ファームウェア
  • ワイヤードロジック
    • 論理回路を組み合わせことで必要な処理を実現
    • 非常に高速だが、単純な命令しか実装できない

並列実行方式

SISD 1つの命令で1つのデータを処理
SIMD 1つの命令で複数のデータを同時処理
MISD 1つのデータを複数の命令が同時処理
MIMD 複数の独立した命令が異なるデータを処理

英語の意味で覚える。Single、Multiple、Instruction、Data

CPUの命令実行時間

  • CPI
    • Clock Per Instruction
    • 1命令の実行に必要なクロック数
    • 1命令の実行時間=CPI×1クロックの時間
  • IPC
    • Instruction Per Clock
    • 1クロックあたりの命令数
  • MIPS
    • Million Instruction Per Second
    • 1秒あたり何100万命令実行できるか

バスシステム

入出力制御方式

  • 直接制御方式(プログラム制御方式)
    • CPUが直接入出力制御命令を出して入出力装置の動作をコントロール
    • 入出力動作中はCPUが占有
  • DMA(Direct Memory Access)方式
    • 専用の制御回路(DMAコントローラ)を用い、CPUを介さずに手記オクト外部装置のデータ転送
    • CPUと並行動作が可能
  • チャネル制御方式
    • DMA方式の拡張
    • CPUが専用回路に入出力命令を出し、あとはチャネルがチャネルプログラムに従って入出力を実行
    • 入出力が終わるとチャネル割り込みによってCPUに報告

磁気ディスクの構造

  • 構造:複数のディスクの重なりで構成される
    • トラック(周)
      • 各円盤におけるデータを記録する同心円状の領域
    • セクタ
      • トラックを分割した区画
      • 物理的な区画の最小単位
    • クラスタ
      • 複数のセクタの固まり(物理的に連続している必要はない)
      • ファイルに領域を割り当てていくときの単位
    • シリンダ
      • 重なっている円盤において、同筒上に重なったトラックの集まり

ディスクの容量計算

  • レコード
  • ブロック
    • 複数のレコードをまとめたもの。
  • ブロック化係数
    • 1ブロックあたりのレコード数
  • ブロック間隔
    • ブロックとブロックの間隔(バリアブル方式の場合のみ)
  • バリアブル方式
    • ブロックとブロックの間にブロック間隔をとりながら割り当て
    • トラックのうち、ブロックが入りきらない区間は使用できない
    • 1トラックに記録できるブロック数=1トラックのバイト数÷(ブロック+ブロック間隔のバイト数)
  • セクタ方式
    • セクタ分割し、ブロックの割り当てを行う。
    • 複数ブロックを同一セクタにまたいで配置できない
    • 1トラックに記録できるブロック数=1トラックのセクタ数÷1ブロックに必要なセクタ数

ディスクのアクセス時間

アクセス時間=待ち時間+データ転送時間
待ち時間=シーク時間+平均回転待ち時間

平均回転待ち時間=1回転の時間÷2
1回転の時間=1トラックの記憶容量÷データ転送速度
データ転送時間=ブロック長÷データ転送速度