FB18 - Das Forum für Informatik

fb18.de / Diplom Informatik / Unterbereich Grundstudium / Technische Informatik

[T3/4] Kleinere Verständnisfragen

[T3/4] Kleinere Verständnisfragen 2006-10-12 16:58
Calamari
Kann mir bitte einer beschreiben was die Synchonisationsalgorithmen von Dekker und Petterson tun? Also in Worten meine ich ;)

Irgendwie steig ich da gerade nicht so ganz durch.

Noch ne kleine Frage: Was genau ist ein assoziativer und was ein direkter Cache? Habe da bis jetzt nach einigem Suchen nichts konkretes gefunden.

Thx

Re: [T3/4] Kleinere Verständnisfragen 2006-10-12 23:03
Muelli
Noch ne kleine Frage: Was genau ist ein assoziativer und was ein direkter Cache? Habe da bis jetzt nach einigem Suchen nichts konkretes gefunden.

AFAIR:
Ein direkter Cache mapped die Speicheradresse 0x1337 )_immer_ auf die Cache Adresse 0x23. Ergo: Wenn in 0x23 nichts (gueltiges) drinne steht, ist das Datum nicht gecached.

Ein Assoziativer Cache hat eine Spalte um die Speicheradresse zu speichern, sodass der Inhalt von 0x1337 mal an der Stelle 0x23 oder 0x42 stehen kann.

Wie immer: Ohne Gewehr

MfG
Muelli

Re: [T3/4] Kleinere Verständnisfragen 2006-10-13 00:32
TriPhoenix
Genau, im assoziativen Cache hat der Cache nämlich Assoziationen, also an jeder Cachezeile steht dran, zu welcher Adresse sie denn gerade gehört. Das heißt eben auch dass jede Cachezeile jede Adresse cachen könnte, bei direkten ist vorgegeben welche Adresse in welcher Zeile landet. Siehe auch Cache

Re: [T3/4] Kleinere Verständnisfragen 2006-10-13 01:42
GroßerSchöpfer
Aber der direct mapped cache muss doch zu jedem Datum auch ablegen was da gerade gecached ist, es wird ja mehrere Speicheradressen geben die auf 0x23 gemapped werden. Allerdings muss man in diesem Fall wohl nur einen Teil der Adresse ablegen.

Re: [T3/4] Kleinere Verständnisfragen 2006-10-13 02:38
Anonymer User
Aah, danke für die Aufklärung, das ist nämlich gut zu wissen, denn scheinbar habe ich bis jetzt den assoziativen cache für direkt verstanden und den assoziativen garnicht.

Nun bin ich schlauer. Könnte sein das ich morgen noch ein paar Fragen stelle *g*
Habe aus dem Hayes, dem T3-Skript und Wikipedia (bzw. google) nichts zu lesen für T3. (Tannenbäume waren leider aus *g)

Gute Nacht allen


Re: [T3/4] Kleinere Verständnisfragen 2006-10-13 18:29
Anonymer User
So, da bin ich wieder. Ich hoffe ihr habt mich nicht allzusehr vermisst *g* (und bitte keine bermerkungen darüber, ich WEISS dass ihr mich vermisst habt [img]http://www.fb18.de/gfx/15.gif[/img])

Und natürlich ne kleine Frage zum Thema Synchronisation in Petto:

Wie wird das Synchronisationsproblem bei Einprozessor-Maschinen gelöst?
Bei Mehrprozessor steht da irgendwas von copy-and-set(x,y) aber bei Monoproz.?
Sind dafür diese Semaphoren zuständig? Und werden diese dann vom OS geregelt für die basic IO-Geräte? Oder muss das in jedem Prozess geschehen?

Ich versuch mich gerade gegen jegliche Fragestellungen von Lehmann zu imunisieren, daher so komische Fragen *g*

Greetings, der Lernwütige

Re: [T3/4] Kleinere Verständnisfragen 2006-10-13 18:30
Calamari
Das da war im übrigen ich, fraglich warum er mich nicht eingeloggt hatte…

Re: [T3/4] Kleinere Verständnisfragen 2006-10-14 11:50
Anonymer User
Hmm war das nichts mit schnellem prozessor wechsel für jeden prozess, so das ein so genannter "pseudo parrallelitäts" effekt entsteht?
Also das die prozessor rechenleistung anfordernden prozesse schnell bedient und nach besitmmten scheduling eigenschaften wieder entzogen wird?

Re: [T3/4] Kleinere Verständnisfragen 2006-10-14 11:50
Anonymer User
Ah… hab mich verlesen.. dachte du meintest Parallelität und nicht Synchronität

Re: [T3/4] Kleinere Verständnisfragen 2006-10-14 20:27
Muelli
*erinner*

Wie wird das Synchronisationsproblem bei Einprozessor-Maschinen gelöst?
Bei Mehrprozessor steht da irgendwas von copy-and-set(x,y) aber bei Monoproz.?
Sind dafür diese Semaphoren zuständig? Und werden diese dann vom OS geregelt für die basic IO-Geräte? Oder muss das in jedem Prozess geschehen?

Was ist das Problem? Beispiel Drehkreuz: Zwei Drehkreuze sollen die Anzahl an Besuchern in einem Laden messen. Sobald ein Drehkreuz einen Eingang misst, muss es LOAD i, i++, STORE machen. Soweit so gut. Das zweite Kreuz laeuft auf dem selben Rechner in eienm anderen Thread und zaehlt im selben Moment einen runter:
Kreuz 1: LOAD i (i=42) LOAD i (i=42) Kreuz 2 Kreuz 1: ADD 1 (i=43) SUB 1 (i=41) Kreuz 2 Kreuz 1: STORE i STORE i Kreuz 2
Die Zugriffe sind verschachtelt und der letzte, wo schreibt, "gewinnt". Das ist schlecht. Was machen wir dagegen? Irgendwie muessen den Zugriff auf die Struktur unterbinden, wenn sie in Benutzung ist. Dazu bauen wir uns einen Ueberwacher. Der zeigt an, ob wir an der Struktur was aendern duerfen, oder nicht, bzw. sagt uns bescheid, wann wir duerfen.

Aber ist das PRoblem nicht immernoch das selbe? Kann es nicht sein, dass der erste Thread gerade das Semphore liest und die Struktur blocken will waehrend ein zweiter das selbe tut und somit wieder beide gleichzeitig an der Datenstrutur rumbauen? Ja es kann immernoch passiern! Deswegen muessen diese Operationen atomar sein. Sobald du dafuer mehrere Zyklen brauchst laeufst du Gefahr, dass dir dieser Unfall passiert.


MfG
Muelli

Re: [T3/4] Kleinere Verständnisfragen 2006-10-15 13:52
Calamari
Also wozu Synchronisation da ist, war mir schon klar. Das hat man zu genüge ja im P- und F-Zyklus durchgekaut, mir ging es gerade nur um die technische Realisierung.

Aber egal, in knapp mehr als einer Stunde hab ich hoffentlich auch das hinter mir. *g

Cheers, Calamari