0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【初心者向け】CPU の動作モデル【5分で読める】

Last updated at Posted at 2025-02-19

CPU の動作モデル

理解のために小咄形式でまとめました。

登場人物

  • 太郎(後輩):入社1年目の若手エンジニア。
  • 花子(先輩):システムエンジニア歴3年の先輩。

場面:オフィスの開発ルーム
太郎が CPU の動作モデル に関する資料を見ながら、花子に質問する。

太郎:「花子先輩、CPU の動作 って、 具体的にどんな仕組みで動いているのか いまいちピンとこないんです…。」

花子:「なるほどね。CPU の動作原理をシンプルなモデルで考える ことが パフォーマンスを理解する鍵 になるわ。 3つの重要な要素 に分けて説明するわね。」


CPU の動作モデル

花子:「CPU の動作モデル を理解するために、 3 つの主要なコンセプト を押さえておくことが大切よ。」

  1. CPU のアーキテクチャ
  2. CPU のメモリキャッシュ
  3. CPU のランキュー(Run Queue)

1. CPUのアーキテクチャ

花子:「まず CPU のアーキテクチャ について説明するわね。」

  • CPU は 1 つ以上のコア を持ち、それぞれ 複数のハードウェアスレッド を持つことがある。
  • 例えば、4 コアの CPU各コアが 2 つのハードウェアスレッドを持つ 場合、 8 つの論理 CPU として OS から見える。
  • OS はこの 論理 CPU に対してプロセスやスレッドをスケジューリングする。

「これは キッチンのシェフ みたいなもので、 1 人のシェフ(コア)が 2 つの手(スレッド)を使って料理する のと同じね。」

太郎:「なるほど! ハードウェアスレッドの数だけ並行処理ができる んですね!」


2. CPUのメモリキャッシュ

花子:「次に、CPU のメモリキャッシュ について話すわ。」

  • CPU は、メモリアクセスを高速化するために キャッシュ を持っている。
  • キャッシュは L1, L2, L3 の 3 段階に分かれていて、 L1 が最も高速でサイズが小さく、L3 が最も遅くてサイズが大きい
  • CPU がデータを取得するときは、まず L1 → L2 → L3 → メインメモリ(RAM) の順で探索する。
  • キャッシュミスが発生すると、より下層のキャッシュやメモリへのアクセスが発生し、遅延が増加する。

「これは 冷蔵庫と食材の保管場所 みたいなもので、 L1 キャッシュはすぐ手の届く調味料、L2 は冷蔵庫、L3 は倉庫 のようなイメージよ。」

太郎:「つまり、L1 にデータがあれば超高速だけど、メインメモリに行くと遅くなる ってことですね!」


3. CPUのランキュー(Run Queue)

花子:「最後に、CPU のランキュー について話すわ。」

  • CPU のランキューは、CPU の処理待ちキュー のこと。
  • OS のスケジューラは、各スレッドを論理 CPU に割り当てるためにランキューを管理 する。
  • ランキューが 長くなると CPU の待ち時間が増え、システムのレスポンスが悪化する
  • 例えば、top コマンドload average を見れば、 ランキューの混雑度 を確認できる。

「これは レストランのオーダーキュー みたいなもので、 待ち行列が長くなると料理が出てくるのが遅くなる のと同じよ。」

太郎:「なるほど! CPU がすぐに処理できないと、ランキューにたまって遅くなる んですね!」


花子:「これらの CPU の動作モデルレストランのオペレーション に例えると、こんな感じね。」

  1. CPU のアーキテクチャレストランのシェフとキッチンの数

    • シェフ(コア)が多いほど、同時に多くの料理が作れる。
    • シェフが2つの手(スレッド)を使うことで、効率よく作業できる。
  2. CPU のメモリキャッシュ冷蔵庫と食材の配置

    • 手元にある調味料(L1 キャッシュ)が最も早い。
    • 冷蔵庫(L2 キャッシュ)まで行くと少し遅い。
    • 倉庫(L3 キャッシュ)に取りに行くと、時間がかかる。
  3. CPU のランキュー注文の待ち行列

    • キッチンがフル稼働でも、オーダーが多すぎると待ち時間が発生する。
    • 注文(タスク)が増えすぎると、店全体の回転率が悪くなる。

太郎:「めちゃくちゃ分かりやすいです! CPU の負荷が高くなると、キューが詰まってシステムが遅くなる仕組み がよく分かりました!」


まとめ

花子:「CPU の 動作モデル を理解すると、 システムのパフォーマンスを分析するときに、どこがボトルネックになっているのかを把握しやすくなる わ。」

太郎:「ありがとうございます! `top コマンドや htop で、ランキューの状態を確認してみます!」

参考リンク

システムパフォーマンス関連記事の目次

システムパフォーマンス関連記事は、以下の書籍を参考に記述しています。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?