コンテンツにスキップ

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

  • コンピュータを構成する主要部品の役割
  • 2進数・16進数と文字コードの仕組み
  • OSがどのような役割を果たしているか

コンピュータは大きく以下の部品で構成されている。

┌─────────────────────────────────────────┐
│ コンピュータ │
│ │
│ ┌──────┐ ┌──────┐ ┌────────────┐ │
│ │ CPU │──▶│メモリ│ │ストレージ │ │
│ └──────┘ └──────┘ └────────────┘ │
│ │ │ │ │
│ └───────────┴────────────┘ │
│ │ │
│ バス(Bus) │
└─────────────────────────────────────────┘

プログラムの命令を実際に実行する「頭脳」にあたる部品。

  • 役割:計算・判断・制御
  • クロック周波数:1秒間に何回クロックを刻むかを示す(例:3GHz = 30億回/秒)
  • コア数:複数のコアがあると複数の処理を同時に行える(マルチコア)

CPUが行う基本動作は以下の3ステップの繰り返し。

フェッチ(Fetch) → 命令をメモリから取り出す
デコード(Decode) → 命令を解読する
実行(Execute) → 命令を実行する

プログラムが実行中に使うデータを一時的に保存する場所。

  • 特徴:高速だが、電源を切るとデータが消える(揮発性)
  • 役割:実行中のプログラムやデータを保持する
  • 容量の例:8GB、16GB、32GBなど
メモリのイメージ(各マスに1バイトのデータが入る)
アドレス データ
0x0000 01001000 ← 'H'
0x0001 01100101 ← 'e'
0x0002 01101100 ← 'l'
0x0003 01101100 ← 'l'
0x0004 01101111 ← 'o'

データを永続的に保存する場所。

種類特徴速度
HDD磁気ディスクに記録。大容量・安価遅い
SSDフラッシュメモリに記録。衝撃に強い速い
  • 電源を切ってもデータが消えない(不揮発性)
  • プログラムの実行時はストレージ → メモリへ読み込まれる
CPU レジスタ : ~0.3 ns (最速)
CPU キャッシュ: ~1-10 ns
メモリ(RAM) : ~100 ns
SSD : ~0.1 ms
HDD : ~10 ms (最遅)

プログラムが遅い場合、多くはメモリやディスクへのアクセスがボトルネックになっている。


コンピュータは電気信号の「オン(1)」と「オフ(0)」しか扱えない。そのため、すべてのデータは 2進数(Binary) で表される。

10進数2進数
00000
10001
20010
30011
40100
50101
81000
151111

変換の考え方(10進数 → 2進数)

13 ÷ 2 = 6 余り 1
6 ÷ 2 = 3 余り 0
3 ÷ 2 = 1 余り 1
1 ÷ 2 = 0 余り 1
余りを下から読む → 1101 ✓(13 = 1101₂)
単位読み方大きさ
bitビット0か1の1桁
Byteバイト8 bit
KBキロバイト1,024 Byte
MBメガバイト1,024 KB
GBギガバイト1,024 MB
TBテラバイト1,024 GB

2進数は桁数が多くなり読みにくいため、プログラミングでは 16進数 がよく使われる。

0〜9, A〜F の16種類の文字を使う(A=10, B=11, ... F=15)
2進数 : 1111 1111
10進数 : 255
16進数 : FF (プログラムでは 0xFF と書く)
2進数16進数
00000
00011
1010A
1111F

なぜ16進数が便利か? 4ビット = 16進数1桁に対応するため、変換が簡単。


コンピュータは文字も数値として扱う。「どの数値がどの文字か」を定めた規則が 文字コード

最初に普及した文字コード。128種類の文字を0〜127の数値で表す。

'A' → 65
'B' → 66
'a' → 97
'0' → 48
' ' → 32(スペース)

日本語を含む世界中の文字を扱える文字コード。Webや多くのシステムで標準。

'A' → 0x41 (1バイト)
'あ' → 0xE3 0x81 0x82(3バイト)
'😀' → 0xF0 0x9F 0x98 0x80(4バイト)

なぜ文字化けが起きるのか? 送り側と受け側で文字コードが異なる場合、「この数値はどの文字か」の解釈がずれるため文字化けが発生する。


4. OS(オペレーティングシステム)の役割

Section titled “4. OS(オペレーティングシステム)の役割”

OSは、ハードウェアとアプリケーションの間に立つソフトウェア。

┌────────────────────────┐
│ アプリケーション │ ← ブラウザ、エディタなど
├────────────────────────┤
│ OS(オペレーティング │ ← Windows、macOS、Linux
│ システム) │
├────────────────────────┤
│ ハードウェア │ ← CPU、メモリ、ストレージ
└────────────────────────┘

プロセス管理 複数のアプリを同時に動かせるよう、CPUの使用時間を切り替えながら管理する。

メモリ管理 各プログラムに必要なメモリを割り当て、互いに干渉しないよう管理する。

ファイルシステム ストレージ上のデータを「ファイル」「ディレクトリ(フォルダ)」という形で管理する。

デバイス管理 キーボード・マウス・プリンタなどの周辺機器を制御する。

セキュリティ・権限管理 ユーザーごとにアクセス権を管理し、不正なアクセスを防ぐ。


キーワード説明
CPU命令を実行する処理装置
メモリ(RAM)実行中データの一時保存場所(揮発性)
ストレージデータの永続保存場所(不揮発性)
2進数コンピュータが扱う0と1の数値体系
バイト8ビット。データ量の基本単位
UTF-8現在最も広く使われる文字コード
OSハードウェアとアプリの橋渡し役

演習問題 に取り組んで理解を確認しよう。

理解できたら 1-2. プログラムが動く仕組み へ進もう。