symlink.ch
Wissen Vernetzt - deutsche News für die Welt
 
symlink.ch
FAQ
Mission
Über uns
Richtlinien

Moderation
Einstellungen
Story einsenden

Suchen & Index
Ruhmeshalle
Statistiken
Umfragen

Redaktion
Themen
Partner
Planet

XML | RDF | RSS
PDA | WAP | IRC
Symbar für Opera
Symbar für Mozilla

Freunde
Benutzergruppen
LUG Switzerland
LUG Vorarlberg
LUGen in DE
SIUG
CCCZH
Organisationen
Wilhelm Tux
FSF Europe
Events
LinuxDay Dornbirn
BBA Schweiz
CoSin in Bremgarten AG
VCFe in München
Menschen
maol
Flupp
Ventilator
dawn
gumbo
krümelmonster
XTaran
maradong
tuxedo

 
Spekulative Programmausführung reduziert Wartezeiten
Veröffentlicht durch xilef am Dienstag 01. Juli, 09:44
Aus der Preisgekrönte-Papiere Abteilung
Wissenschaft An der Technical Conference der USENIX wurde ein Papier ausgezeichnet, das einige Kernel-Änderungen beschreibt, welche die IO-Wartezeiten von Programmen reduzieren können. Dabei wird zu einem Prozess eine Kopie gestartet, welche das Programm in Wartezeiten spekulierend weiterausführt und damit Prefetches auslösst.

Der Trick: Während ein Prozess auf die Erledigung eines IO-Requests (d.h. üblicherweise auf die Festplatte) wartet, startet der Kernel einen spekulativen Prozess, der den wartenden Prozess in einer gesicherten Umgebung weiterlaufen lässt als ob der Request bereits erledigt worden wäre. Der spekulative Prozess veranlasst somit automatisch ein Prefetching von Daten, die mit grosser Wahrscheinlichkeit später gebraucht werden. Dadurch muss der Hauptprozess später weniger lange warten und die von ihm benötigten Daten liegen oft bereits parat. Dies funktioniert über mehrere Files hinweg und auch mit Zugriffsmustern, die nicht einfach linear sind. Auch für's Swapping klappt's, allerdings mit ein paar weiteren Tricks.

Der Titel des Papiers: Operating System I/O Speculation: How Two Invocations Are Faster Than One.

Configfile-Chaos: Ist XML die Lösung? | Druckausgabe | Erste Multiplayer-Demo von Tron 2.0  >

 

 
symlink.ch Login
Login:

Passwort:

extrahierte Links
  • Operating System I/O Speculation: How Two Invocations Are Faster Than One
  • Technical Conference
  • USENIX
  • Papier
  • Mehr zu Wissenschaft
  • Auch von xilef
  • Diese Diskussion wurde archiviert. Es können keine neuen Kommentare abgegeben werden.
    naja (Score:1)
    Von db (001@nurfuerspam.de) am Tuesday 01. July, 10:22 MES (#1)
    (User #1177 Info) http://www.bergernet.ch
    tönt etwas heikel...

    die frage ist am schluss, wieviel bringts wirklich?
    L I N U X - life is to short for reboots...
    CPUs machen das schon lange (Score:1)
    Von ORCL am Tuesday 01. July, 10:36 MES (#2)
    (User #5 Info)
    CPUs machen das schon lange, und offensichtlich ist der Nutzen erwiesen, sonst würde es wenigstens ein paar Hersteller geben, die darauf verzichten.

    Da heutzutage ja bekanntlich der Prozessor allermeistens auf den User resp. I/O wartet, kann man diese paar Taktzyklen noch gut verschmerzen.

    lru (Score:0)
    Von Anonymer Feigling am Tuesday 01. July, 10:50 MES (#3)
    Man muß immer wissen was man als nächstes "prefetcht". Wenn ich da an "last recently used" denke, da hat sich rausgestellt, man könnte auch pages per Zufall rausswappen. Ist genauso effektiv. Das wird beim reinladen nicht anders sein. Da gab es doch mal ein swap prefetch patch für linux. Das hat im allgemeinen keinen Vorteil gebracht.
    Re:lru (Score:1)
    Von Achim Schneider am Tuesday 01. July, 13:08 MES (#6)
    (User #1029 Info)
    Man muß immer wissen was man als nächstes "prefetcht".
    Das weis das Programm das die Daten will (in der Regel) doch...
    Zwischen "spekulativ ausführen" und "spekulativ schon mal irgendwas lesen" ist ein meilenweiter Unterschied.
    Re:lru (Score:2)
    Von bones am Tuesday 01. July, 13:42 MES (#7)
    (User #481 Info) http://www.chabis.ch
    Spekulieren heisst ja nicht, dass man nicht, weiss, was man will, sondern eher, dass man nicht weiss, ob man es bekommt.

    Wer an der Börse spekuliert weiss auch, was er will; kriegt es aber halt oft nicht.

    Grüsse vom Knochen
    Re:lru (Score:0)
    Von Anonymer Feigling am Wednesday 02. July, 09:54 MES (#8)
    In vielen Fällen weiß man natürlich nicht was man will. Das hängt doch vom User oder von den Daten ab, die man liest, also auf die man wartet. Wie will man da schonmal spekulativ ausführen, obwohl man gar nicht weiß was man machen soll. Da wartet z.B ein Proramm auf Tastatureingaben..... was hat da spekulative Ausführung für sinn? Außerdem wird die CPU Zeit ja nicht verschwendet, es gibt ja noch andere Prozesse, die diese Prozessorzeit nutzen können.
    Re:lru (Score:2)
    Von bones am Wednesday 02. July, 13:49 MES (#9)
    (User #481 Info) http://www.chabis.ch
    Wenn man's nicht weiss tut man's halt nicht. Vermutlich ist der Algorithmus für die Fälle gedacht, in denen man's weiss.

    Die meiste CPU-Zeit wird vom idle-Task belegt - ausser, man hat irgend einen distributed computing client am Laufen (aber das haben gar nicht sehr viele Leute).

    Grüsse vom Knochen
    Bei gewissen Systemen... (Score:2)
    Von bones am Tuesday 01. July, 10:58 MES (#4)
    (User #481 Info) http://www.chabis.ch
    ist die Programmausführung wohl ausschliesslich spekulativ - und die Resultate auch ;>

    Für den, der nichts davon versteht (mich eingeschlossen) klingt das hier vor allem esotherisch. Aber das beweist wohl vor allem, dass Nicht-Fachleute hier am besten die Klappe halten.

    Grüsse vom Knochen
    hallo? habt ihr den Artikel gelesen? (Score:1)
    Von bungle am Tuesday 01. July, 11:02 MES (#5)
    (User #1202 Info)
    hallo Leute?

    "Die Frage ist, was es denn schlussendlich bringt"
    Hast du den ganzen Text gelesen, bevor du hier einen unqualifizierten Kommentar gepostet hast? Es ist dort nämlich _alles_ beschriben und erklärt. Manche Benchmarks/Programme laufen leicht langsamer, die Ergebnisse sind aber eher positiv.
    Bitte... wer nicht weiss wovon er spricht soll besser den Mund halten, das einzige was man sonst kriegt sind längere Ladezeiten der Website.
    more fun... (Score:1)
    Von Patrick Huber am Wednesday 02. July, 22:31 MES (#10)
    (User #1253 Info)
    es ist nicht ganz das gleiche aber über den mm patch für den 2.5er kernel kann ich nur eines sagen: wow!
    patches hier...

    es handelt sich hierbei um einen vorausschauenden scheduler, der im voraus 'weiss' welcher prozess als nächstes laufen 'will'...
    unter hoher last reagiert das system wesentlich besser auf clicks etc als mit dem aktuellen scheduler aus dem 2.4er kernel. ich hoffe, der wird in den 2.6er aufgenommen.

    Linux User Group Schweiz
    Durchsuche symlink.ch:  

    Never be led astray onto the path of virtue.
    trash.net

    Anfang | Story einsenden | ältere Features | alte Umfragen | FAQ | Autoren | Einstellungen