[オペレーティングシステム]モニタ


細い麻布語の限界

Timing Errorsが発生する可能性があります.これは追跡しにくいです.たとえば、バイナリマイクロ麻布言語を使用する場合、各プロセスはwait->信号順序を遵守する必要があるが、この順序を遵守しないと、2つのプロセスが同時に臨界領域に入る可能性がある.
すなわち,細麻布語は프로그래머의 실수を引き起こす可能性があるので,その可能性をできるだけ低くしなければならない.

モニタ



細い麻布言語の限界を補う高レベルの非同期方法は,反発属性を提供するデータ型である.
次の例では、モニタブロック内で宣言されたすべての関数が同期されます.
monitor {
    function p1(..){}
    function p2(..){}
    function p3(..){}
}

じょうけんへんすう


ディスプレイ自体は同期処理が困難であるため、同期機構を提供するために조건 변수を定義する必要がある.
この場合、条件変数はモニタ内部からのみアクセスできます.
condition x y;
x.wait();
y.signal();

したがって、wait queueは、対応する条件変数に従って分離され、同期される.

コメント/写真ソース

  • 基礎のオペレーティングシステムの恐竜の本の講座