理論的知識プロセス
文化的背景
名前が示すように、継続的なプロセスソフトウェアプロセスです。プロセスは、実行中のプログラムを抽象化したものです。
コンセプトは、オペレーティングシステムのプロセスで生まれ、オペレーティングシステムの中核概念であり、最も古く、最も重要な抽象化の一つは、オペレーティングシステムがあります。他のすべてのオペレーティングシステムは、すべての展開の処理の概念を中心にしています。あなたが本当にプロセスを理解したいので、あなたは、まずオペレーティングシステムを理解する必要があります。参照は、ブログ入力します。
理論的基礎のお知らせ:
#オペレーティングシステムの役割: 1:良い抽象インタフェースを提供する隠し醜い複雑なハードウェア・インタフェース、 2:ハードウェアの競合管理、スケジューリング処理、および複数のプロセスが整然となり、 #以上の2つのチャネル技術: 1.背景:シングルコア、並行処理について PS: ホストは、現在、一般的に、マルチコア、各コアがマルチチャネル技術を使用するが、核と核との間のスイッチにマルチチャネル技術を使用せずに言うことです。 4つのCPU、IO操作遭遇した障害物がありますが、CPU1のプログラムで動作しているシステムのスケジューリング・アルゴリズムによって決定され、それは、の4つのCPUのいずれかに派遣され、再スケジューリングIOが終了するまで待機します。 時間(CPUの多重化タイムスライス)+空間多重化(例えば、複数のチャネルを同時にプログラムメモリ)に多重化2。
まず、プロセスは何ですか
プロセス:進行中のプロセス、またはタスク。ミッションは、CPUに責任があります。
例えば:( +)の同時達成するために、マルチチャネル、複数のプロセスを単球:
たとえば、あなたがCPUです、あなたは午後、夕食、洗濯、トイレなどで行うにはいくつかの仕事を持っています。しかし、それはすべてが午後に仕上がっ(およびCPUのみ、同時に一つのことを行うことができます)ことが不可欠である、そしてどのように我々はそれの効果を達成するために、複数のタスクの同時実行を行うことができますか?だから、ご飯を待っていることはあなたが服を洗うために行くことができる調理しながら、あなたがこれを行う必要があり、あなたはまず、調理することができ、お米を洗ってはほとんどそれを調理され、その後、あなたはトイレの事に行くことができます。
第二に、プロセスおよび手順の間の差
プログラムコードのちょうど束であるが、むしろプロセスは、プログラムを実行するプロセスを指し
同プログラムは、彼らが同じソフトウェアですけれども、そのようなログインQQとして、プロセスであること、2回使用されていますが、ビデオチャットは、あなたがスペースを訪れることができます。ことが強調されます。
第三に、並行性と並列性
並行性:単一のCPU、より複雑なプロセス
並列または同時のいずれかを、ユーザーがそれをプロセスまたはスレッドであるかどうか、実行中の「ながら」ように見える、ただ一つのタスクは、実際の作業は、CPU、これらのタスクを実行するCPU、同時に一方で、CPUのみですタスクを実行します
同時実行:擬似的な並列、同時に実行されているように見えます。CPU +単一のマルチチャンネル技術は、同時に達成することができる(また、同時平行)
1あなたはまた、恋に仕事することができ、それぞれが3人のガールフレンド、の話、再生したいCPUは、2効果同時愛これらの3つのタスクによって共有されている、あなたは彼のガールフレンドと話をする3 1、外出先でなければなりませんです映画、言うべき瞬間:まあ、私は下痢にしたい、そして第二のガールフレンドとディナーに行き、1が言う食べる:で取得し、I 4トイレに行く、その後、彼のガールフレンドと一緒に行きましたが3部屋を開設しました
平行マルチCPU(同時に実行、並列CPUの複数のみ達成することができます)
核シングル、マルチチャネル技術を利用することができる、複数のコアは、各コアは、(マルチチャンネル技術を使用してもよい単核用語のマルチチャネル・テクノロジー)
4つのコア六のタスクはそれぞれ、CPU1、CPU2、CPU3、CPU4に割り当てられていると仮定すると、これと同時に実行される4つのタスクがあり、そこです、
タスク1出会いI / Oを割り込み実行することを余儀なくされた後は、タスクは、単一の核のマルチチャネル技術で実行するための5 CPU1のタイムスライスを取得します
タスク1 I / Oが終了すると、オペレーティングシステムは(それを思い出しますスケジューリングは、CPU、オペレーティングシステムによって、最終的な決定権を実行するために割り当てられているプロセスを、知っている)、それは、一度に4つのCPUのいずれかに割り当てることができます実行
すべての現代のコンピュータは、多くの場合(シングルまたはマルチCPU CPUかどうか)、同時に、ユーザのPCに多くのことを行う、(タスクは、プロセスとして理解することができる)複数のタスクを実行することができます。
マルチチャネル・テクノロジー:(S)プログラムは、CPUが迅速別のプロセスからの切り替えと同時に、メモリに格納されたマルチチャネルので、各プロセスは、それぞれ数十または数百ミリ秒、ように実行した瞬間に、CPUものの1つのタスクのみを実行することができるが、1秒、CPU内しかし錯覚が平行を生じ、その擬似同時並行してオペレーティングシステム真のハードウェアマルチプロセッサを区別するために、(複数を与える複数のプロセスを実行することができCPU)は、同じ物理メモリを共有します
第四に、同期および非同期
同期実行:タスクを実行するとき、プロセスは、別のプロセスが順序の実装を続行するには、その実施の完了を待つ必要があります
非同期実行を:私たちが実行し続けることができ、プロセスが終了し、別のプロセスを待たずに、タスクを実行するとき、メッセージが返された場合、システムは、効率を向上させることができ、後者のプロセスを、通知します
例えば、同期通信は、非同期通信と呼ばれるときにショートメッセージが送信されるとき、あります。
5、プロセス
しかし、すべてのハードウェアは、オペレーティングシステムのニーズがある限り、オペレーティングシステムの概念は、プロセスがあるとして、あなたがプロセスを作成する方法を持っている必要があり、管理しなければならないし、そのようなコントローラオーブン電子レンジなど一つだけのアプリケーション用に設計されたいくつかのオペレーティングシステムは、一度起動します電子レンジ、すべてのプロセスがすでに存在しています。
(多くのアプリケーションを実行している)一般的なシステムとして、あなたは主にフォームで、システムの動作中のプロセスを作成したり、失効させる能力を持っている必要が4分割され、新しいプロセスを作成します
1.システム初期化(と呼ばpsコマンドでlinux、タスクマネージャを使用してWindows、ユーザーとの対話を担当するフォアグラウンド・プロセス、ユーザーに関係なく、バックグラウンドで実行中のプロセス、バックグラウンドで実行され、唯一の必要なウェイクアッププロセスとプロセスを参照してください電子メール、Webページ、ニュース、印刷)などのデーモン、
2. A処理(等nginxのオープンマルチプロセス、os.fork、subprocess.Popen、として)動作中に子プロセスをオープン
3.ユーザ対話を要求し、新しいプロセスを作成する(例えば、ユーザ二STORMとして)
4.バッチジョブを初期化する(メインフレーム・バッチシステムにおけるアプリケーションのみ)
いずれかの方法で、新しいプロセスが作成された既存のプロセスによって呼び出されたプロセスを作成するためのシステムの実装です作成します。
フォークは、親プロセスの正確なコピーを作成し、フォーク、両方の、シェルインタプリタ処理(ファイルを開くには、実行を同じメモリ・マップ、同じ環境と同じ文字列を持っている:1でUNIXシステムコールがありますコマンドは、子プロセスを作成します)
システムコールのウィンドウ2.次のとおりです。CreateProcessを、両方のプロセスのCreateProcessを作成するプロセスは、それはまた、新しいプロセスに正しいプログラムを担当しています。
約子プロセスを作成、UNIXおよびWindows
1.同じである:プロセスは親プロセスと子プロセスは異なるアドレス空間(持って、作成されたプロセスメモリ間の分離を達成するための物理レベルのためのマルチチャネル技術要件を)、プロセスがそのアドレス空間のいずれかを変更するにはしません他のプロセスに影響を与えます。
2.違いがある:子と親プロセスが読み取り専用にしていることができ、共有メモリ領域を:UNIXで、子プロセスの初期アドレス空間があることを示唆し、親プロセスのコピーです。しかし、Windowsシステム用に、親と子プロセスのアドレス空間の最初から異なっています。
6つのプロセスを終了
1.正常終了(自発的、ユーザーがクリックはのExitProcessを使用してウィンドウで、出口Linuxで、正常終了のシステムコールを開始するために終了したインタラクティブページを横切る、またはプロシージャを呼び出す場合)
2.エラー終了(a.pyで自発的、Pythonのa.pyが存在しません)
3.深刻なエラー(不随意、あなたは...のtry ... except、例外をキャッチすることができますなど存在しないメモリ、1/0、への参照として、違法な命令を実行します)
4.別のプロセスによって殺された(非自発的、などのkill -9)
階層VIIプロセス
かどうか、UNIXまたはことを除いて窓、唯一の親プロセス、:
1. UNIXのすべてのプロセスは、初期化プロセスに基づいている根、木構造の組成物です。親と子供が一緒に信号がキーボードから送信された場合、信号は、キーボードの現在のプロセスに関連付けられているグループのすべてのメンバーに送信されるように、プロセスのグループを形成します。
2. Windowsでは、プロセス階層の概念がない、すべてのプロセスが唯一の同様のプロセス階層が示すように同じ状態です、あなたが作成したときに、ある、親プロセス(特殊なトークンを取得するためのハンドルと呼ばれるが)、ハンドルは子供を制御するために使用することができますが、親はそういないレベルのことを、他のサブプロセスへのハンドルを渡しする権利を有します。
8、プロセスの状態
テール-fのaccess.log | grepを '404'
テールgrepの入力の結果として、通信|「」プログラム尾の実行は、2つのプロセス間のパイプラインに基づいて、別の子プロセスを開いて、子プロセス、プログラムのgrepの実装を開きます。
grepのプロセス(すなわちI / O)ブロックと呼ばれている入力を待って、その後のgrepコマンドを実行することはできませんしながら、
実際には、両方のケースでは、ロジック上では実行されませんプロセスにつながります、
1.プロセスを一時停止すると、そのCPUが働いていることを確認してください、彼らは他のプロセスを実行するためにCPUを聞かせしたい出会いI / Oがブロックされ、独自の理由から、あります
2.何もプロセスがあまりにも多くの時間を取る、または優先順位の理由、およびCPUを使用するために他のプロセスを呼び出す可能性があるため、プロセス、オペレーティングシステムレベルで行うありません。
このように三つの状態のプロセス
九、現象によって複雑なプロセス
表プロセス(プロセス・テーブル)は、各プロセスがプロセス・テーブルを占有することを、実行中のプロセスハードウェア割り込みは、この時点で実行中のすべてのプロセスの状態の保存は、この目的のために、オペレーティングシステムはテーブルを維持することを並行処理を実現アイテム(またエントリプロセス制御ブロックとも呼ばれます)
文化的背景
名前が示すように、継続的なプロセスソフトウェアプロセスです。プロセスは、実行中のプログラムを抽象化したものです。
コンセプトは、オペレーティングシステムのプロセスで生まれ、オペレーティングシステムの中核概念であり、最も古く、最も重要な抽象化の一つは、オペレーティングシステムがあります。他のすべてのオペレーティングシステムは、すべての展開の処理の概念を中心にしています。あなたが本当にプロセスを理解したいので、あなたは、まずオペレーティングシステムを理解する必要があります。参照は、ブログ入力します。
理論的基礎のお知らせ:
#オペレーティングシステムの役割: 1:良い抽象インタフェースを提供する隠し醜い複雑なハードウェア・インタフェース、 2:ハードウェアの競合管理、スケジューリング処理、および複数のプロセスが整然となり、 #以上の2つのチャネル技術: 1.背景:シングルコア、並行処理について PS: ホストは、現在、一般的に、マルチコア、各コアがマルチチャネル技術を使用するが、核と核との間のスイッチにマルチチャネル技術を使用せずに言うことです。 4つのCPU、IO操作遭遇した障害物がありますが、CPU1のプログラムで動作しているシステムのスケジューリング・アルゴリズムによって決定され、それは、の4つのCPUのいずれかに派遣され、再スケジューリングIOが終了するまで待機します。 時間(CPUの多重化タイムスライス)+空間多重化(例えば、複数のチャネルを同時にプログラムメモリ)に多重化2。
まず、プロセスは何ですか
プロセス:進行中のプロセス、またはタスク。ミッションは、CPUに責任があります。
例えば:( +)の同時達成するために、マルチチャネル、複数のプロセスを単球:
たとえば、あなたがCPUです、あなたは午後、夕食、洗濯、トイレなどで行うにはいくつかの仕事を持っています。しかし、それはすべてが午後に仕上がっ(およびCPUのみ、同時に一つのことを行うことができます)ことが不可欠である、そしてどのように我々はそれの効果を達成するために、複数のタスクの同時実行を行うことができますか?だから、ご飯を待っていることはあなたが服を洗うために行くことができる調理しながら、あなたがこれを行う必要があり、あなたはまず、調理することができ、お米を洗ってはほとんどそれを調理され、その後、あなたはトイレの事に行くことができます。
第二に、プロセスおよび手順の間の差
プログラムコードのちょうど束であるが、むしろプロセスは、プログラムを実行するプロセスを指し
同プログラムは、彼らが同じソフトウェアですけれども、そのようなログインQQとして、プロセスであること、2回使用されていますが、ビデオチャットは、あなたがスペースを訪れることができます。ことが強調されます。
第三に、並行性と並列性
並行性:単一のCPU、より複雑なプロセス
並列または同時のいずれかを、ユーザーがそれをプロセスまたはスレッドであるかどうか、実行中の「ながら」ように見える、ただ一つのタスクは、実際の作業は、CPU、これらのタスクを実行するCPU、同時に一方で、CPUのみですタスクを実行します
同時実行:擬似的な並列、同時に実行されているように見えます。CPU +単一のマルチチャンネル技術は、同時に達成することができる(また、同時平行)
1あなたはまた、恋に仕事することができ、それぞれが3人のガールフレンド、の話、再生したいCPUは、2効果同時愛これらの3つのタスクによって共有されている、あなたは彼のガールフレンドと話をする3 1、外出先でなければなりませんです映画、言うべき瞬間:まあ、私は下痢にしたい、そして第二のガールフレンドとディナーに行き、1が言う食べる:で取得し、I 4トイレに行く、その後、彼のガールフレンドと一緒に行きましたが3部屋を開設しました
平行マルチCPU(同時に実行、並列CPUの複数のみ達成することができます)
核シングル、マルチチャネル技術を利用することができる、複数のコアは、各コアは、(マルチチャンネル技術を使用してもよい単核用語のマルチチャネル・テクノロジー)
4つのコア六のタスクはそれぞれ、CPU1、CPU2、CPU3、CPU4に割り当てられていると仮定すると、これと同時に実行される4つのタスクがあり、そこです、
タスク1出会いI / Oを割り込み実行することを余儀なくされた後は、タスクは、単一の核のマルチチャネル技術で実行するための5 CPU1のタイムスライスを取得します
タスク1 I / Oが終了すると、オペレーティングシステムは(それを思い出しますスケジューリングは、CPU、オペレーティングシステムによって、最終的な決定権を実行するために割り当てられているプロセスを、知っている)、それは、一度に4つのCPUのいずれかに割り当てることができます実行
すべての現代のコンピュータは、多くの場合(シングルまたはマルチCPU CPUかどうか)、同時に、ユーザのPCに多くのことを行う、(タスクは、プロセスとして理解することができる)複数のタスクを実行することができます。
マルチチャネル・テクノロジー:(S)プログラムは、CPUが迅速別のプロセスからの切り替えと同時に、メモリに格納されたマルチチャネルので、各プロセスは、それぞれ数十または数百ミリ秒、ように実行した瞬間に、CPUものの1つのタスクのみを実行することができるが、1秒、CPU内しかし錯覚が平行を生じ、その擬似同時並行してオペレーティングシステム真のハードウェアマルチプロセッサを区別するために、(複数を与える複数のプロセスを実行することができCPU)は、同じ物理メモリを共有します
第四に、同期および非同期
同期実行:タスクを実行するとき、プロセスは、別のプロセスが順序の実装を続行するには、その実施の完了を待つ必要があります
非同期実行を:私たちが実行し続けることができ、プロセスが終了し、別のプロセスを待たずに、タスクを実行するとき、メッセージが返された場合、システムは、効率を向上させることができ、後者のプロセスを、通知します
例えば、同期通信は、非同期通信と呼ばれるときにショートメッセージが送信されるとき、あります。
5、プロセス
しかし、すべてのハードウェアは、オペレーティングシステムのニーズがある限り、オペレーティングシステムの概念は、プロセスがあるとして、あなたがプロセスを作成する方法を持っている必要があり、管理しなければならないし、そのようなコントローラオーブン電子レンジなど一つだけのアプリケーション用に設計されたいくつかのオペレーティングシステムは、一度起動します電子レンジ、すべてのプロセスがすでに存在しています。
(多くのアプリケーションを実行している)一般的なシステムとして、あなたは主にフォームで、システムの動作中のプロセスを作成したり、失効させる能力を持っている必要が4分割され、新しいプロセスを作成します
1.システム初期化(と呼ばpsコマンドでlinux、タスクマネージャを使用してWindows、ユーザーとの対話を担当するフォアグラウンド・プロセス、ユーザーに関係なく、バックグラウンドで実行中のプロセス、バックグラウンドで実行され、唯一の必要なウェイクアッププロセスとプロセスを参照してください電子メール、Webページ、ニュース、印刷)などのデーモン、
2. A処理(等nginxのオープンマルチプロセス、os.fork、subprocess.Popen、として)動作中に子プロセスをオープン
3.ユーザ対話を要求し、新しいプロセスを作成する(例えば、ユーザ二STORMとして)
4.バッチジョブを初期化する(メインフレーム・バッチシステムにおけるアプリケーションのみ)
いずれかの方法で、新しいプロセスが作成された既存のプロセスによって呼び出されたプロセスを作成するためのシステムの実装です作成します。
フォークは、親プロセスの正確なコピーを作成し、フォーク、両方の、シェルインタプリタ処理(ファイルを開くには、実行を同じメモリ・マップ、同じ環境と同じ文字列を持っている:1でUNIXシステムコールがありますコマンドは、子プロセスを作成します)
システムコールのウィンドウ2.次のとおりです。CreateProcessを、両方のプロセスのCreateProcessを作成するプロセスは、それはまた、新しいプロセスに正しいプログラムを担当しています。
約子プロセスを作成、UNIXおよびWindows
1.同じである:プロセスは親プロセスと子プロセスは異なるアドレス空間(持って、作成されたプロセスメモリ間の分離を達成するための物理レベルのためのマルチチャネル技術要件を)、プロセスがそのアドレス空間のいずれかを変更するにはしません他のプロセスに影響を与えます。
2.違いがある:子と親プロセスが読み取り専用にしていることができ、共有メモリ領域を:UNIXで、子プロセスの初期アドレス空間があることを示唆し、親プロセスのコピーです。しかし、Windowsシステム用に、親と子プロセスのアドレス空間の最初から異なっています。
6つのプロセスを終了
1.正常終了(自発的、ユーザーがクリックはのExitProcessを使用してウィンドウで、出口Linuxで、正常終了のシステムコールを開始するために終了したインタラクティブページを横切る、またはプロシージャを呼び出す場合)
2.エラー終了(a.pyで自発的、Pythonのa.pyが存在しません)
3.深刻なエラー(不随意、あなたは...のtry ... except、例外をキャッチすることができますなど存在しないメモリ、1/0、への参照として、違法な命令を実行します)
4.別のプロセスによって殺された(非自発的、などのkill -9)
階層VIIプロセス
かどうか、UNIXまたはことを除いて窓、唯一の親プロセス、:
1. UNIXのすべてのプロセスは、初期化プロセスに基づいている根、木構造の組成物です。親と子供が一緒に信号がキーボードから送信された場合、信号は、キーボードの現在のプロセスに関連付けられているグループのすべてのメンバーに送信されるように、プロセスのグループを形成します。
2. Windowsでは、プロセス階層の概念がない、すべてのプロセスが唯一の同様のプロセス階層が示すように同じ状態です、あなたが作成したときに、ある、親プロセス(特殊なトークンを取得するためのハンドルと呼ばれるが)、ハンドルは子供を制御するために使用することができますが、親はそういないレベルのことを、他のサブプロセスへのハンドルを渡しする権利を有します。
8、プロセスの状態
テール-fのaccess.log | grepを '404'
テールgrepの入力の結果として、通信|「」プログラム尾の実行は、2つのプロセス間のパイプラインに基づいて、別の子プロセスを開いて、子プロセス、プログラムのgrepの実装を開きます。
grepのプロセス(すなわちI / O)ブロックと呼ばれている入力を待って、その後のgrepコマンドを実行することはできませんしながら、
実際には、両方のケースでは、ロジック上では実行されませんプロセスにつながります、
1.プロセスを一時停止すると、そのCPUが働いていることを確認してください、彼らは他のプロセスを実行するためにCPUを聞かせしたい出会いI / Oがブロックされ、独自の理由から、あります
2.何もプロセスがあまりにも多くの時間を取る、または優先順位の理由、およびCPUを使用するために他のプロセスを呼び出す可能性があるため、プロセス、オペレーティングシステムレベルで行うありません。
このように三つの状態のプロセス
九、現象によって複雑なプロセス
表プロセス(プロセス・テーブル)は、各プロセスがプロセス・テーブルを占有することを、実行中のプロセスハードウェア割り込みは、この時点で実行中のすべてのプロセスの状態の保存は、この目的のために、オペレーティングシステムはテーブルを維持することを並行処理を実現アイテム(またエントリプロセス制御ブロックとも呼ばれます)