創作記念日:プロセスの概念、構成、特性、プロセスの基本的な状態、プロセスの切り替え、アトミック操作、プリミティブ、プロセス間通信の手法、共有バッファ、メッセージキューの本質、パイプ通信

 1. プロセスの概念

これら 3 つの QQ プロセスを区別するにはどうすればよいですか? 》OS は名前に加えて pid を使用してプロセスを一意に識別します

2. プロセスの構成 

PCB には、OS がプロセスを管理するときに役立つ情報が保存されます。

 PCB は OS によって使用されるデータ構造であり、プログラム セグメントとデータ セグメントはプロセス自体によって使用され、プロセスの存在を示す一意の識別子です。

PCB は OS カーネルに保存されます 

3. プロセスの特徴(理解)

 4. プロセスステータス 

 ブロッキング状態は、プロセスが積極的に CPU を放棄した状態です。

 ブロッキング状態は、他の実行リソースがないため、実行状態に直接変換できません。

レディ状態をブロッキング状態に直接変換することはできません。これには、プロセスが CPU を積極的に放棄する必要があり、レディ状態には CPU がないためです。では、どうすれば積極的に CPU を放棄できるでしょうか?

 プロセスの構成: さまざまな状態に応じて、さまざまなリンク リストでプロセスをハングします。

準備完了状態>実行状態: プロセスはスケジュールされています

実行状態 > ブロック状態: プロセスは、IO およびその他のリソースが CPU を積極的に放棄するのを待っています。

ブロック状態 > 準備完了状態: IO 処理が完了し、待機イベントが完了し、OS が準備完了状態 (パッシブ) に設定します。

実行状態 > 準備完了状態: プロセス タイム スライスが終了したか、他の優先度の高いプロセスによってプリエンプトされています。

5. プロセス切り替え

 プロセスのスケジュール設定プロセスが中断されないようにする方法

プリミティブは特別なカーネル プログラムであり、その本質は外部の影響を受けないように割り込みをオフにすることです。

プロセス制御(状態遷移)プロセスを一度に完了する必要がある 

割り込み特権命令を無効にする 

割り込みを実行した後、CPU は前の割り込み信号が処理されていないことを認識し、再度処理します。

主に次の内容が理解されます。

ジョブとは、まだディスク上にあり、メモリに書き込まれていないプログラムを指します。

起動後、プロセス起動をロードすることで他のプロセスが起動されますが、システム内のプロセスNo.0とNo.1が最上位プロセス、その他のプロセスがその子プロセスとなります。 

OS は、プロセスの PCB を通じて以前の実行環境を保存および復元します。

プロセス実行環境/プロセスコンテキスト(context)は、プロセス実行中にCPUレジスタに保持される中間結果です。

6. プロセス間通信の方法: 

 これは、セグメント テーブル/ページ テーブル エントリを追加することで実現できます。

  

プロセス Q のメッセージ キューは、プロセス Q の PCB にあります。これは、他のプロセスから Q プロセスに送信されたメッセージを表し、Q プロセスによって受け入れられる必要があります。

送信プリミティブ送信を実行した後、OS カーネルはメッセージを受信し、そのメッセージをプロセス Q のメッセージ キューにハングします。もう一度強調しておきますが、メッセージ キューはカーネル内にあります。

受信時はカーネル内のPCBにあるQのメッセージをトラバースし、Pから送信されたと判断した場合はreceiveを使用して受信します。

この直接通信方法: 送信と受信は名前によって行われます

プロセス A は、システム コールを通じてメールボックス A1 および A2 の OS に適用されます。

間接通信方式では、送信先のプロセスを指定せず、Aが申請したメールボックスに直接メッセージを投げ込みます。その際、QはAのメールボックスからメッセージを取得するように指定するだけです。

パイプ通信は、固定サイズのスペースを持つ循環キューであり、先着順です。データ フローは一方向であり、P から Q へのみ流れることができます。これは半二重通信方式であり、共有ストレージはランダム アクセスをサポートします。

スレッドがないと、QQ を使用して音楽を聴いたり、映画を見たり、チャットしたりすることは同時にできません。プロセスは一定期間に 1 つのことしか実行できず、一部のプロセスは同時に多くのことを実行する必要があるためです。スレッドは、プロセスの同時実行性を向上させるために導入されています。

各スレッドにはコードのコピーが 1 つあり、プロセスの 4 GB のスペースとリソースを共有します。

 

 

 

スレッド管理は、スレッド ライブラリを通じてユーザー プロセスによって管理されます。 

プロセス単位でのCPUの早期割り当て 

 

 

 

おすすめ

転載: blog.csdn.net/Tandy12356_/article/details/132508749