Re: AVR Tx Rx direkt koppeln



Thorsten Oesterlein <rundordner@xxxxxx> wrote:
Am Sat, 30 May 2009 14:13:36 +0200 schrieb Alexander Schreiber:

Hallo!

Es werden von 2 Tasks jeweils viele Dateioperationen an den Scheduler des
Dateisystems ubermittelt, und der darf entscheiden, wie der die optimal
ausfuehrt, optimal meistens in dem Sinne dass die physikalischen
Eigenschaftend er Platte nicht ignoriert werden.

Genau. Und weil der das entscheidet und nicht die Applikation, kann die
Aplikation maximal raten wann ihre Daten geschrieben werden und im
schlimmen Fall - aus Sicht der Applikation - dauert es länger die Daten zu
schreiben als ohne Scheduler.

Unwahrscheinlich, die aktuellen disk scheduler sind ziemlich clever.
Gutes disk scheduling ist naemlich auch nicht trivial. Dem geneigten
Leser sei der entsprechende Quelltext zur Lektuere empfohlen.

Ich schrieb ja auch nicht, daß dem in jedem Fall so ist, sondern nur, daß
es eben so sein kann.

Und bis nach dem Commit ( über das die App
so und so keine Controlle hat ) ist nicht mal sicher, daß die Daten
wirklich auf der Platte sind.

Falsch. Auf brauchbaren Systemen existieren Syscalls wie fsync(2) und
fdatasync(2), mit denen die Anwendung das Schreiben der Daten auf Disk
erzwingen kann. Die Syscalls kehren erst zurueck, wenn das Disksystem
meldet, dass die Daten erfolgreich geschrieben wurden.

Das muß ich aber

a.: erst implementieren. Sprich Software die das nicht kann, hat das
Nachsehen.

Eh? An den passenden Stellen die entsprechenden Syscalls aufrufen und
gut ist. Noetigenfalls dem Codierknecht die POSIX-Standards um die Ohren
hauen.

b.: Bin ich dann genau an jenem Punkt den ich schon schrieb, nämlich, daß
ich dann in meiner App extra wieder darauf warten muß, daß die
entsprechenden Aufrufe sich zurückmelden.

Natuerlich, wenn man sicher sein will, das die Daten auf stabilem
Speicher sind, geht es nicht anders. Man kann natuerlich die Writer per
Threading entkoppeln.

Und wenn das jede Software macht, ist der Vorteil es Schedulers wieder
dahin. Bzw reichen 2 Apps wenns beide so machen und heftigen I/O erzeugen.

Kommt auf die Anwendungen, die Form des produzierten Disktraffics und
den I/O-Scheduler an. Und nicht jede Anwendung braucht das in gleicher
Form. Bei einer DB muss jede Transaktion nach dem COMMIT auf Disk sein,
also wird die eher viel davon Gebrauch machen, bei einem Editor ist das
nur beim Speichern der Daten relevant, passiert also so selten, dass es
keine Rolle spielt.

Sollte das commit aus welchen Grund auch immer Fehlschlagen, dann hast du
so und so die A....karte. Dann kannst ein Rollback machen und aus Maus.
Deine Daten sind weg und die App weiß das nicht mal.

Bei Hardwarefehlern/-ausfaellen ist man so oder so angeschmiert, da kann
das Betriebssystem nichts fuer. Man kann sowas in gewissen Grenzen durch
redundate Systeme abfangen. Man kann es sogar praktisch komplett
abfangen[0], aber den Aufwand will keiner bezahlen ;-)

Der Unterschied ist nur der, daß die Daten einma wirklich auf der Platte
landen, das andere mal - dank Scheduler - verzögert. Das Zeitfenster in dem
es kritisch ist, ist entsprechend größer. Ein Commit alle paar Sekunden ist
da schon irre lang.

Kommt drauf an, was man braucht.

Man liest sich,
Alex.
--
"Opportunity is missed by most people because it is dressed in overalls and
looks like work." -- Thomas A. Edison
.



Relevant Pages

  • Re: AVR Tx Rx direkt koppeln
    ... Es werden von 2 Tasks jeweils viele Dateioperationen an den Scheduler des ... Eigenschaftend er Platte nicht ignoriert werden. ... die aktuellen disk scheduler sind ziemlich clever. ... Unabhaengige Dateien koennen unabhaengig bearbeitet werden und in ...
    (de.sci.electronics)
  • Re: AVR Tx Rx direkt koppeln
    ... Eigenschaftend er Platte nicht ignoriert werden. ... die aktuellen disk scheduler sind ziemlich clever. ... Unabhaengige Dateien koennen unabhaengig bearbeitet werden und in ...
    (de.sci.electronics)
  • Re: AVR Tx Rx direkt koppeln
    ... mit denen die Anwendung das Schreiben der Daten auf Disk ... Die Syscalls kehren erst zurueck, ... den I/O-Scheduler an. ... daß die Daten einma wirklich auf der Platte ...
    (de.sci.electronics)
  • Re: Pluggable Disk Scheduler Project
    ... is anybody working on the `Pluggable Disk Scheduler Project' from ... I would put it into geom. ... hardware) outstanding request and to pass new requests to its ... experimenting with various solutions on the scheduler placement. ...
    (freebsd-hackers)
  • Re: PC findet beim Starten keine Systempartition
    ... For sectorreparing DFT offers two different functions: ... Erase disk entire Disk will be rewritten ... Sector repair, corrupted Sectors are rewritten ... Wenn man die Platte komplett ausnullt, sind auch die Fehler weg, ...
    (de.comp.hardware.misc)