• Skip to main content
  • Skip to primary sidebar

bloggggggggggggggg

// コードと趣味の境界線上

マルチタスクとプロセス管理の哲学 — スレッドモデルの違い

「Windowsは重い」「Macは安定してる」「Linuxは軽い」——この感覚の違い、カーネルのプロセス管理方式に端を発してる。OSの「頭脳」であるスケジューラとプロセス管理の思想を比べてみる。

Windowsのスケジューラは「対話的操作の快適さ」を重視。マウスを動かしたりウィンドウをドラッグしたりする操作に、高い優先度が割り当てられる。だからCPUが100%でもウィンドウ操作が引っかからない。その代わり、バックグラウンド処理の効率は落ちる。

プロセス管理の比較:

Windows macOS Linux
プロセス生成 CreateProcess(重い) fork + exec(軽い) fork + exec(最軽量)
スレッド ネイティブスレッド Grand Central Dispatch pthreads
優先度制御 GUI操作最優先 省電力+レスポンス 完全制御可能(nice, cgroups)
コンテナ Hyper-V上 Hypervisorフレームワーク ネイティブ(cgroup + namespace)

Linuxのプロセス生成は異常に軽い。`fork()`はプロセスを丸ごとコピーせず、CoW(Copy-on-Write)で必要な部分だけ複製する。だからDockerのコンテナ起動が一瞬。WindowsのCreateProcessはこれに比べるとかなり重い。

macOSのGrand Central Dispatch(GCD)は、開発者がスレッドを意識せずに並列処理を書ける仕組み。キューにタスクを投げればOSが最適なスレッド数で実行してくれる。このおかげでMacアプリはマルチコアを自然に活用できる。

サーバー用途ならLinuxのプロセス管理が最強。cgroupsでCPUやメモリを厳密に制限できる。DockerがLinuxで生まれたのは必然だった。

← コマンドライン環境 — PowerShell vs zsh vs bash
各OSのアップデート戦略を比較する — 再起動の頻度と強制度 →

Primary Sidebar

最近の投稿

  • インフラエンジニアのキャリアパス — 手動運用からSREへ
  • 障害対応の心得 — 本番で焦らないために
  • 監視設計の基本 — 何をどう見るべきか
  • ログ管理 — ELKスタック入門
  • HTTPSと証明書管理 — Let’s Encryptの恩恵を最大限に

アーカイブ

  • May 2026

カテゴリー

  • AI
  • Linux
  • OS
  • Windows
  • インフラ・DevOps
  • おうちサーバー
  • サーバー・インフラ
  • ツール・環境
  • プログラミング
  • 未分類
  • 開発哲学

最近のコメント

No comments to show.

© 横山鉄工所 & まめたろう重工