テクノロジー系:数値表現と基数変換
2進数というものがある。
スイッチのオン・オフに使われるように、電気を流す・流さないのパターンを判別するために機能している。
他にもn進数があるが、対応表をなんとなく覚えておけばいい。
この画像があるサイトが参考になる。
注意したいのが、n進数の場合、n-1の数字を最後に桁が上がることだ。
8進数の場合、7の次が桁上がり。
2進数の場合、1の次は11になり、桁上がり。
当たり前だが、10進数の場合は、9の次が桁上がり。
2進数→r進数への基数変換
基本的に、小数点を境に数桁ずつに区切って変換する。
変換する際は、旧整数部分はnの0乗から始まることに注意。
- 2→8進数:3つずつに区切る
- 2→16進数:4つずつに区切る
(※要イラスト)
r進数→2進数への基数変換
整数部と小数部で方法が異なる。
各画像のサイトが参考になる。
① 整数部:10進数を基数2で割った商と余りを求め、下から順に並べる。
② 小数部:10進小数に基数②を掛け、整数部分を順に取り出す。
2進数の足し算
基本的に、桁上がりをする場合は、左の数字を1増やす。
(例)2進数1.1011と1.1101の加算
→11.1000
→1*2の1乗+1*2の0乗+1*2の−1乗
=2+1+0.5
=3.5
テクノロジー系:OS
OSの中には、PCのOS以外にも種類がある。
以下の図で、簡単にソフトウェア体系におけるOSの立ち位置をまとめた。
System sofwareとは、コンピュータの稼働・使用そのものをサポートする software。
その中には、さらに2つ種類がある。
- Middleware:OSによる違いを補完し、Application softwareの互換性を向上
- Basic software(≒広義のOS):以下が構成要素
- 制御プログラム:ジョブ・タスクから入出力までの管理(=kernel)を実行する
- サービスプログラム
- 言語プロセッサ
OSの種類と目的
テクノロジー系:システムの信頼性
コンピュータの信頼性を測る項目として、RASISという標語がある。
- R:Reliability、信頼性
- A:Availability、可用性 →稼働率で計算が可能。
- S:Serviceability、保守性
- I:Integrity、保全性
- S:Security、機密性
これらの指標を測るために、以下の計算式が設けられている。
- MTBF(Mean time between failures):故障なしで動く平均時間
- MTTR(Mean time to repair):1回の修理にどれくらいの時間がかかるのか
- 稼動率:(A)=MTBF/MTBF+MTTR
とはいえ、システムの中にも種類があるため、稼働率計算の方法も少しずつ違う。
- 直列系システム:稼働率の積→(A)=a*b*c
- 並列系システム:(A')=1-(1-a)*(1-b)*(1-c)
実際の問題はここまで簡単なことは少なく、複合的なシステムの場合が多い。
そのため、複雑なシステムは直列と並列の計算の双方を忘れないようにすることが大切である。
テクノロジー系:システムの評価指標
システムを評価する軸は、2つある。
① 応答時間
- Response time:入力〜出力開始、≒ユーザーの待機時間
- Turnaround time:処理要求〜出力終了、≒完全な出力までの時間
② 処理能力
- throughput:システムが出来る仕事量
- 命令ミックス:コンピューター本体の処理性能、平均命令実行時間
- MIPS:1秒間に実行出来る命令数(100万単位)
- FLOPS:1秒間に出来る浮動小数点演算の数
上記の指標を測るためのテストが3つ。
キャパシティプランニング
→ユーザーの要求に応えるために必要なハードの構成を考えること。
ー目的
- 最適な機種等の決定
- 経済性(コスパ)・拡張性の配慮
- UI/UXの向上
ー待ち行列理論:よくわからない。必要に応じてこのサイトを参照すること。
テクノロジー系:RAIDと信頼性
RAID
→Disk装置を複数使用し、高速・安全なDisk装置を実現する技術。
① 4つのRAID
- RAID-0(Striping):複数HDに並列・分散格納
- RAID-1:2つのHDに同一ファイルを書き込む、信頼◯、容量1/2
- RAID-2~4:ビット・ブロック単位でStriping、ハミング・パリティによる復元◯
- RAID-5:ブロック単位でSrtiping、パリティ分散格納、容量=n-1/n
② パリティチェック:Dataの転送・記録が正しく行われたかを確認する方法。
③ 信頼性システムの3つの考え
- Fail safe:安全性重視、安全に列車を止めるシステム
- Fail soft:継続重視、システム全ては止めない銀行・病院システム
- Fool-proof:ユーザーによる故障を防止
テクノロジー系:システムの処理形態・構成
処理形態
システムの処理を効率よくするためには、主に2つの方法がある。
① 集中処理システム
- バッチ処理システム:一括処理
- OLTPシステム:即時処理、大規模システム
- オンライン制御処理システム:限られた時間内に処理
② 分散処理システム
- 垂直機能分散システム:階層型
- 水平分散システム:対等型
→更に、CSSの応用が2つある
① 3層アーキテクチャ:データ層・ファンクション層・プレゼンテーション層を独立、保守性が高い
② ストアドプロシージャ:SQLを実行形式に変換→即時実行
システム構成
システムの構成には、2つの考え方がある。
① 信頼性重視:管理◯、障害準備△
- Duplexシステム:主系で主要業務・従系でバッチ処理→(例)ホットスタンバイ
- Dualシステム:2つの系統で同一データを処理、高い信頼性と安全性
- Cloud computing:ネットを通じてストレージを利用
② 効率重視:処理効率・負荷分散◯
- マルチプロセッサシステム
- TCMP:主記憶装置を共有・同期
- LCMP:プロセッサ・主記憶が独立処理・通信
- Clusterシステム:物理接続で単一コンピューターへ
- Gridシステム:ネット接続で単一コンピューターへ
バックアップ用システムには3つの運用形態がある。
- ホットスタンバイ:同一環境を稼働待機
- ウォームスタンバイ:同一環境を非稼働待機
- コールドスタンバイ:同一環境を1から構築
テクノロジー系:命令とアドレッシング
ここまで来て、やっとわかったことがある。
おそらく、今やっていて分からない部分は、①コンピュータの五大機能or②演算&処理装置の図解に登場する、線の部分かもしれない。
関係性を無視した要素だけが説明されていたため、十分に理解できなかった部分がようやく分かり始めた。
各要素を理解することと、それらの繋がりを理解することには大きな意義の違いがある。