• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:プロセスを生成や実行する時に内部でどんな処理が行われていますか?)

プロセスを生成や実行する時に内部でどんな処理が行われていますか?

このQ&Aのポイント
  • プロセスを生成や実行する際の内部処理について詳しく解説します。
  • 「Lions' Commentary on UNIX」という本を参考にしながらプロセスの実行について学んでいますが、理解が進まないです。
  • 具体的には、メモリへの実行ファイルのロードだけではプロセスは走らず、さまざまな操作が必要です。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

プロセスの新規生成とは、プロセスの各種情報をプロセス一覧表内のPCB(process control block)に書き込み、実行可能プロセスの待ち行列にほうりこむことです。ですので、それだけでは実行されません。 実行されたがっているプロセスはOS内にいくつもある可能性があるので、次に実際に実行されるのは待ち行列の先頭にあるプロセスです。新規のプロセスもいずれは先頭に来て実行されることになります。 行列の先頭プロセスが実行されるときには、OSはPCB内にある中断時のレジスタなどの情報を実際のレジスタに格納し、前回中断された場所にジャンプ(実際にはリターンですが)することにより、実行が再開されます。新規のプロセスであっても先頭から再開されることによって、実行開始となります。 プロセスは実行を開始しても、一定時間の経過、OSの呼出し、外部からの割込みなどの様々な原因で中断してしまい、場合によっては待ち行列の末尾に戻ります。

_comcom
質問者

お礼

どうもありがとうございます。 構造は理解できました。後はソースコードと 照らし合わせながら読んでみたいと思います。