概要
プロセスとスレッドについて、ChatGPT
に問ていて確認した。ただ、私の現在のIT知識では、その内容を理解しきれなかったので、ChatGPT
に確認しながら分かった内容をまとめる。
Chat GPTの説明
プロセスの説明
コンピュータ上で実行されるプログラムの実行単位を示す。プロセスは、メモリ空間やファイルハンドルなどのリソースを持ち、それらのリソースを利用してプログラムの実行を行う。プロセスは独立した実行環境を持ち、他のプロセスとは別々に実行される。また、プロセスはOSによって管理され、必要に応じて作成・終了・一時停止などの操作が行われる。
スレッドの説明
プロセスの中で実行される実行単位です。プロセス内に複数のスレッドを持つことができ、それらのスレッドは同じメモリ空間を共有する。スレッドは、同じプロセス内で共通のデータにアクセスできる為、プロセス内の処理を並列に実行することが可能となる。スレッドは軽量な実行単位であり、プロセス内での切り替えが比較的高速に行われる。
自身の解釈
プロセスの要約
- プロセスは、実行中のプログラムの事を示す
- プロセスAとプロセスBは、相互干渉する事ができない
- プロセスは、下記コマンドにて確認が可能
$ ps
# 出力結果(例)
PID TTY TIME CMD
420 pts/1 00:00:00 bash
532 pts/1 00:00:00 ps
スレッドの要約
- スレッドは、プログラム内で複数のタスクを同時に実行する為の仕組みを示す
- 最初に適切なスレッド数を予測して設定し、その後実際の負荷やパフォーマンスをモニタリングし、必要に応じてスレッド数を調整する
- スレッドは、どのプロセスでも動作する事が可能
- PCのメモリ容量やCPUによって、スレッドの作成数には限界がある為、プロセスを立ち上げ過ぎると処理が低下する
- スレッドは
linux
コマンドで状況を確認する事ができない
参考資料
感想
IT
関連に3年程関わっているが、今更プロセス
とスレッド
について触り程度だが理解した。インフラ関連の業務を行う事が多くなる為、この辺りも含めて今後は、幅広く理解していきたい。