www.vorhilfe.de
Vorhilfe

Kostenlose Kommunikationsplattform für gegenseitige Hilfestellungen.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Englisch
  Status Grammatik
  Status Lektüre
  Status Korrekturlesen
  Status Übersetzung
  Status Sonstiges (Englisch)

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
Forum "Sonstiges - Informatik" - Semaphor grafisch darstellen
Semaphor grafisch darstellen < Sonstige < Schule < Informatik < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Sonstiges - Informatik"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Semaphor grafisch darstellen: Tipp
Status: (Frage) beantwortet Status 
Datum: 11:45 Mi 03.09.2008
Autor: tomu

Hallo,

ich habe zwei Prozesse mit Semaphoroperationen:
Prozess1: p(S2) .. v(S2) .. p(S2) .. v(S2)
Prozess2: p(S2) .. v(S2) .. p(S1) .. v(S1)

Wie kann ich das am besten grafisch darstellen um eine evtl. Verklemmung festzustellen?




Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.

        
Bezug
Semaphor grafisch darstellen: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 13:55 Mi 03.09.2008
Autor: smarty

Hallo Tomu,

und herzlich [willkommenvh]


gibt es zu der Aufgabe noch mehr Informationen?


Grüße
Smarty

Bezug
                
Bezug
Semaphor grafisch darstellen: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 14:02 Mi 03.09.2008
Autor: tomu

Hallo Smarty,

leider nicht viel mehr..
Nur das man bei diesen beiden Prozessen die "parallel" laufen, herausfinden soll, ob hier eine Verklemmung (also ein deadlock) entsteht. Und das ganze dann auch noch "Beweisen". Beim Beweisen habe ich gedacht das es am besten grafisch gezeigt werden kann. Aber ich weiß eben noch nicht was hier eine gute und verständliche Lösung ist...

Das ist auch nur eine Aufgabe von vielen. Die anderen sind aber ähnlich aufgebaut.

Bezug
        
Bezug
Semaphor grafisch darstellen: Antwort
Status: (Antwort) fertig Status 
Datum: 12:53 Do 04.09.2008
Autor: smarty

Hallo Tomu,

ich habe für dich mal einen Link (einfach draufklicken) herausgesucht.

[]http://dbs.uni-leipzig.de/buecher/mrdbs/mrdbs-83.html#MARKER-9-103

Ich hoffe das hilft ein wenig. Wenn du die Antwort/Lösung hast, kannst du sie ja hier auch reinstellen. Es würde mich interessieren, wie man aus so wenig Informationen irgendwas bastelt :-)


Grüße
Smarty

Bezug
        
Bezug
Semaphor grafisch darstellen: Antwort
Status: (Antwort) fertig Status 
Datum: 13:11 Do 04.09.2008
Autor: Somebody


> Hallo,
>  
> ich habe zwei Prozesse mit Semaphoroperationen:
>  Prozess1: p(S2) .. v(S2) .. p(S2) .. v(S2)
>  Prozess2: p(S2) .. v(S2) .. p(S1) .. v(S1)
>  
> Wie kann ich das am besten grafisch darstellen um eine
> evtl. Verklemmung festzustellen?

Dafür verwendet man in der Regel einen "resource allocation graph" mit zwei Arten von Knoten: Prozessknoten und Resourceknoten. Ein Pfeil von einem Prozessknoten zu einem Resourceknoten bedeutet: der Prozess versucht die Resource zu allozieren. Ein Pfeil von einer Resource zu einem Prozess bedeutet: die Resouce ist dem betreffenden Prozess zugeteilt worden. Ganz grob vereinfachend bedeutet Deadlock in einen solchen Graphen die Existenz eines gerichteten Zyklus. (Vereinfachend: es wird insbesondere angenommen, dass kein nachträgliches Entziehen einer bereits zugeteilten Resource möglich ist und dass eine Resource auch nicht mehreren Prozessen zugeteilt werden kann.) Für die Details: suche auf dem Netz einfach nach "resource allocation graph", eventuell mit dem zusätzlichen Stichwort "deadlock".

Ein offensichtliches Problem ist natürlich, dass der resource allocation graph eigentlich nur ein Schnappschuss der augenblicklichen Situation darstellt. Weshalb man zur Klärung der Frage der Existenz eines Deadlocks alle Zustände des resource allocation graphs untersuchen müsste, die aufgrund der Programmlogik überhaupt möglich sind.
Allerdings frage ich mich, ob es Deine Aufgabe wirklich erfordert, mit einem so "primitiven" Synchronisationsmechanismus wie Semaphoren zu arbeiten. Kannst Du nicht einen etwas "strukturierteren" Synchronisationsmechanismus wie z.B. "Monitore" oder Lösungen eines bereits hinreichend analysierten Synchronisationsproblems wie dem (multiple)Reader/(multiple)Writer-Problem (z.B. synchronized message queues) verwenden?

Bezug
                
Bezug
Semaphor grafisch darstellen: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 14:56 Do 04.09.2008
Autor: tomu

Hi,

danke für die Antwort.

Ich habs jetzt mal so dargestellt:
[Dateianhang nicht öffentlich]
Beim unteren Teil sollte es keine Probleme geben, Prozess1 greift auf S2 zu und Prozess2 auf S1.
Im oberen Teil wollen beide Prozesse S2 zur gleichen Zeit nutzen. Aber eigentlich kann es doch gar nicht zu einem deadlock kommen, wenn das ganze durch Semaphoren abgesichert ist, oder?

Irgendwie scheint mir da nochwas unklar zu sein...

Dateianhänge:
Anhang Nr. 1 (Typ: png) [nicht öffentlich]
Bezug
                        
Bezug
Semaphor grafisch darstellen: Antwort
Status: (Antwort) fertig Status 
Datum: 15:40 Do 04.09.2008
Autor: Somebody


> Hi,
>  
> danke für die Antwort.
>  
> Ich habs jetzt mal so dargestellt:
>  [Dateianhang nicht öffentlich]
>  Beim unteren Teil sollte es keine Probleme geben, Prozess1
> greift auf S2 zu und Prozess2 auf S1.
>  Im oberen Teil wollen beide Prozesse S2 zur gleichen Zeit
> nutzen. Aber eigentlich kann es doch gar nicht zu einem
> deadlock kommen, wenn das ganze durch Semaphoren
> abgesichert ist, oder?

Bei dieser speziellen Reihenfolge der Verwendung der Semaphoren kann es, wie Du richtig bemerkst, nicht zu einem Deadlock kommen: dies liegt einfach daran, dass keiner der Prozesse eine $p$-Operation auf einer der Semaphoren ausführt, während er sich bezüglich einer anderen Semaphore zwischen einer $p$ und der zugehörigen $v$-Operation befindet. Er gibt also jede Resource (hier: Semaphore) wieder frei, bevor er sich um eine weitere Resource bewirbt.

> Irgendwie scheint mir da nochwas unklar zu sein...

Wenn Dein System keine Prozesse mit in einander verschachtelten, mittels [mm] $p(S_n)\ldots v(S_n)$ [/mm] geschützte Codeblöcke besitzt, kann kein Deadlock auftreten. Denn jeder Prozess gibt nach einer [mm] $p(S_n)$-Operation [/mm] in endlicher Zeit die Semaphore [mm] $S_n$ [/mm] mittels [mm] $v(S_n)$ [/mm] wieder frei, ohne daran durch eine blockierende [mm] $p(S_m)$-Operation [/mm] auf einer anderen Semaphore [mm] $S_m$ [/mm] gehindert werden zu können. Gefährlich wird's erst, wenn Dein Code (dynamisch) in einander verschachtelte [mm] $p(S_n)\ldots v(S_n)$ [/mm] Blöcke besitzt. Wichtig ist der Zusatz: dynamisch. Du musst also die Möglichkeit in Betracht ziehen, dass eine solche Verschachtelung im Quellcode nicht unmittelbar (statisch) sichtbar ist.

Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Sonstiges - Informatik"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.englischraum.de
[ Startseite | Forum | Wissen | Kurse | Mitglieder | Team | Impressum ]