after test thread 14.01.2009

  • und? wie ist es euch gegangen:
    ich hatte
    1)
    Synchronsiation mittels semaphoren:
    Kreuzung, auto von westen nach osten und auto von süden nach norden
    2)
    security:


    3) deadlock


    4) paging


    im großen und ganzen nicht so schwer gewesen, nur die synchronisation war nicht so leicht, hat das wer hinbekommen? und wenn ja, wie? :lauscher:


    lg bonomat

    :verycool::wave:ICH LIEEBE LUSTIGE SMILIES:wave::verycool:


    :multishiner:


  • init(W,0) , init(S,0) , init(K,1)


    Ampel:
    doforever{


    V(W);
    wait(45);
    P(W);
    V(W); // für das letzte Auto das nach dem rot-werden noch fahren darf.
    P(W); // so sollte es sein (habs selber nicht so gemacht).....kann jmd schätzen wieviel Punke dafür abgezogen werden ???


    V(S);
    wait(45);
    P(S);

    V(S);


    P(S);


    }


    WestSide :
    do{


    P(W);
    P(K);
    k_p();
    V(K);
    S(W);


    }

    wait for the 2G WTF scroller ..

  • Bei der Lösung ist aber das Problem, dass die Ampel im worst case nie dran kommt (immer wenn das Schedulingverfahren Shortest Process Next ist oder auch bei einer schlechten Feedbackimplementierung^^)

    There's a place in the dark where the animals go
    you can take off your skin in the cannibal glow
    Juliet loves a beat and the lust it commands
    drop the dagger and lather the blood on your hands - Romeo

  • Ich habs so:

    Init(K,1);
    Init(W,1);
    Init(S,0);
    Init(WU,1);
    Init(SU,1);

    Ampel:
    forever
    {
    warte(45);
    P(W);
    V(S);
    warte(45);
    P(S);
    V(W);
    }

    Auto-W:

    P(WU);
    P(W);
    P(K);
    V(W);
    durchfahre_kreuzung();
    V(K);
    V(WU);

    Auto-S ist dasselbe nur mit S statt W und SU statt WU. Ich bin nicht sehr zufrieden mit der Lösung, das ist aber noch immer das einzige, was mir eingefallen ist. Die Ampel muss wenn, dann nur sehr kurz warten, außer es blockiert ein Auto 45 Sekunden oder länger die Kreuzung.

  • Was hier extrem nützlich gewesen wäre ist eine Möglichkeit, der signal()/V()-Operation anzugeben welcher Prozess im Zweifelsfall bevorzugt aufgeweckt werden soll!


    Habs ungefähr so gemacht

    Ich weiß dass mein Beispiel nicht funktioniert, hatte aber keine Ahnung wie man das mittels Semaphoren irgendwie regeln könnte :confused:
    Die markierte V-Operationen sollte IMMER zuerst den Ampel-Prozess aufwecken, wenn einer auf das Signal wartet, dann würds funktionieren.
    Aber so, braucht nur inzwischen ein anderes Auto von Westen gekommen zu sein und die Ampel schaltet nie wieder um.


    Bin gespannt wieviel Punkt es noch dafür gibt.
    Mehr als ein Drittel aller Punkte nur für die Synchronisierung einzuplanen finde ich ja doch ein bisschen übertrieben, weiß nicht was sie sich dabei gedacht haben.


    Bei den Design Principles for Security hätts auch locker gereicht wenn sie 5 gefragt hätten statt genau die 7 die auch auf der Folie sind.
    Hier wird halt wieder mal stupide Auswendiglernerei belohnt ;)


    Aber der Rest Prüfung war eigentlich recht leicht zu meistern, keine großartigen Überraschungen dabei.

  • Also meine Lösung schaut so aus:



    edit: mir fällt grad auf, dass man v(sued) eigentlich doch aus der if-schleife rausholen könnte und damit fällt das else weg... is aber auch kein großer unterschied^^

    There's a place in the dark where the animals go
    you can take off your skin in the cannibal glow
    Juliet loves a beat and the lust it commands
    drop the dagger and lather the blood on your hands - Romeo

    Edited once, last by Aeroflare ().

  • Globale Variablen wären fein gewesen, waren aber laut Tutor nicht erlaubt (mein Nachbar hat nachgefragt).
    Aber allein schon dadurch dass in der Angabe ja nichts von dem Verbot gestanden ist müssten sie es eigentlich gelten lassen - ich würd da auf jeden Fall dann in die Einsichtnahme gehen.

  • Mein Nachbar hat den Studienassistenten gefragt und der hat gesagt, dass sie erlaubt sind... :D


    und ein Reader/Writer-Problem ist ohne globale Variablen nicht zu lösen (zumindest eben nicht ohne Gefahr auf Starvation). Bzw könnte man die Semaphore als Globale Variable missbrauchen, wenn man wüsste welche Implementierung die Semaphore jetzt genau verwendet...

    There's a place in the dark where the animals go
    you can take off your skin in the cannibal glow
    Juliet loves a beat and the lust it commands
    drop the dagger and lather the blood on your hands - Romeo

  • :sudern:


    Ich wollte noch globale Variablen verwenden und hab's dann gelassen :traurig:


    Sie verfügen im Rahmen der kooperativen Reflexionsbildung nicht über ausreichend partizipativ disjunkte Signanz im Kontext ihrer sozio-technischen Figurationen, um sich bei Gerald Steinhardt anmelden zu können.

  • Meiner Meinung ist es nur mit Mutexe nicht möglich... mit anderen Synchronisierungsmethoden ja, aber nicht mit Mutexen

    There's a place in the dark where the animals go
    you can take off your skin in the cannibal glow
    Juliet loves a beat and the lust it commands
    drop the dagger and lather the blood on your hands - Romeo

  • mMn gibts da keine 100%-ige ohne warten. Aber ich kann mich auch Verfahren haben. Wenn man eben keine globalen vars einsetzt.
    Selbst wenn man noch eine sem vor die ganze grün abfrage setzt, bleibt die wahrscheinlichkeit bestehen.


    mfg Schakal

  • eine variante die die häufigkeit von starvation verringern würde, wäre eine zusätzliche semaphore die mit der ampel interagiert bevor das auto über die ampel fährt, aber bei einem spn-scheduling würde auch die kläglich versagen^^ (so ähnlich hat's apfelsaft gelöst)

    There's a place in the dark where the animals go
    you can take off your skin in the cannibal glow
    Juliet loves a beat and the lust it commands
    drop the dagger and lather the blood on your hands - Romeo

  • Eh, aber es is mMn egal ob die chance kleiner oder größer bei einem Prüfungsbsp is. Wenns generell nicht möglich ist, sollte scih was anderes rausstellen liegen wir eh alle falsch, müsseten sie jede lösung akzeptieren auch wenn bei einem eine höhere chance besteht als jemand anderem, dass die ampel nicht blockiert. Da müssen ihr angaben schon gscheit stellen.


    Aber sobald eine Ampel ein P machen muss, und nicht sichergestellt ist das aufjedenfall kein anderer gerade wartet, blockiert die ampel, aber ohne p gehts nicht. Vielleicht gibts eine Lsg wo die autos was bestimmtes tun noch is sie mir nicht eingefallen.


    Selbst bei d. erweiterten Lösung von fabs kanns dazu kommen. Also ist das eigentlich auch keine richtige Lsg. Von solchen Bsps, wenn die Musterlsg auch die erweiterte is, sollten sie sich fernhalten. Weil theoretisch können da trotzdem noch einige durchfahren wenn die zeit zwischen dem V und P in d. Ampel länger als sonst dauert.


    mfg Schakal

  • Originally Posted by fieselschweif
    Sowohl interne als auch externe Fragmentation kann auftreten bei
    [X] virtual memory with combination of paging and segmentation


    alle anderen Antwortmöglichkeiten sind auszuschließen weil sie alle entweder auf fixed partitioning oder dynamic partitioning basieren und diese immer nur entweder interne oder externe Fragmentation aufweisen können.
    (Gepostet: 10-01-2009, 17:35)



    Originally Posted by fieselschweif
    Nochmal zu diesem Thema: hab heute Prof. Puschner nach der Vorlesung gefragt, der hat erstmal eine Weile überlegt, meinte dann er hätte diese Frage noch nie gesehen und wir könnten davon ausgehen dass sowas in der Form NICHT zur Prüfung gefragt wird ;)
    (Gepostet: 12-01-2009, 19:57)


    Das ist aus dem Post ueber die Pruefung von 24.10.2007. Genau diese Frage war heute bei der Pruefung dabei. Oder Irre ich mich da jetzt gewalting?


    PS: Stimme Schakal zu, denn genau das mit dem P Aufruf vom Semaphore hat mich so geaerget, dass dadurch die Ampel warten muss. Naja, schau ma mal was sie uns da so auftischen als Antwort...

    ______________________________________________
    (\__/)
    (='.'=)This is Bunny. Copy and paste Bunny into ur
    (")_(")signature to help him gain world domination.
    ______________________________________________
    Windows ist für nur eins gut: WinZip :mad:@ AlgoDat

    Edited 2 times, last by lowkey ().

  • Ich habe das erste Bsp. dann im Endeffekt so gelöst, dass pro grün Phase immer nur ein Auto durchfährt :-D Anders bin ich auf keine Lösung gekommen in der ein Deadlock verhindert wird bzw sichergestellt ist, dass die Ampel nicht ziemlich lange nach allen Autos umschalten kann.
    Ich habe beim Test gefragt ob man so eine Test Funktion für die Semaphoren verwenden darf um zu sehen welchen Wert sie gerade hat... war auch nicht erlaubt. Tja ich bin auch mal gespannt was da die Lösung sein soll...


  • Das ist aus dem Post ueber die Pruefung von 24.10.2007. Genau diese Frage war heute bei der Pruefung dabei. Oder Irre ich mich da jetzt gewalting?


    Das war auch das erste das ich mir gedacht habe als ich die Frage bei der Prüfung gesehen habe. Aber ich denke mal, wer im Forum gelesen hat das genau diese Frage nicht kommt und sich das auch gemerkt hat wird sich auch an die Antwort erinnert haben.

    Aus 100% Apfelsaftkonzentrat. Kann Spuren von Nüssen enthalten.