2017-02-28 4 views
1
  1. dieses Pseudo-Code nehmen,Kritische Abschnitt mit sephamores

    Semaphore S <- 0 
    non-critical section 
    wait(S) 
    critical section 
    signal(S) 
    

Ist diese Lösung der kritischen nur mutual exclusion Support-Bereich Problem?

Ich weiß, dass es keine Freiheit von Deadlock gibt, da der kritische Abschnitt nie erreicht wird, würde dies aber auch bedeuten, dass es keinen gegenseitigen Ausschluss unterstützt.

Antwort

0

Gegenseitiger Ausschluss bedeutet, dass nur 1 thread(or process) die Critical Section eingeben kann. Per Definition verletzt der Code also nicht mutual exclusion.

Wichtig ist hier zu beachten ist, dass alle threads, in busy-waiting Zustand sein würde, und es gibt keine progress überhaupt, aber eigentlich gibt es keinen Stillstand, weil eine der 4 Bedingungen für Deadlock ist CIRCULAR WAIT auftreten müssen . Aber es ist nicht so, dass Threads in diesem Fall auf einander warten.