Frage

Die Operating System Concepts 6. Auflage vorhanden ein trival Algorithmus ciritical Abschnitt implementate.

do{
  while (turn != i);
    critical section
  trun = j;
    remainder section
} while(1);

Hinweis , Pi ist der Prozess mit der Kennung i, Pj der Prozess mit der Kennung ist j.To die Frage simlify, begrenzt das Buch die i, j auf 0 und 1, die beiden Prozesse constriant Umwelt.

Question1 ist, Dosis dieses Algorithmus voilate die Fortschritt Anforderung, die eine der drei Anforderungen ciritical Abschnitt Lösung?

Meiner Meinung nach, wenn Pi in seinem Rest Abschnitt ist, kann es nicht an der Entscheidung teilnehmen, ob Pj die kritische eingeben section.Then es an die Anforderung gebunden ist.

Oder mein Verständnis von Fortschritt Voraussetzung ist völlig wrong.So denn wenn Pi vom Rest Abschnitt im Ruhestand, konnte es nicht in den Crit-Abschnitt sofort bekommen, diese alg verletzen die Regel.

Question2 ,

  

Wenn wiederum == 0 und P1 bereit ist zu geben   itscritical Abschnitt kann P1 nicht tun   so, dachte sogar P0 sein kann in seinem   Rest Abschnitt

Was ist die Bedeutung dieser Aussage? Soweit ich denken konnte, konnte ich nicht verstehen, warum in seinem Rest Abschnitt sein == 0 und p0 drehen gleichzeitig werden könnten existieren ...

So ist diese Aussage falsch?

War es hilfreich?

Lösung

Nehmen wir zunächst, dass turn = 0. P0 macht seinen kritischen Abschnitt und setzt turn = 1. Nun P1 muss seinen kritischen Abschnitt ausführen, bevor P0 seine eine wieder ausführen kann. Aber nur, weil beide Threads haben einen kritischen Abschnitt bedeutet nicht, dass sie auf diese Weise ihren Gebrauch wechseln wollen gehen - in der Tat, P1 kann nie seine Wendung nehmen. (Und im allgemeinen Fall, Sie können dies nicht bestimmen, bei der Kompilierung .)

Also im Grunde das Problem ist, dass die Fäden sind gezwungen, ihre Kurven wechseln , auch wenn einer von ihnen tatsächlich nicht seinen kritischen Abschnitt für eine unbestimmte Zeit lang Zeit geben will.

Durch die Art und Weise, Ihre Antwort auf Frage 1 korrekt ist. Der Algorithmus ist nicht umhin, die Fortschritt Zustand, es scheitert das Bounded Waiting Zustand.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top