基本情報

# 基本情報対策

22 / 1-1 -> 1-4
## テクノロジ
## 1章 コンピュータ構成要素
#### bit
コンピュータが扱える最小の単位。8ビットで1バイトという。また、情報を表す2進数の010100011のような0と1の並びのことをビットパターンという。
#### 文字コード
それぞれの文字に固有の二進数を割り当てて文字を識別するための物。以下の種類がある。
- ASCIIコード：米国標準符号で英数記号、制御文字のみ
- シフトJISコード：ASCII＋仮名漢字
- EUC：Unix,Linux
- Unicode：世界中の文字を体系化したもの。UTF-8(Unicode Transformation Format - 8bit)

#### コンピュータの構成
**CPU**：Central Peocessing Unit、プロセッサ、中央処理装置
- 制御装置
- 演算装置
記憶装置
入力装置
出力装置

#### 主記憶(RAM)
揮発性メモリ(電源を切るとデータが消える)、CPUから直接アクセス可能

#### プログラム記憶方式✅
主記憶に記憶されたプログラムをCPUが順に取り出して解読、実行する方式

#### クロック周波数
CPUでクロック信号の高低サイクルが1秒間に繰り返される回数
e.g. 2.5GHz → 1秒間に2.5*10^9回
k:10^3 M:10^6 G:10^9 T:10^12
- 内部クロック→外部クロックよりも早く動いてる：内部と外部でクロック周波数が同じである必要はない
- 外部クロック

#### バス
血管のようなもの。
クロック周波数が多くバスが広いほどデータを高速で送受信可能

#### レジスタ✅
**CPUに内蔵されている高速な記憶装置。**いくつかの種類がある。
- 命令レジスタ
- 命令アドレスレジスタ(プログラムカウンタ)
- 指標レジスタ(インデックスレジスタ)
- 基底レジスタ(ベースレジスタ)
- アキュムレータ(累算器)

#### 命令語
機械語
命令部とアドレス部(オペランド部)からなる。
アドレス部がないものや複数あるものもある。
- 命令部：命令や演算の指示
- アドレス部：オペランドの主記憶上のアドレス

#### オペランド
処理対象のデータ

#### 命令実行サイクル✅
- 命令アドレスレジスタより命令を取り出して命令レジスタに格納
- デコーダを用いて命令の解読
- オペランドが格納されているアドレスの計算
- オペランドを取り出して演算装置に送る
- 演算装置で演算実行
- 演算結果を格納する

#### アドレス指定方式✅
命令のアドレス部よりオペランドが格納されているアドレスを求める方式
- 即値アドレス指定方式
- 直接アドレス指定方式
- 間接アドレス指定方式
- 相対アドレス指定方式
- 指標アドレス指定方式
- 基底アドレス指定方式

---

23 / 1-5 -> 1-8
#### CPUの制御方式✅
逐次制御方式：1命令ずつ順番に繰り返していく
パイプライン方式：複数の命令を1ステージずつずらしながら並行して行う
スーパーパイプライン方式：パイプライン方式を更に細分化
スーパースカラ方式：複数のパイプラインを使用して同時に複数の命令を実行

#### パイプラインハザード✅
分岐のせいでパイプラインの処理が乱れること

#### マルチコアプロセッサ
CPUの中で複数の演算回路の中核部分が動いているもの

#### GPU
大量の行列計算を用いて画像処理を行う画像処理装置。数千個ものコアで計算する。

#### RAM
Random Access Memory。CPUから直接アクセス可能。揮発性あり

#### DRAM✅
Dynamic RAM。コンデンサ。リフレッシュ必要。低速。安価。主記憶

#### SRAM✅
Static RAM。フリップフロップ回路。リフレッシュ不必要。高速。高価。キャッシュメモリ。

#### ROM
Read Only Memory。不揮発性メモリ。P40 書き込み可能なPROMというものも存在する。

#### キャッシュメモリ
CPUと主記憶の間に配置されるメモリ。CPUから主記憶までのアクセス速度は遅いがCPUからキャッシュメモリまでのアクセス時間は短いためアクセス時間短縮につながる。

#### 実効アクセス時間
ヒット率、キャッシュメモリのアクセス時間、主記憶のアクセス時間がわかれば算出可能。P41

#### ヒット率
アクセスするデータがキャッシュメモリに存在する確率。NFP(Not Found Probability)はキャッシュメモリに存在しない確率(主記憶に存在する確率)

#### フリップフロップ回路
2つの安定した状態を持ち1ビットの情報を記録できる回路。

#### １次キャッシュ、２次キャッシュ✅
主記憶のアクセス時間とCPUの処理時間の差が大きいときにこのように多レベルのキャッシュ構成にするとより効果が上がる。L1キャッシュ、L2キャッシュとも呼ばれる。

#### ライトスルー方式✅
キャッシュメモリと主記憶の両方に書き込む方式。データの一貫性あり、低速。

#### ライトバック方式✅
キャッシュメモリにのみ書き込む方式。データの一貫性なし、高速

#### メモリインタリーブ✅
主記憶を複数のバンク(区画)に分け、連続するアドレスの内容を並列アクセスすることでアクセスの高速化を図る方式。

#### 補助記憶装置
大容量安価、不揮発性

#### 磁気ディスク装置
HDD(Hard Disk Drive)、ハードドライブ。磁性体を塗った円盤が回転して磁気ヘッドを移動させながらデータを記録する。セクタが同心円状にあつまりトラックとなる、トラックが集まり1面画形成される。また中心から等距離にあるトラックの集まりをシリンダという。

#### セクタ方式
セクタが同心円状にあつまりトラックとなる、トラックが集まり1面画形成される。また中心から等距離にあるトラックの集まりをシリンダという。このような記録方式。データはセクタ単位で記録される。一つのセクタに収まらない場合は複数のセクタにまたがって保存される。セクタの余った部分には何も記録されない

#### アクセス時間✅
CPUがデータの読み書きの指令を出してからデータの読み書きが終わるまでの時間。
磁気ディスク装置のアクセス時間は位置決め時間、回転待ち時間、データ転送時間からなる。

#### フラグメンテーション
データの書き込み、消去を何度も繰り返すとデータが連続した領域に保存されなくなること。磁気ヘッドの移動が頻繁に行われてアクセス時間が遅くなる。

#### デフラグ
断片化したデータを連続した領域に再配置しフラグメンテーションを解消すること。

#### フラッシュメモリ
電気的にデータを消去することが可能。書き直し可能な半導体メモリ。代表的なものにUSBメモリ、SDカードがある。

#### SSD
Solid State Drive。フラッシュメモリを用いた、HDDの代わり。

#### 光ディスク✅
レーザ光を用いてデータを読み書きする記憶媒体。例CS,DVD,BD
P50 再生専用型、追記型、書換え型がある。

#### 入力装置
コンピュータにデータや支持を送信するデバイス。マウス、キーボードなど。マウスなどの位置情報を送信する入力装置をポインティングディバイスという。

#### POSシステム
Point of Sales。バーコードを使って商品の販売状況をリアルタイムに取得し売れ筋などを把握できるシステム

#### JANコード
バーコード。国コード、メーカーコード、商品アイテムコード、チェックディジットからなる。

#### QRコード
小さな領域に多くの情報を保存でき、汚れがあった場合などのためにエラー訂正機能を持つ二次元コード。360度のどの方向からでも読み取り可能。

#### RFID✅
Radio Frequency Identification。極小のICチップにアンテナを組み合わせた電子荷札。電磁波を用いる。例 商品タグ、Suica

#### NFC
Near-Field Communication。RFIDの国際規格

#### 出力装置
コンピュータ内部で処理したデータを外部に出力するための装置

#### 液晶ディスプレイ✅
光の透過を画素ごとに制御しカラーフィルタを用いて色を表現する。液晶自体は発行しないためバックライトなどが必要。

#### 有機ELディスプレイ✅
電極の間に電気を通すと発行する特殊な有機化合物を挟んだ構造。発行ダイオードの一種。バックライトが不要なため薄型、低電圧駆動、低消費電力

#### 解像度
横×縦でピクセル数を指定したディスプレイの大きさ

#### 画素(ピクセル)
ディスプレイを構成するドット

#### VRAM
Video RAM。ディスプレイに映す情報を保存するためのRAM。

#### プリンタ
P55 レーザプリンタ、インクジェットプリンタ、ドットインパクトプリンタ

#### dpi✅
dots per inch。解像度の単位。1インチ(2.54㎝)あたりのドットの数

#### 3Dプリンタ
モデリングソフトで作成した3Dデータをを熱で溶かした樹脂や金属粉末などを層上に重ねて立体物を作成するプリンタ

---

24 1-9 -> 2-3
#### USB
PCと周辺装置を接続する標準的なシリアルインタフェース
**シリアルインタフェース**は、データを高速に1ビットずつ直列に転送するインタフェース

#### ホットプラグ
電源を入れたまま接続と切断をすることが可能な機能

#### バスパワー
USBのケーブルを介してＰＣ本体から電源を供給できるようにする方式

#### HDMI
映像や音声、制御信号を1本のケーブルから入出力できるインタフェース

#### Bluetooth
免許不要の2.4GHzの電場を利用したインタフェース

#### BLE
Bluetooth Low Energy。Bluetoothの通信方式の一つ。IoTなどに用いられる。

#### Zigbee
免許不要の2.4GHz帯の電波を利用したインタフェース。

## 2章 ソフトウェアとマルチメディア
#### OS
ハードウェアやアプリケーションソフトウェアを管理・制御するソフトウェア

#### アプリケーションソフトウェア
OS上で稼働する特定の目的を実現するためのソフトウェア

#### ミドルウェア
OSとアプリケーションソフトウェアの中間に位置する

#### API✅
アプリケーションからOSが用意している各機能を利用するための仕組み

#### デバイスドライバ
PCに接続したデバイスを制御するソフトウェア

#### プラグアンドプレイ
プラグを挿すだけで必用な設定をしてくれる機能

#### OSS
Open Source Software. ソースコードを公開しているソフトウェア。無保証を変則として誰でも自由にソースコードを改変し再頒布することができる。
OSI:Open Source Initiativeは、OSSの最低条件として以下を挙げている。
- 頒布先となる個人やグループや利用分野を制限しない
- 再頒布で追加ライセンスを要求しない
- 特定製品に限定したライセンスにしない

#### ディストリビュータ✅
PCようやIoT要など用途に応じてOSやGUI環境を組み合わせてパッケージにして再頒布する団体

OSSのライセンスに関して
#### BSDライセンス✅
- 無保証であること
- 改変後の再頒布の際に元のソフトウェアの著作権表示部分やライセンス条文は残すこと
の二つの制約がある。

#### GPL✅
BSDライセンスに加えてコピーレフトという制約がある。

#### コピーレフト✅
著作権を保持したまま、プログラムの複製や改変、頒布を制限せず、そのプログラムから派生した二次著作物には、オリジナルと同じ配布条件を適用するという考え方。

#### ジョブ
人間側から見た一つ一つの仕事の単位

#### タスク
コンピュータ側から見た一つ一つの仕事の単位

#### スプーリング✅
RAMと低速な入出力装置との間のデータ転送を補助記憶装置を介して行うこと

#### マルチタスク(マルチプログラミング)✅
複数のタスクにCPUの処理時間を順番に割り当てることでタスクが同時に実行されているように見せる方式。

#### ノンプリエンプティブ方式✅
OSがCPUを管理せずプログラムにまかせる方式

#### プリエンプティブ方式✅
OSがCPUを管理する方式

#### マルチスレッド✅
ひとつのプログラムの中で並行処理が可能な部分を複数の処理単位(スレッド)に分解してそれらを並行して処理するOSの機能

#### 割込み✅
実行中のプログラムを一時中断し制御プログラムに制御を移して必要とする別の処理に切り替えること。

#### 内部割込み
実行中のプログラムが原因で起こること。
ゼロによる除算、桁あふれ、ページフォルト、SVC割り込み(プログラムがOSに入出力を要求した場合)など

#### 外部割込み
実行中のプログラム以外が原因で起こる。

#### 区画方式✅
主記憶をいくつかの区画に分けてプログラムを割り当てる方式

#### 固定区画方式
あらかじめ決まった大きさの区画に分割する

#### 可変区画方式
プログラムが必用とする大きさの区画に分ける

#### メモリコンパクション
フラグメンテーションを解決するために細切れの未使用領域を連続したひとつの領域にまとめて再び利用可能にすること

#### スワッピング方式
実行中のプログラムのうち優先度の低いものを補助記憶に退避(スワップアウト)させて優先度の高いプログラムをRAMに配置(スワップイン)する方式

#### オーバーレイ方式✅
あらかじめプログラムを同時に実行しないいくつかの単位(セグメント)に分割し、実行時に必用な部分だけをRAMに配置して実行する方式

#### メモリリーク
実行中のプログラムのバグなどでそのメモリ領域が解放されないことによって引き起こされるRAMの容量が減少すること
対策としてガーベジコレクションや再起動をする。

#### ガーベジコレクション
メモリリークによって埋まっている不必要な領域を開放する作業。

#### 仮想記憶方式✅
プログラムを仮想記憶空間(補助記憶)に格納して起き、実行時に必要なプログラムやデータを動的に実記憶(RAM)に配置して実行する方式。
プログラムは仮想記憶空間に格納されているため、実行時には仮想記憶上の番地(仮想アドレス)を主記憶上の番地(実アドレス)に変換する必要があり、この変換を動的アドレス変換機構(DAT:Dynamic Address Translator)というハードウェアで行う。

#### ページング方式✅
主記憶とプログラムを固定長(ページ)に分割し、このページ単位で管理する方式。

#### ページフォルト
RAMに目的のページが見つからないことで発生する。不要なページを実記憶から補助記憶に追い出し(ページアウト)、必用なページを補助記憶からRAMに配置(ページイン)する。

#### スラッシング
ページフォルトが多発することで処理効率が急激に低下する現象。

---

25 2-4 -> 3-2

バックアップ
#### フルバックアップ
磁気ディスクに保存されているすべてのデータをバックアップする方式

#### 差分バックアップ
前回のフルバックアップ以降の差分をバックアップしファイル更新情報をリセットしない。

#### 増分バックアップ
前回のバックアップ以降の差分をバックアップしファイル更新情報をリセットする。

#### ラスタデータ
画像ファイルのようにピクセルの集まりで表現された画像。拡大するとシャジー(ギザギザ)が生じる

#### ベクタデータ
差表や線分の長さで形成されたデータ。拡大してもシャジーは発生しない。

#### SVG✅
Scalable Vector Graphics。図形オブジェクトをXMLで記述しWebページなどで図形描画に使うことができる画像フォーマット。拡大してもシャジーは生じない。

#### CG
Computer Graphics。

#### VR
Virtual Reality。

#### AR
Augmental Reality。

## 3章 基礎理論
#### 基数変換
基数の変換

#### 固定小数点✅
小数点の位置を決められた場所に固定して表現する形式。


---

26 3-3 -> 3-7

#### 浮動小数点✅
実数を扱う場合に用いる形式。指数を使うことで、大きな数や小さな数を固定小数点よりも少ないビット数で表現可能。

#### 桁あふれ誤差
演算結果がコンピュータが表現できる範囲を超えていることが原因で発生する誤差

#### オーバーフロー
表現できる範囲を超えている

#### アンダーフロー
限りなく小さすぎて表現しきれない

#### 丸め誤差
指定された桁数で表現するために切り捨て、切り上げ、四捨五入などを行うことで発生する誤差

#### 桁落ち誤差✅
絶対値がほぼ同じ数の同符号の減算やい符号の加算を行うことで有効数字が減ることで発生する誤差

#### 情報落ち誤差✅
絶対値の差が非常に大きい数同士の加減算を行ったときに絶対値の小さい数が反映されないことで発生

#### 打切り誤差
桁数が長すぎて計算処理を打ち切ることで発生

#### シフト演算
左右にビットをずらして乗算や除算を計算すること

#### 論理シフト
ビット演算のうち符号を気にしないもの

#### 算術シフト
ビット演算のうち符号を気にするもの

#### MIL記号
論理回路の図

#### 排他的論理和
XOR。入力が異なるときのみ1

#### 否定論理和
NOR

#### 否定論理積
NAND

ビット列の取り出しやビットの反転について確認

#### 半加算器
2つの二進数を加算して、同桁と桁上がりを出力する加算器。下位桁からの桁上がりを考慮しないため、最下位桁で用いられる。AND＋XORで作れる。

#### 全加算器
下位桁からの桁上がりも考慮した加算器。ANDと半加算器をもちいて作れる。

---

27 3-8 -> 3-12

#### アナログデータ
連続的に変化する情報

#### デジタルデータ
アナログデータを細かく切って0と1に置き換えた不連続な情報

#### A/D変換
アナログデータからデジタルデータへの変更

#### D/A変換
デジタルデータからアナログデータへの変換

#### PCM伝達方式✅
Pulse Code Modulation。アナログの音声データをデジタルに変換する方式。

#### 標本化✅
時間に連続したアナログ信号の波形を一定の時間間隔で測定すること。

#### サンプリング周波数
1秒当たりのサンプリング回数

#### 量子化✅
測定した信号をあらかじめ決められた一定の間隔に対応した近似値に変換すること。

#### 符号化✅
量子化された値を2進数のデジタル符号に変換すること。

コンピュータの制御方式
#### フィードバック制御✅
センサなどから得られたデータをもとにコンピュータが判断して修正動作を行う

#### フィードフォワード制御✅
外乱があらかじめ予測できるときに前もって修正動作を行う

#### シーケンス制御✅
前もって決められた段階に沿って制御の段階を逐次進めていく

#### PWM制御✅
Pulse Width Modulation。モータの回転速度やLEDの明るさなどを制御する。クロック周期の中のオンの時間を多くすることで電流などを高める。

#### クロック信号
各装置の動作のタイミングを指示するためのCPUが発する周期的な信号

#### 電流
電気の流れの量

#### ワット
実際に消費される電気エネルギー

#### 電圧
電気を流そうとする力の強さ

#### Wh
電力量

#### オートマトン✅
現在の状態と入力によって出力が決定する機会をモデル化したもの

#### 有限オートマトン
いくつかのステップを踏んで最終的に受理状態(終了状態)になるオートマトン

#### 状態遷移図
オートマトンの状態遷移を図に表したもの

#### 状態遷移表
オートマトンの状態遷移をチャートに表したもの

#### クラスタリング✅
データセットを特定のルールに基づいていくつかのグループに分割すること。

#### 強化学習✅
試行錯誤を通して報酬が最も大きくなるような方法を学習すること

#### デジタルツイン✅
様々なセンサから収集したデータをもとに現実世界を制限し、現実を超えたシミュレーションなどを行うこと。

#### 順列
nこの中からr個取り出して並べたもの

#### 組み合わせ
nこの中から並び順を気にせずにr子取り出すもの

#### メジアン
中央値

#### モード
最頻値

#### レンジ
範囲

#### 分散
平均値からのばらつきを表す。偏差の二乗の総和の平均値

#### 標準偏差
分散の平方根。標準偏差が大きければ平均からのばらつきが大きく、小さければ少ない。

---

28 4-1 -> 4-5

## 4章 アルゴリズムとプログラミング
#### リスト
データを記録するデータ部とデータの格納位置を示すポインタ部で構成されるデータ構造

#### 単方向リスト
次のデータへのポインタを持っている。

#### 双方向リスト
次のデータと前のデータのポインタを持っている。

#### 環状リスト
ポインタをたどり、データが環状に連結されている。

#### キュー
先に入ったデータが先に取り出されるようなデータ構造

#### エンキュー
キューにデータを格納すること。

#### デキュー
キューからデータを取り出すこと。

#### スタック
最後に入ったデータを最初に取り出すようなデータ構造

#### プッシュ
スタックにデータを格納すること

#### ポップ
スタックからデータを取り出すこと

木構造
#### 2分木✅
全ての枝の分岐が二つ以下であるような木構造

#### 完全2分木✅
根から葉までの深さが全て等しい2分木。ただし深さが1だけ深い葉があり、木全体の左から詰められているものも完全2分木とされる。

#### 2分探索木✅
各節において、「左の子＜親＜右の子」という関係を持った2分木

#### ヒープ木✅
各節において、「子＜親」または「親＜子」という関係を持った完全2分木

#### 逆ポーランド記法✅
演算子を非演算子の後に記述する数式の記述方法。

#### B木✅
枝の分岐が2つ以上あり、データ挿入時には根から葉までの深さが同じになる

#### B＋木✅
葉にのみデータを持たせる。

---

29 4-6 -> 4-9

データの整列
#### 基本交換法✅
バブルソート。隣り合うデータ同士を比較して交換していく方法。

#### 基本選択法✅
データ列の最小値を見つけて交換し、次にそれを除いたデータの中での最小値を見つけて交換していく方法。

#### 基本挿入法✅
既に整列済みのデータ列の正しい位置にデータを挿入していく整列法

#### シェルソート✅
ある一定間隔おきに取り出した要素内で基本挿入法を用いて整列させて、間隔を詰めながら、間隔が1になるまで繰り返していく整列法

#### クイックソート✅


#### ヒープソート✅


データの探索
#### 線形探索法


#### 番兵法


#### 2分探索法


#### ハッシュ探索法


#### シノニム


#### オーダ表記


プログラムに持たせる属性について
#### 再配置可能


#### 再入可能


#### 再使用可能


#### 再帰的

---

1 4-10 -> 5-3

#### 高水準言語


#### 低水準言語


#### JavaVM


#### 言語プロセッサ


#### リンク


#### リンカ


#### ロード


#### ローダ


#### プリコンパイラ


#### クロスコンパイラ


#### ジェネレータ


#### トランスレータ


#### エミュレータ


#### 統合開発環境


#### ビルド


#### デバッグ


#### トレーサ


#### スナップショットダンプ


#### メモリダンプ


#### 静的解析ツール


#### 形式言語


#### BNF記法


#### 正規表現


#### マークアップ言語


#### SGML


#### HTML


#### CSS


#### XML


## 5章 システム構成要素
#### ミッションクリティカル


#### デュプレックスシステム


#### ホットスタンバイ


#### コールドスタンバイ


#### バッチ処理


#### オンラインリアルタイム処理


#### ホットサイト


#### ウォームサイト


#### コールドサイト


#### 緊急時のための行動計画


#### BCP


#### RTO


#### BCM


#### デュアルシステム


#### クラスタシステム


#### HAクラスタ


#### - 負荷分散型クラスタ


#### - フェールオーバー型クラスタ


#### HPCクラスタ


#### データベースのディスク共有


#### グリッドコンピューティング


#### クライアントサーバシステム


#### 3層クライアントサーバシステム


#### ストアドプロシージャ


#### サーバ仮想化


#### - ホスト型


#### - ハイパバイザ型


#### - コンテナ型


#### ライブマイグレーション


#### スケールアップ


#### スケールアウト


#### シンクライアントシステム


#### VDI


#### NAS


#### RAID


#### パリティ


#### フォールトアボイダンス


#### フォールトトレランス


#### フェールセーフ


#### フェールソフト


#### フールプルーフ



2 5-4 -> 6-3

システムの性能評価
#### スループット


#### ターンアラウンドタイム


#### レスポンスタイム


#### ベンチマークテスト


#### MIPS


#### 命令ミックス


システムの信頼性評価
#### RASIS


#### 平均故障間隔


#### 平均修理時間


#### 稼働率


#### バスタブ曲線


## 6章 データベース技術


#### データモデル


#### 関係モデル


#### 関係データベース


#### スキーマ


#### 3層スキーマ


#### データベース管理システム


#### 再編成


#### E-R図


#### 主キー


#### 外部キー


#### インデックス


#### データの正規化


#### 複合主キー


#### 部分関数従属


#### 完全関数従属


#### 推移的関数従属



---

3 6-4 -> 6-7

#### トランザクション処理


#### ACID特性


#### 排他制御


#### 共有ロック


#### 専有ロック


#### デッドロック


#### 2相コミットメント


#### ログファイル


#### ロールフォワード


#### ロールバック


#### 関係演算


#### 射影


#### 選択


#### 結合


#### 集合演算


#### SQL


---

4 6-8 -> 7-2