基本情報技術者試験 - まとめ前編

# 「基本情報技術者試験」を学習した際の頻出単語や内容まとめ 前編

## はじめに
基本情報技術者試験に関連する各分野の重要な単語について解説を行います。この試験は、情報技術の基礎知識及び応用能力を認定するための国家資格です。試験内容は多岐にわたりますが、ここでは特に重要とされるいくつかの単語を選んで解説します。

### 対象読者
- 基本情報技術者試験を受講予定の人
- 基本情報で出題されるワードを理解したい人


## 記事構成
1~10のChapterにまとめたワードの一覧、解説を記載しています。
- [Chapter1 n進数の扱いに慣れる](#chapter1-n進数の扱いに慣れる)
- [Chapter2 2進数の計算と数値表現](#chapter2-2進数の計算と数値表現)
- [Chapter3 コンピュータの回路を知る](#chapter3-コンピュータの回路を知る)
- [Chapter4 ディジタルデータのあらわし方](#chapter4-ディジタルデータのあらわし方)
- [Chapter5 CPU (Central Processing Unit)](#chapter5-cpu-central-processing-unit)
- [Chapter6 メモリ](#chapter6-メモリ)
- [Chapter7 ハードディスクとその他の補助記憶装置](#chapter7-ハードディスクとその他の補助記憶装置)
- [Chapter8 その他のハードウェア](#chapter8-その他のハードウェア)
- [Chapter9 基本ソフトウェア](#chapter9-基本ソフトウェア)
- [Chapter10 ファイル管理](#chapter10-ファイル管理)

## 参考文献
https://gihyo.jp/book/2023/978-4-297-13807-3#toc

## 各分野のワード解説
### Chapter1 n進数の扱いに慣れる
#### よく使われるn進数
- **2進数であらわす数値を見てみよう**: 0と1の二つの数値を使って数を表現する方法。コンピュータの基本的な数値表現。
- **8進数と16進数だとどうなるのか**: 8進数は0から7、16進数は0から9とAからFまでの数値で数を表現する方法。
- **基数と桁の重み**: 数値の各桁が持つ位置の価値。例えば、10進数では1の位、10の位、100の位など。

#### 基数変換
- **n進数から10進数への基数変換**: 異なる基数の数値を10進数に変換する方法。
- **10進数からn進数への基数変換（重みを使う方法）**: 10進数を異なる基数に変換する際に桁の重みを利用する方法。
- **10進数からn進数への基数変換（わり算とかけ算を使う方法）**: 10進数を異なる基数に変換する際に、わり算とかけ算を利用する方法。
- **2進数と8進数・16進数間の基数変換**: 2進数から8進数や16進数に、またその逆に変換する方法。

### Chapter2 2進数の計算と数値表現
#### 2進数の足し算と引き算
- **足し算をおさらいしながら引き算のことを考える**: 2進数の基本的な加算と減算の方法。
- **負の数のあらわし方**: 2進数で負の数を表現する方法。
- **引き算の流れを見てみよう**: 2進数での減算の手順。

#### シフト演算と、２進数のかけ算わり算
- **論理シフト**: ビットを左または右に移動させる操作。
- **算術シフト**: 論理シフトに加え、符号ビットを保持するシフト操作。
- **かけ算とわり算を見てみよう**: 2進数での乗算と除算の方法。

#### 小数点を含む数のあらわし方
- **固定小数点**: 小数点の位置が固定された数値表現方法。
- **浮動小数点**: 小数点の位置が変動する数値表現方法。
- **浮動小数点の正規化**: 浮動小数点数を標準的な形式に整える方法。
- **よく使われる浮動小数点数形式**: 標準的な浮動小数点数の形式。

#### 誤差
- **けたあふれ誤差**: 計算結果が表現できる範囲を超えたときに発生する誤差。
- **情報落ち**: 大きな数と小さな数を計算したときに小さな数が無視される現象。
- **打ち切り誤差**: 計算を途中で打ち切ったときに発生する誤差。
- **けた落ち**: 計算の途中で有効桁数が減少する現象。
- **丸め誤差**: 四捨五入などで数値を丸めたときに発生する誤差。

### Chapter3 コンピュータの回路を知る
#### 論理演算とベン図
- **ベン図は集合をあらわす図なのです**: 集合の関係を視覚的に表現する図。
- **論理積（AND）は「〇〇かつ××」の場合**: 2つの条件が共に真である場合に真となる論理演算。
- **論理和（OR）は「〇〇または××」の場合**: 2つの条件のいずれかが真である場合に真となる論理演算。
- **否定（NOT）は「〇〇ではない」の場合**: 条件が真でない場合に真となる論理演算。

#### 論理回路と基本回路
- **論理積回路（AND回路）**: 2つの入力が共に真のときに出力が真となる回路。
- **論理和回路（OR回路）**: 2つの入力のいずれかが真のときに出力が真となる回路。
- **否定回路（NOT回路）**: 入力が真のときに出力が偽となる回路。

#### 基本回路を組み合わせた論理回路
- **否定論理積回路（NAND回路）**: AND回路の出力を否定する回路。
- **否定論理和回路（NOR回路）**: OR回路の出力を否定する回路。
- **排他的論理和回路（EOR回路またはXOR回路）**: 2つの入力が異なるときに真となる回路。

#### 半加算器と全加算機
- **半加算器は、どんな理屈で出来ている？**: 1ビットの2つの入力を加算する回路。
- **全加算器は、どんな理屈で出来ている？**: 1ビットの3つの入力を加算する回路。

#### ビット操作とマスクパターン
- **ビットを反転させる**: 各ビットの0と1を逆にする操作。
- **特定のビットを取り出す**: マスクを使って特定のビットを抽出する操作。

### Chapter4 ディジタルデータのあらわし方
#### ビットとバイトとその他の単位
- **1バイトであらわせる数の範囲**: 1バイトは8ビットで、256通りの値を表現できる。
- **様々な補助単位**: キロバイト、メガバイト、ギガバイトなど、データ量を表す単位。

#### 文字の表現方法
- **文字コード表を見てみよう**: 文字を数値で表現するための表。
- **文字コードの種類とその特徴**: ASCII、Unicode、UTF-8などの文字コードとその特徴。

#### 画像など、マルチメディアデータの表現方法
- **画像データは点の情報を集めたもの**: 画像はピクセルの集まりとして表現される。
- **音声データは単位時間ごとに区切りを作る**: 音声はサンプリングされてデジタルデータとして表現される。

#### アナログとコンピュータ制御
- **センサとアクチュエータ**: センサは物理量を計測し、アクチュエータは動作を制御するデバイス。
- **機器の制御方式**: アナログ制御とデジタル制御の方式。

### Chapter5 CPU (Central Processing Unit)
#### CPUとコンピュータの５大装置
- **5大装置とそれぞれの役割**: 入力装置、出力装置、記憶装置、演算装置、制御装置の役割。

#### ノイマン型コンピュータ
- **主記憶装置のアドレス**: メモリの各位置に固有のアドレスが割り当てられる。

#### CPUの命令実行手順とレジスタ
- **レジスタの種類とそれぞれの役割**: 命令レジスタ、アドレスレジスタ、データレジスタなど。
- **命令の実行手順その①「命令の取り出し（フェッチ）」**: プログラムカウンタから命令を取り出す。
- **命令の実行手順その②「命令の解読」**: 命令デコーダが命令を解読する。
- **命令の実行手順その③「命令の対象データ（オペランド）読み出し」**: 必要なデータをメモリから読み出す。
- **命令の実行手順その④「命令実行」**: 命令に基づいて演算や制御を行う。

#### 機械語のアドレス指定方式
- **即値アドレス指定方式**: 命令に直接データを含む方式。
- **直接アドレス指定方式**: 命令にアドレスを含む方式。
- **間接アドレス指定方式**: アドレスを指すアドレスを含む方式。
- **インデックス（指標）アドレス指定方式**: 基本アドレスにインデックスを加える方式。
- **ベースアドレス指定方式**: 基本アドレスとベースレジスタを使用する方式。
- **相対アドレス指定方式**: プログラムカウンタを基準にオフセットを加える方式。

#### CPUの性能指標
- **クロック周波数は頭の回転速度**: CPUの動作速度を表す。
- **1クロックに要する時間**: クロックサイクルの時間。
- **CPI（Clock cycles Per Instruction）**: 命令あたりのクロックサイクル数。
- **MIPS（Million Instructions Per Second）**: 毎秒実行できる命令数の単位。
- **命令ミックス**: 実行される命令の種類と割合。

#### CPUの高速化技術
- **パイプライン処理**: 命令を分割して並列に実行する技術。
- **分岐予測と投機実行**: 分岐命令の予測と予測に基づく実行。
- **スーパーパイプラインとスーパースカラ**: 高度なパイプライン技術と複数の命令を並列実行する技術。
- **CISCとRISC**: 複雑な命令セット（CISC）と単純な命令セット（RISC）。

### Chapter6 メモリ
#### メモリの分類
- **RAMの種類**: DRAMとSRAM。
- **ROMの種類いろいろ**: マスクROM、PROM、EPROM、EEPROM。

#### 主記憶装置と高速化手法
- **キャッシュメモリ**: 高速なメモリを利用してデータアクセスを高速化する技術。
- **主記憶装置への書き込み方式**: 書き込み直列方式と書き込み一貫方式。
- **ヒット率と実効アクセス時間**: キャッシュメモリの効果を示す指標。
- **メモリインターリープ**: メモリの並列アクセスを可能にする技術。

### Chapter7 ハードディスクとその他の補助記憶装置
#### ハードディスクの構造と記録方法
- **セクタとトラック**: データを記録する単位。
- **ハードディスクの記憶容量**: ディスクのデータ記録容量。
- **ファイルはクラスタ単位で記録する**: データをクラスタ単位で管理。
- **データアクセスにかかる時間**: データ読み書きに要する時間。

#### フラグメンテーション
- **デグラグで再整理**: データの断片化を整理する手法。

#### RAIDはハードディスクの合体技
- **RAIDの代表的な種類とその特徴**: RAID 0、RAID 1、RAID 5、RAID 6、RAID 10など。

#### ハードディスク以外の補助記憶装置
- **光ディスク**: CD、DVD、Blu-rayなど。
- **光磁気ディスク（MO：Magneto Optical Disk）**: 光と磁気を利用した記録媒体。
- **磁気テープ**: 長期保存用の磁気記録媒体。
- **フラッシュメモリ**: 電気的に書き換え可能なメモリ。
- **SSD（Solid State Drive）**: 高速な半導体記憶装置。

### Chapter8 その他のハードウェア
#### 入力装置
- **キーボードとポインティングデバイス**: 入力を行うための装置。
- **読み取り装置とバーコード**: データを読み取るための装置。

#### ディスプレイ
- **解像度と、色のあらわし方**: 画面の表示能力。
- **VRAM（ビデオRAM）の話**: 映像データを保持するメモリ。
- **ディスプレイの種類と特徴**: LCD、OLED、CRTなど。

#### プリンタ
- **プリンタの種類と特徴**: インクジェット、レーザー、ドットマトリックスなど。
- **プリンタの性能指標**: 印刷速度、解像度、インクコストなど。

#### 入出力インターフェイス
- **パラレル（並列）とシリアル（直列）**: データの転送方式。
- **パラレルインターフェイス**: 同時に複数ビットのデータを転送。
- **シリアルインターフェイス**: 一度に1ビットのデータを転送。
- **無線インターフェイス**: 無線でデータを転送。

### Chapter9 基本ソフトウェア
#### OSの仕事
- **ソフトウェアの分類**: 基本ソフトウェアと応用ソフトウェア。
- **基本ソフトウェアは３種類のプログラム**: カーネル、デバイスドライバ、シェル。
- **代表的なOS**: Windows、macOS、Linuxなど。
- **OSによる操作性向上**: ユーザーインターフェースの改善。
- **API（Application Program Interface）**: ソフトウェア間のインターフェース。

#### ジョブ管理
- **ジョブ管理の流れ**: ジョブの受付、実行、終了。
- **スプーリング**: 入出力の効率化技術。

#### タスク管理
- **タスクの状態遷移**: タスクの実行状態の変化。
- **ディスパッチャとタスクスケジューリング**: タスクの実行順序を管理。
- **マルチプログラミング**: 複数のプログラムを同時に実行。
- **割込み処理**: イベントに応じて処理を中断・再開。

#### 実記憶管理
- **固定区画方式**: 固定サイズのメモリ区画を割り当てる方式。
- **可変区画方式**: 可変サイズのメモリ区画を割り当てる方式。
- **フラグメンテーションとメモリコンパクション**: メモリの断片化とその整理。
- **オーバーレイ方式**: メモリの一部にプログラムを一時的に読み込む方式。
- **スワッピング方式**: プログラムを一時的にディスクに退避させる方式。

#### 再配置可能プログラムとプログラムの4つの性質
- **再配置可能（リロケータブル）**: メモリの任意の場所に配置できるプログラム。
- **再使用可能（リユーザブル）**: 繰り返し利用できるプログラム。
- **再入可能（リエントラント）**: 同時に複数のプロセスから実行できるプログラム。
- **再帰的（リカーシブ）**: 自分自身を呼び出すことができるプログラム。

#### 仮想記憶管理
- **なんで仮想記憶だと自由なの？**: 実際の物理メモリ容量を超える大きなメモリ空間を提供できるため。
- **実記録の容量よりも大きなサイズを提供する仕組み**: ページングやセグメンテーションを用いて物理メモリとディスクを組み合わせて仮想メモリを実現。
- **ページング方式**: 固定サイズのページに分割してメモリ管理を行う方式。
- **ページの置き換えアルゴリズム**: ページフォールト時に置き換えるページを決定するアルゴリズム。
- **ページングとスワッピング**: ページをディスクとメモリ間で交換することで仮想メモリを実現。

### Chapter10 ファイル管理
#### ファイルとは文書のこと
- **データの種類と代表的なファイル形式**: テキスト、バイナリ、マルチメディアなどのデータ形式。
- **マルチメディアデータの圧縮と伸縮**: 画像や音声データの圧縮技術と復元方法。

#### 文書をしまう場所がディレクトリ
- **ルートディレクトリとサブディレクトリ**: ファイルシステムのトップレベルとその下位にあるディレクトリ。
- **カレントディレクトリ**: 現在の作業ディレクトリ。

#### ファイルの場所を示す方法
- **絶対パスの表記方法**: ルートディレクトリからの完全なパス。
- **相対パスの表記方法**: 現在のディレクトリからの相対的なパス。

#### 汎用コンピュータにおけるファイル
- **ファイルのアクセス方法**: 順次アクセス、直接アクセスなどのファイルアクセス方法。
- **順編成ファイル**: データを順番に格納するファイル形式。
- **直接編成ファイル**: 任意の位置に直接アクセスできるファイル形式。
- **索引編成ファイル**: インデックスを利用してデータにアクセスするファイル形式。
- **区分編成ファイル**: 複数の部分に分割して管理するファイル形式。

## まとめ
記憶の長期定着、他人へ説明できるようにするためにも、この記事を作成しました。
自分用の復習にも使用しますが、他の方の参考になれば嬉しいです！

後編の記事は下記から参照ください。

https://qiita.com/furu_39/items/49f400ea9f7740365baa