verhindern, dass linux-Gewinde mit Unterbrechung durch scheduler

Wie erklären Sie den thread-scheduler in linux nicht zu unterbrechen, dein thread Gründen? Ich bin die Programmierung im user-Modus. Nicht einfach sperren einer mutex-acomplish? Ich möchte verhindern, dass andere threads in meinem Prozess geplant werden, wenn eine bestimmte Funktion ausgeführt wird. Sie blockieren würde und ich wäre Verschwendung von cpu-Zyklen mit der Kontext-switches. Ich möchte jedem thread ausführen der Funktion in der Lage sein zu beenden, ausführen, ohne Unterbrechung, auch wenn die Fäden' timeslice überschritten wird.

Hi danke für die Kommentare. Ich glaube, ich gelernt, eine Antwort, die KEINE ist. Der Grund, warum ich fragte, war: Unsere app verbringt viel Zeit im IO-wait-states, denn es greift auf die 500 GB im Wert von Daten-Dateien, die ändern sich stündlich. Ich will viele threads parallel auszuführen, IO (ja der Filer kann damit umgehen...Sie sind schon das handling IO von 3200 Instanzen der app und das ist nicht mehr Arbeit, sondern verkürzen die Mauer der Zeit). Unsere Boxen sind alle MP mit 8-64 "CPUs" zählen die tatsächlichen Kerne und hyperthreading...also ich kann schon eine Menge von threads, die gleichzeitig laufen.
Parallell IO in der Regel wird die Leistung verringert, es kann Recht erheblich sein. Ein Antrieb kann nicht Dinge tun, die parallel(über einen bestimmten Punkt abhängig von Ihrem raid-setup). Wenn Sie möchten, um die Leistung zu maximieren, Sie wollen eine Handvoll IO-threads Fütterung (möglichst groß) von Daten zu/von worker-threads.
Schauen Sie in aio.h. Die asynchrone Input-Output @leeeroy Parallell IO kann ein Gewinn sein, da Sie es ermöglicht, die block-Gerät-scheduler, um tatsächlich Dinge zu planen und machen eine bessere Nutzung der fegt von der Festplatte lese/schreib-Köpfe. Plus-Festplatten haben Ihren eigenen cache und tun Ihre eigene Terminplanung. So oder so, AIO bekommen sollte, die benifit zu.

InformationsquelleAutor johnnycrash | 2010-04-07

Schreibe einen Kommentar