Anhang D: Anmerkungen zur Portierung auf andere Systeme 705
Thread: 6 Simulation of no alarm needed
Thread: 6 Slept for 0 (3) sec
Thread: 6 Waiting
process_alarm
process_alarm
thread_alarm
Thread: 6 Slept for 4 (4) sec
Thread: 6 Waiting
process_alarm
thread_alarm
Thread: 5 Slept for 10 (10) sec
Thread: 5 Waiting
process_alarm
process_alarm
thread_alarm
Thread: 6 Slept for 5 (5) sec
Thread: 6 Waiting
process_alarm
process_alarm
...
thread_alarm
Thread: 5 Slept for 0 (1) sec
end
D.6 Unterschiede zwischen verschiedenen Thread-Paketen
MySQL ist sehr abh¨angig vom verwendeten Thread-Paket. Wenn Sie daher eine gute Plat-
tform f¨ur MySQL ausw¨ahlen, ist das Thread-Paket sehr wichtig.
Es gibt mindestens drei Typen von Thread-Paketen:
• Benutzer-Thread in einem einzelnen Prozess. Das Thread-Umschalten wird mit Alar-
men gemacht und die Thread-Bibliothek verwaltet alle nicht Thread-sicheren Funktio-
nen mit Sperren. Lese-, Schreib- und Auswahl-Operationen werden ¨ublicherweise mit
einer Thread-spezifischen Auswahl verwaltet, die auf einen anderen Thread umschal-
tet, wenn der laufende Thread auf Daten warten muss. Wenn die Benutzer-Thread-
Pakete in die Standard-Bibliotheken integriert sind (FreeBSD- und BSDI-Thread), er-
fordert das Thread-Paket weniger Overhead als Thread-Pakete, die alle unsicheren
Aufrufen mappen m¨ussen (MIT-pThread, FSU-PThread und RTS-Thread). In einigen
Umgebungen (beispielsweise SCO) sind alle Systemaufrufe Thread-sicher, weshalb das
Mapping sehr leicht durchgef¨uhrt werden kann (FSU-PThread unter SCO). Nachteil:
Alle gemappten Aufrufe ben¨otigen etwas Zeit und es ist sehr verzwickt, alle Situatio-
nen handhaben zu k¨onnen.
¨
Ublicherweise gibt es auch einige Systemaufrufe, die vom
Thread-Paket nicht gehandhabt werden (wie MIT-pThread und Sockets). Thread-
Scheduling ist nicht immer optimal.
• Benutzer-Thread in separaten Prozessen. Das Thread-Umschalten wird vom Kernel
durchgef¨uhrt und alle Daten werden zwischen den Threads geteilt. Das Thread-Paket
Comentarios a estos manuales