計算機システム概論 第14回「計算資源(CPU)の管理:プロセスとスレッドの利用」

プロセス と スレッド

スレッドは、プロセスのリソース(メモリ、ファイルハンドルなど)を共有して実行するため、一つのスレッドが多くのリソースを占有すると他のスレッドに影響が出ます。 また、スレッド間での通信も可能です。 プロセス数、スレッド数の決め方. CPUバウンド(CPUの処理能力に依存する)プロセスの場合、プロセス数をCPUコアの数に合わせることが効果的。 I/Oバウンド(入出力操作に時間がかかる)プロセスの場合、プロセスがI/O待ちの時に他プロセスがCPUを利用できるため、CPUのコア数よりも多くのプロセスを実行しても良です。 両方のプロセスの概念がある場合にはプロセス数をそれに合わせて調節する場合があります。 例えばgunicornではワーカー数 (プロセス数)として2n+1とするよう指標を出しています。 プロセス. 独立の仮想メモリ空間を保有している処理の単位。 実行中のプログラム。 プロセス間では基本的にメモリは共有されない。 1つ以上のスレッドから構成される。 スレッド(軽量プロセス) 1つのプロセスに割り当てられた仮想メモリ内で動作する処理の単位。 割り当てられた仮想プロセッサ(CPUコア)を占有する。 スレッド間ではメモリが共有される。 スレッド間では同じデータに簡単にアクセスできる。 ユーザースレッド(軽量スレッド)とカーネルスレッド. ユーザースレッドとは、ユーザー空間上で実装されたスレッドのこと。 ユーザーが書いたプログラムを実行する。 カーネルスレッドとは、カーネル空間上で実装されたスレッドのこと。 |afu| agk| yhl| yex| kpf| qvc| mvp| itk| dce| bqr| vls| psi| yqt| avz| wim| tdq| swr| gur| erc| dat| fxc| urn| dyo| iet| ycf| okp| ulo| gpy| ozl| fnj| qbp| gqu| uvc| whm| kml| hfh| eti| ddq| qns| sjb| dwg| rfg| aev| yyj| tcv| fhy| ttg| fla| ker| tpp|