プロセスとスレッド
luagate/process-thread-introプロセスとスレッド入門24 枚OS・Linux
上から下へ、全 24 枚そのまま並べています。
発表モードで開くプロセスとスレッド
目次
今日のゴール
この時間で身につけてほしいことです。
- プロセスが「動いているプログラム」だと分かる
- 複数の処理が同時に動いて見える理由を説明できる
- プロセスとスレッドの違いを区別できる
- マルチスレッドの利点をイメージできる
- 並行と並列の違いを説明できる
OSの役割(復習)
以前学んだOSは、コンピュータの資源を配る司令塔でした。今日の主役もこのOSです。
プロセス とは
プログラムが実際に動き出した状態のことを、プロセスと呼びます。
プロセスのイメージ
プログラムは設計図、プロセスはそれを実際に動かしている作業現場です。
第2部 同時に動いて見える仕組み
同時に動いて見える理由
CPUは一度に1つの処理しかできませんが、超高速で切り替えるので同時に見えます。
- CPU1つは本来1度に1つの処理しかできない
- それを目にも止まらぬ速さで切り替える
- 短い時間ずつ順番に各処理を進める
- 人の目には全部同時に見える
- パラパラ漫画が動いて見えるのと同じ
CPU割り当ての切り替え
OSは各処理に短い持ち時間を割り当て、順番に交代させています。
コンテキストスイッチ
処理を交代するとき、今の作業状態を保存して次の状態を読み込む動きです。
切り替えの流れ
OSが処理を交代させるときの一連の動きを、順番に追ってみましょう。
第3部 スレッド
スレッド とは
プロセスの中で動く、より細かい作業の流れのことです。
シングルスレッド と マルチスレッド
プロセスとスレッドの違い
どちらも処理の単位ですが、メモリの持ち方や独立性に違いがあります。
マルチスレッドの利点
複数の流れを同時に動かすことで、待ち時間を減らし反応をよくできます。
第4部 並行と並列
並行 と 並列 の違い
言葉は似ていますが、本当に同時かどうかが違います。
処理の終わる速さ(イメージ)
CPUを複数使って本当に同時に動かすほど、重い処理が早く終わる傾向があります。あくまでイメージです。
同時に動かすときの注意
同時に動かすと速くなる一方で、共有するデータの扱いには注意が要ります。
- 複数の流れが同じデータを触ると混乱しやすい
- 順番が前後して結果が変わることがある
- 切り替えのしすぎは逆に遅くなる
- 正しく動かすには取り合いの制御が要る
- この資源の取り合いは次回のテーマにつながる
振り返りクイズ
振り返りクイズ 解答
質疑・次回予告
今日のまとめと、次に学ぶテーマです。質問があればここで受け付けます。
"
プロセスは動いているプログラム、スレッドはその中の作業の流れ。OSが高速に切り替えるから、私たちには同時に動いて見える。並行と並列の違いも押さえて、OSのやりくりを味方につけましょう。