WEBブラウザのプロセスについて(1)

2024/06/08に公開

概要

WEBブラウザを起動するとプロセスが生成される。プロセスの生成や終了はOSが行っている。
ブラウザがどうやって動いているのかよく分かっていないので、調査したことをメモ。

結論

  • 最近のWebブラウザはマルチプロセス(Chromeもマルチプロセス)
  • マルチプロセスの利点はメモリ空間を分けていることで他のプロセスに影響を与えないことと、セキュリティの向上
  • Chromeの場合はメインプロセス(ブラウザプロセス)が一番上にあり、その下にレンダープロセス・ユーティリティプロセス・GPUプロセス・プラグインプロセスが存在する
  • それぞれのプロセスは分かれている(PIDも別)
  • プロセスはマルチスレッドを利用している

プロセスって何だっけ

プログラムを立ち上げると生成されるもの。タスクマネージャを起動すると生成されたプロセスが見れる。Macの場合はpsコマンドでも見れる。
プロセスを使ってプログラムを管理することで、権限管理を行いセキュリティを向上する・メモリ空間を分けて安全性を高めるなどの効果がある。

マルチプロセスとは?

マルチプロセスとは名前の通り、ひとつのプログラムを起動したときに複数のプロセスが生成されるアーキテクチャ。昔はシングルプロセスが一般的だったらしい。
マルチプロセスになってからは特定のタブがクラッシュしても他のタブに問題がなければブラウザは問題なく動くようになった。

Chromeのプロセスの作り

まとめ

近代のブラウザはマルチプロセスになっており、タブを開くとその分プロセスも生成される。これがメモリを圧迫しがちだが、マルチプロセスのおかげでタブがひとつ死んでもブラウザ自体は動くことが多い(完全にフリーズしてダメなことも多いけど)。

参考:https://thiluxan.medium.com/how-web-browsers-use-process-threads-a5e560d42037

Discussion