HUST OS 4.5オペレーティング同期と[PV]セルフノート

著作権:学習は、非常に多くのルールが存在することができる〜https://blog.csdn.net/Irish_Moonshine/article/details/91128293

4.5 PVと同期動作

同期と相互に排他的なの4.5.1コンセプト
4.5.2 PVの操作コンセプト
相互排除の問題を解決するために4.5.3 PV操作
同期の問題を解決するために4.5.4 PV操作
4.5.5古典同期の問題
プロセスの同期や相互排除の概念を4.5.1

相互に排他的な関係プロセス:
どの2つの以上のプロセスが同時に操作にアクセスしないことを保証する:プロセスの数による排他的なリソースの共有には、あなたは、リソースへのアクセスのためのプロセスを調整する必要があります。
独占資源と関連の共有
リソース:重要なリソースの
アクセス動作エリア:クリティカルエリア

同期関係のプロセス:
調整ペースの実行を必要とする一般的なタスクを完了するためにいくつかの連携処理。操作の開始前に別のプロセスを要求しなければならないプロセスが動作を完了した、またはプロセスの前でだけ待つことができます。

同期関係のプロセス-のための別の説明
の協力のプロセスは一定の関係を満たしているか、操作が特定の操作の間で一定の前提条件を満たすことが要求される可能性、またはだけ待つことができる持っている必要があります。

4.5.2 PVの動作概念

ライトコンセプト
のPV操作の定義
プロセスの同期を達成するためにPVの操作を
、古典的な同期の問題を

ライト効果的なプロセスの同期メカニズムである
オランダの学者ダイクストラ、1965年

状態制御動作中に点灯することにより、プロセス、およびステータスライトを変更します。

  • プロセス制御は:ステータスがブロックされたか、ウェイクアップ・プロセスすることができます点灯します。
  • ライトを変更:ステータスランプがプロセスを変更することができ、

光のデータ構造:
光可変バイナリベクトル(S、Q)として定義される
(また、セマフォとして知らS)整数、非負初期値:S
Q:PCB待ち行列(キュー・プロセス)、初期値セットが空であります

struct SEMAPHORE{
	int S;
	pointer_PCB q;
};

二つの動作:
P動作(機能又は手順、P(S、Q))Vの
操作(関数またはプロシージャ、V(S、Q))

P、Vはオランダ語である:によってPasseren、Vrijgevenがリリース。

P(S,q)
{
	S = S - 1;
	if (S < 0){
		Insert(Caller , q);
		Block(Caller);
		转调度函数();
	}
}
  • 操作のP原理(P(S、Q)、P(S))のS
    値-1;
    差がゼロ以上である場合、プロセスは継続、
    差がゼロ未満である場合、プロセスはブロックされ、qはキューに追加され、スケジューリング転送機能。

ヒント:P操作がコールでブロックする工程を行うことができます。
ヒント:S初期値は非常に重要です

  • Vの動作原理(V(S、Q)、V(S))は
    + +1値s、
    ゼロよりも大きい場合、処理は継続する、
    ゼロより小さい場合、処理は、Qからのプロセスで同時にウェイクアップし続けます。
V(S,q){
	S = S + 1;
	if ( S < 0 ){
		Remove( q , pid );
		Wakeup( pid );
	}
}
相互排除の問題を解決するために4.5.3 PV操作

本質は、クリティカル領域への排他的アクセスを達成することである
地域における重要なプロセスまでを可能に

  • アプリケーション手順:
    最初の操作は、クリティカルセクションPに入る前に行う。
    次にクリティカルセクションを出た後の操作のVを実行します。
main(){
	cobegin
	Pa();
	Pb();
	Pc();
	coend
}

Pa(){
	P(mutex );
	CSa;
	V(mutex );
}

Pb(){
	P(mutex );
	CSb;
	V(mutex );
}

Pc(){
	P(mutex );
	CSc;
	V(mutex );
}
同期の問題を解決するために4.5.4 PV操作

セマフォPVを使用して、同期操作

  • 同期メカニズムの本質:
    動作条件が満たされない場合、処理を中断することができます。
    動作条件が満たされている場合は、プロセスを許可すると、すぐに続行します。

プロセス同期の基本的な考え方のPVアプリケーションと操作が:
現在の処理を一時停止するには:P操作を実行する重要な操作をする前に
、必要に応じて一時停止することができ
、プロセスを継続するために:V操作を重要な操作の実装は後に
、必要に応じて連携処理をウェイク
セマフォSの意味の定義、およびセット適切な初期値。
セマフォSは、「動作条件」をクリアすることができます

導体の分析と協力のプロセスのドライバ。

4.5.5古典同期の問題

古典的な同期の問題1:生産者と消費者が発行し
、消費者のグループに商品(データ)を提供するために、生産者のグループを、共有バッファ

ルール:
1.製品格納するバッファを埋めないでください
空のバッファから製品を服用しないでください。2.を
するたびにのみ生産や消費者の預金することができます。3.または製品を取ります

クラシック同期質問2:読者や編集者の問題

問題の説明:本があり、
読者が読んで、より多くの読者があり
、複数のエディタがあり、本をコンパイルした編集者がいます

要件:
1.複数の同時読み取りの発音を許可
2.読者を許可され、編集者が同時に動作
3は、より多くの同時動作エディタを許可していません。

PVセマフォ操作機構は、同期の問題解決
1.重要な操作または影響または動作条件を区別する。
2.キー操作P作動前に
キー操作Vの動作の後3.

プロデューサー-消費者問題:
同期と相互排他的なミックス。

読者-の作家の問題
相互排除問題。

おすすめ

転載: blog.csdn.net/Irish_Moonshine/article/details/91128293