multithreading



  • hi!

    was ist der unterschied zwischen mutex und critial section?



  • Note that critical section objects provide synchronization similar to that provided by mutex objects, except that critical section objects can be used only by the threads of a single process.



  • das kommt auf den kontext an. ein mutex ist normalerweise ein kernelobjekt, das einem ein multitasking-kernel anbietet um tasks zu synchronisieren bzw. konkurrierende zugriffe auf resoucen zu regeln. wenn eine task sich einen mutex schnappt, werden andere tasks, die den gleichen mutex haben wollen, blockiert bis die 'besitzer-task' den mutex freigibt. beim freigeben des mutex kann es passieren, dass der task sofort rechenzeit entzogen wird damit eine andere, auf den mutex wartende task, losrennen kann (auch welche mit geringerer priorität, stichwort 'priority inheritance'). im unterschied dazu ist eine 'critical section' ein codeabschnitt, der nicht von zwei tasks gleichzeitig betreten werden darf. eine critical section kann man z.b. mit einem mutex realisieren, aber da critical section in der regel sehr schnell durchlaufen werden, ist die benutzung eines mutex oft übertrieben und man kann z.b. kurzzeitig die relevanten interrupts disablen (das wird aber auf den fetten betriebssystemen, zumindest im userland, nicht so gemacht, weil dann ein programmierfehler das ganze system weghängen könnte).
    🙂



  • das kommt auf den kontext an. ein mutex ist normalerweise ein kernelobjekt, das einem ein multitasking-kernel anbietet um tasks zu synchronisieren bzw. konkurrierende zugriffe auf resoucen zu regeln. wenn eine task sich einen mutex schnappt, werden andere tasks, die den gleichen mutex haben wollen, blockiert bis die 'besitzer-task' den mutex freigibt. beim freigeben des mutex kann es passieren, dass der task sofort rechenzeit entzogen wird damit eine andere, auf den mutex wartende task, losrennen kann (auch welche mit geringerer priorität, stichwort 'priority inheritance'). im unterschied dazu ist eine 'critical section' ein codeabschnitt, der nicht von zwei tasks gleichzeitig betreten werden darf. eine critical section kann man z.b. mit einem mutex realisieren, aber da critical section in der regel sehr schnell durchlaufen werden, ist die benutzung eines mutex oft übertrieben und man kann z.b. kurzzeitig die relevanten interrupts disablen (das wird aber auf den fetten betriebssystemen, zumindest im userland, nicht so gemacht, weil dann ein programmierfehler das ganze system weghängen könnte).
    🙂



  • Zweimal das gleiche in 35 Minuten. Lange verzögerung, war wohl was mit nem Mutex gelockt. Deadlock? :p



  • doppelposchd schrieb:

    Zweimal das gleiche in 35 Minuten. Lange verzögerung, war wohl was mit nem Mutex gelockt. Deadlock? :p

    ich hab' den text tatsächlich zweimal, aber kurz hintereinander abgeschickt, weils beim ersten mal nicht ging. wieso der erste versuch erst nach 35 minuten erscheint, ist mir auch unerklärlich (beim zweiten versuch hat's sofort geklappt) vielleicht hing er noch irgendwo in den algorithmen dieser diletantisch zusammengefrickelten spamkontrolle?
    🙂



  • Ey, haste was gegen unseren ultimativen SPAMBUSTER Spam Activity Detector? Die Algorithmen entschlüsseln sogar die Zahnlöcher-Struktur deiner Oma. Also mal im Ernst... Der Algorithmus wurde von unserem rennomierten Entwicklerteam 4 Monate lang in einer hochprofessionellen Entwicklungsumgebung auf sämtliche Schwachstellen geprüft. Sämtliche, vermeintliche Bugentdeckungen der User sind subjektive Falscheindrücke, verursacht durch die unglaubliche Perfektion des Spamblockers. Die User werden ganz einfach von der Genialität überwältigt, sodass der natürliche Wahrnehmungsmechanismus des Menschen aussetzt, und man die Genialität als Bug empfindet.



  • Sorry, mein obiger Name war ein Vertipper. Damit wollte ich natürlich keineswegs irgendein Forenmitglied ansprechen.



  • 😃



  • 😃



  • dem sei noch hinzuzufügen: "it's not a bug. it's a feature!". :xmas2:
    🙂



  • Ist bloß eine Priorisierung der Aktivitäten. Patchday ist halt nur einmal im Vierteljahr

    => http://www.c-plusplus.net/forum/viewtopic-var-t-is-197413.html




Anmelden zum Antworten