(Tang Xiaodan 版) 第 2 章 プロセスの記述と管理 マインドマップのレビュー
2. プロセスの説明と制御
2.1. プリカーサー図とプログラムの実行
プリカーサーマップ
-
- 有向非巡回グラフ。プロセス間の実行シーケンスを記述するために使用されます。
プログラムの実行
-
- プログラムはいくつかのプログラムセグメントで構成されており、これらのプログラムセグメントは一定の順序で実行される必要があり、前のプログラムが完了して初めて次のプログラムが実行されます。
- 特徴:
- 1. シーケンス
- 2. 閉店
- 3. 再現性
プログラムは同時に実行されます
-
- 条件: 先行関係がないプログラムのみを同時に実行できます。
- 特徴:
- 1.断続的
- 2. 閉鎖の喪失
- 3. 再現不可能性
2.2. プロセスの説明
プロセスの定義と特性
-
- 1. プロセスの定義
- プロセスはプログラムの実行プロセスであり、システムによるリソースの割り当てとスケジューリングのための独立した単位です。
- プロセス エンティティ (プロセス イメージ、プロセスと呼ばれる) は次のもので構成されます。
- 1. プログラムセグメント
- 2. 関連するデータセグメント
- 3. プリント基板(重要)
- 2. プロセスの特徴
- 1. ダイナミック
- プロセスは作成によって作成され、スケジュールによって実行され、キャンセルによって破棄されます。
- 2. 同時実行性
- 複数のプロセスがメモリ内に共存し、一定期間同時に実行できます。
- 3. 独立
- 独立して動作し、独立してリソースを取得し、独立してスケジューリングを受け付ける基本単位
- 4. 非同期性
- 独立した予測不可能な速度で前進する
- 1. ダイナミック
- 1. プロセスの定義
プロセスの基本的な状態と遷移
-
- プロセスの 3 つの基本状態
- 1.準備完了状態
- 2. 実行状況
- 3. ブロック状態
- プロセスの 3 つの基本状態間の遷移
- 3 つの基本的な状態遷移
- プロセスの 3 つの基本状態
-
- 作成状態と中止状態
- 作成と中止を追加した後の 5 つの基本状態の遷移
- 作成状態と中止状態
一時停止操作と状態遷移の処理
-
- サスペンド: マシンのリソースは限られており、リソースが不十分な場合、オペレーティング システムはメモリ内のプログラムを適切に配置します。一時停止されたプロセスとは、メモリから一時的に削除され、条件が許せばメモリに呼び戻されるプロセスを指します。
- 業務停止の導入 (1) エンドユーザーのニーズ。(2) 親プロセスのニーズ。(3) 負荷調整の必要性。(4) オペレーティング システムのニーズ。
- サスペンド操作 (実行準備完了ブロッキング) の導入後のプロセスの 3 つの基本状態間の切り替え
- アクティブレディ (スケジュール可能) --> スタティックレディ (スケジュール不可能)
- スタンバイ準備完了 --> アクティブ準備完了
- アクティブなブロック --> 静的なブロック
- ブロッキング待機のイベントが発生すると、静的ブロッキングから静的レディに変わります。
- 静的ブロック --> アクティブなブロック
- 一時停止後のプロセスの 5 つの基本状態間の移行を紹介します。
- 状態図
プロセス管理におけるデータ構造
-
- OSは、コンピュータ内のさまざまなリソース(ハードウェアや情報を含む)の使用と管理を容易にするために、それらを対応するさまざまなデータ構造に抽象化し、リソースを操作するためのコマンドのセットを提供し、ユーザーはこれらのデータ構造と操作コマンドを使用できます。実装の特定の詳細を気にせずに関連する操作を実行します。
- 1. OSのリソース管理やプロセス制御に使用されるデータ構造
- オペレーティング システムの制御テーブルの一般的な構造
-
-
-
- 1. メモリテーブル
- 2.装備表
- 3. ファイルテーブル
- 4. プロセステーブル(PCB)
-
- 2. PCBの役割
- PCB はシステム内にプロセスが存在することを示す唯一の兆候です
- 1. 自立運転の基本単位のシンボルとして
- 2. 間欠運転を実現する方法
- 3. 工程管理に必要な情報の提供
- 4. プロセスのスケジューリングに必要な情報を提供する
- 5. 他プロセスとの同期・通信を実現
- PCB はシステム内にプロセスが存在することを示す唯一の兆候です
- 3. PCB 内の情報
- 1. プロセス識別子
- プロセスを一意に識別する
- 2. プロセッサの状態
- これはプロセッサのさまざまなレジスタの内容で構成されており、プロセスが切り替えられると、プロセスが再スケジュールされたときにブレークポイントから実行を継続できるように、プロセッサの状態情報を対応する PCB に保存する必要があります。
- 3. プロセススケジュール情報
- オペレーティング システムは、プロセスをスケジュールするときにプロセス スケジューリングについて認識している必要があります。
- プロセス状態
- プロセスの優先順位
- プロセスのスケジュール設定に必要な追加情報
- イベント
- オペレーティング システムは、プロセスをスケジュールするときにプロセス スケジューリングについて認識している必要があります。
- 4. プロセス管理情報
- プログラムとデータのアドレス
- プロセスの同期と通信のメカニズム
- リソースリスト
- リンクポインタ
- 1. プロセス識別子
- 4. PCB の構成
- 直線的な道
- リンク方式
- インデックスメソッド
-
2.3. プロセス制御
プロセスの作成
-
- プロセス階層
- Unix 風のシステム
- プロセスを作成したプロセスを親プロセス、作成したプロセスを子プロセスと呼び、子プロセスは引き続きプロセスを作成することで、プロセスの階層を形成します。
- 子プロセスは、親プロセスが所有するリソースを継承できます。親プロセスがキャンセルされると、そのすべての子プロセスもキャンセルされる必要があります
- ウィンドウズ
- プロセス階層の概念はなく、すべてのプロセスは同等です
- プロセスが別のプロセスを作成した後、作成プロセスは、作成されたプロセスを制御するために使用できるハンドルを取得します。ハンドルを渡すことができます
- Unix 風のシステム
- プロセスツリー
- ブランチトピック
- プロセス階層
-
- プロセス作成の原因となるイベント
- ユーザーログイン
- ログイン システムが成功すると、システムはユーザーのプロセスを作成し、準備完了キューに入れます。
- ジョブのスケジュール設定
- ジョブを外部ストレージからメモリにロードし、それらのプロセスを作成します
- サービスを提供します
- ユーザーが印刷などのリクエストを行うと、システムはそれに応じた印刷プロセスを作成します。
- 申請リクエスト
- ユーザー自身がプロセスを作成する必要がある
- ユーザーログイン
- プロセスの作成
- 1. ブランク PCB を申請する
- 2. 新しいプロセスの実行に必要なリソースを割り当てます。
- 3. PCB を初期化する
- 4. レディキューが空いている場合は、新しいプロセスをキューに挿入します。
- プロセス作成の原因となるイベント
プロセスの終了
-
- ノーマルエンド
- 異常終了
- ブランチトピック
プロセスのブロックとウェイクアップ
-
- プロセスのブロックとウェイクアップを引き起こすイベント
- システムからの共有リソースの要求に失敗しました
- 操作が完了するまで待ちます
- 新しいデータが到着していません
- 新しいタスクの到着を待っています
- プロセスのブロックとウェイクアップを引き起こすイベント
プロセスの一時停止とアクティブ化
2.4、プロセス通信
プロセス通信の種類
-
- 共有メモリシステム
- 共有メモリ システムでは、通信プロセスが特定のデータ構造またはメモリ領域を共有し、プロセスが通信できるようになります。
- 共有データ構造に基づく通信方式
- 共有記憶領域を利用した通信方式
- 共有メモリ システムでは、通信プロセスが特定のデータ構造またはメモリ領域を共有し、プロセスが通信できるようになります。
- パイプライン通信システム
- いわゆる「パイプ」とは、読み取りプロセスと書き込みプロセスを接続して、両者間の通信を実現するために使用される共有ファイルを指し、パイプ ファイルとも呼ばれます。パイプライン (共有ファイル) に入力する送信プロセス (つまり、書き込みプロセス) は、大量のデータをバイト ストリームの形式でパイプラインに送信しますが、受信プロセス (つまり、読み取りプロセス) は、パイプラインに大量のデータをバイト ストリームの形式で送信します。パイプラインを受信するものは、パイプラインから )data を受信 (読み取り) します。
- メッセージングシステム
- フォーマットされたメッセージは、通信データをメッセージ内にカプセル化する単位として使用され、OS が提供する通信コマンド群 (プリミティブ) を使用してプロセス間でメッセージを送信し、プロセス間のデータ交換を完了します。現在最も広く使用されているタイプのプロセス通信メカニズム。
- クライアントサーバーシステム
- ソケット
- リモート プロシージャ コールとリモート メソッド コール
- リモート プロシージャ コールはローカル プロシージャ コールと同じように見え、呼び出し元は呼び出し元のプロシージャが別のホスト (リモート) で実行されているとは感じません。
- 共有メモリシステム
メッセージパッシング通信の実装
-
- 直接通信
- ダイレクトメッセージパッシングシステムでは、送信プロセスがOSが提供する送信コマンド(原始言語)を利用して対象プロセスに直接メッセージを送信するダイレクト通信方式が採用されています。
- 間接通信(メールボックス通信)
- ランダム アクセス メモリのパブリック バッファ上に確立され、送信プロセスからターゲット プロセスに送信されたメッセージを一時的に保存するために使用され、受信プロセスは送信プロセスによって自分に送信されたメッセージをこのエンティティから取り出すことができます。メッセージはメールボックスに安全に保管され、承認された対象ユーザーのみがいつでもメッセージを読むことができます。
- 直接通信
2.5、スレッドの概念
スレッドの紹介
-
- OS にプロセスを導入する目的は、複数のプログラムを同時に実行できるようにして、リソースの使用率とシステムのスループットを向上させることです。次に、OS にスレッドを導入すると、同時実行中のプログラムの時間とスペースのオーバーヘッドが削減され、OS の同時実行性が向上します。
- プロセスの 2 つの基本特性
- プロセスはリソースを所有できる独立した単位です
- プロセスは、独立してスケジュールおよびディスパッチできる基本単位でもあります。
- 従来の OS では、プロセスは独立したスケジューリングと割り当ての基本単位であるため、プロセスは独立して実行できる基本単位となります。スケジュールされるたびにコンテキストの切り替えが必要となり、オーバーヘッドが高くなります。
- 上記の欠点を解決するために、プロセスの 2 つの基本属性を分離し、OS によって個別に処理できます。つまり、スケジューリングと割り当ての基本単位をリソース所有権の基本単位としてみなしません。
スレッドとプロセスの比較
-
- スケジューリングの基本単位
- スレッドを導入したOSでは、スレッドをスケジューリングやディスパッチの基本単位として使用するため、スレッドは独立して動作できる基本単位となります。スレッドを切り替える際に保存・設定するレジスタ内容(リソース)は少量で済み、プロセスに比べて切り替えコストが大幅に低くなります。
- 同時実行性
- プロセスを同時に実行できるだけでなく、プロセス内の複数のスレッドを同時に実行したり、プロセス内のすべてのスレッドを同時に実行したりすることもできます。同様に、異なるプロセスのスレッドを同時に実行できます。
- 資源がある
- プロセスはリソースを所有でき、システム内のリソース所有権の基本単位として機能します。ただし、スレッド自体はシステム リソースを所有せず、独立した動作を保証できる少数の重要なリソースのみを所有します。複数のスレッドがプロセスが所有するリソースを共有できるようにします
- 独立
- プロセス高、スレッド低
- システムのオーバーヘッド
- スレッドのスイッチング コストもプロセスのスイッチング コストよりも大幅に低くなります。
- マルチプロセッサ システムのサポート
- マルチスレッド プロセスの場合、プロセス内の複数のスレッドを複数のプロセッサに割り当てて、並列実行することができます。
- スケジューリングの基本単位
スレッド状態とスレッド制御ブロック
-
- 3つの州
- 実行ステータス
- 準備完了状態
- ブロックされた状態
- スレッド制御ブロック TCB
- 3つの州
マルチスレッドOSにおけるプロセス属性
-
- プロセスはリソースを所有できる基本単位です
- 複数のスレッドを同時に実行可能
- プロセスは実行可能なエンティティではなくなりました
- マルチスレッドOSではスレッドを独立した動作(スケジューリング)の基本単位とみなします。この時点で、プロセスは基本的な実行可能エンティティではなくなります。いわゆるプロセスは「実行中」状態にあり、実際にはプロセス内のスレッドが実行中であることを意味します。
2.6. スレッドの実装
スレッドの実装
-
- カーネルサポートスレッド
- ユーザーレベルのスレッド
- 組み合わせ