プロセスの作成と終了

プロセスを作成します。

しかし、すべてのハードウェアは、オペレーティングシステムは、管理するために持っている必要があり、オペレーティング・システムの概念限り、プロセスがある、あなたがプロセスを作成する方法を持っている必要があり、そのような電子レンジのコントローラとして、一つだけのアプリケーション用に設計されたオペレーティングシステムの一部は、一度起動します電子レンジ、すべてのプロセスがすでに存在しています。

(多くのアプリケーションを実行している)一般的なシステムとして、あなたは、フォームが4分割され、主に、システムの動作中のプロセスを作成したり、失効させる能力を持っている必要があり、新しいプロセスを作成します。

  1. システムの初期化(psコマンドをLinuxでプロセスを見るには、タスクマネージャを使用してWindows、フォアグラウンドプロセスは、ユーザとの対話を担当して、ユーザーに関連するバックグラウンドで実行中のプロセスは、バックグラウンドで実行され、ウェイクアッププロセスを必要なときにだけ、デーモンと呼ばれます電子メール、Webページ、ニュース、プリント)として
  2. プロセスは、(例えば、マルチプロセス、os.fork、subprocess.Popen等nginxのオープンなど)動作中に子プロセスをオープン
  3. インタラクティブなユーザーの要求は、新しいプロセスを作成(ユーザーダブルSTORMなど)
  4. バッチの初期化動作(のみメインフレーム・バッチ・システム上のアプリケーション)

どちらにしても、新しいプロセスが作成された既存のプロセスによって呼び出されたプロセスを作成するためのシステムの実装で作成します。

1.1 UNIXおよびWindowsは、プロセスを作成します

  1. UNIXのシステムコールは次のとおりです。フォーク、フォークは、両方のコマンドを実行し、シェルインタプリタ処理(ファイルを開くには、同じメモリ・マップ、同じ環境と同じ文字列を持って、親プロセスの正確なコピーを作成します子プロセスを作成します)
  2. CreateProcessを、プロセスのCreateProcessを作成するプロセスの両方が、それはまた、新しいプロセスに正しいプログラムを担当します。システムがあるWindowsで呼び出します

子プロセスの作成について、UNIXおよびWindowsの場合:

  1. 同じである:プロセスは、作成された親と子プロセスは異なるアドレス空間(プロセスメモリ間の分離を達成するために、マルチチャネルの物理的なレベルのための技術要件を)持って、影響はありませんそのアドレス空間内の任意のプロセスを変更別のプロセス。
  2. 違いは次のとおりです:UNIXで、子プロセスの初期アドレス空間があることを示唆し、親プロセスのコピーである子と親プロセスが読み取り専用の共有メモリ領域を持つことができます。しかし、Windowsシステム用に、親プロセスのアドレス空間と子プロセスの最初から異なっています。

プロセスの第二に、終わり

  1. 正常終了(自発的、ユーザーがクリックはのExitProcessを使用してウィンドウで、出口Linuxで、正常終了のシステムコールを開始するために終了したインタラクティブページを横切る、またはプロシージャを呼び出す場合)
  2. エラー終了(自発的、 a.pyでPythonのa.py存在しません)
  3. 深刻なエラー(非自発的、など存在しないメモリへの参照、1/0、など違法な命令を実行するために、あなたがしようと、例外をキャッチすることができます... ...を除きます)
  4. (別のプロセスによって殺され、不随意例えばキルとして-9)

おすすめ

転載: www.cnblogs.com/nickchen121/p/11130239.html