Re: konkurrierende Dateizugriffe

From: Oliver Fromme <olli(at)lurza.secnetix.de>
Date: Mon, 7 Mar 2005 12:45:04 +0100 (CET)

Marc Santhoff <M.Santhoff(at)t-online.de> wrote:
> Am Di, den 01.03.2005 schrieb Bernd Walter um 18:12:
> > On Tue, Mar 01, 2005 at 05:48:36PM +0100, Marc Santhoff wrote:
> > > Das heißt irgendwelche Merkwürdigkeiten bezüglich vergebener oder schon
> > > wieder leerer Sektoren treten nicht auf weil der Prozeß selbst ja
> > > (normalerweise) für's Schreiben exklusiv sperrt.

Nur, wenn die betreffenden Prozesse das ausdrücklich selbst
tun. Von allein wird da nichts gesperrt. (Es gibt mehrere
verschiedene, unabhängige Locking-APIs, die aber alle auf
kooperativer Basis funktionieren und rein freiwillig sind).

Um das Belegen und Freigeben von Blöcken bzw. Fragmenten
(den Begriff »Sektor« gibt es in dem Kontext nicht) kümmert
sich der Dateisystem-Code des Betriebssystems, unabhängig
von irgendwelchen Prozessen. Dies hat auch nichts mit dem
Locking auf Prozeßebene zu tun.

> > Normalerweise wird nichts gesperrt, solange eine Software nicht
> > explizit dafür sorgt.
>
> Ist klar, das würde ich dann einen Bug nennen.

Nein, das ist der Default. Ein Bug wäre es, wenn eine
Software Dateien grundlos sperren würde.

Eine Software sollte die Dateien, die sich in ihrem Zugriff
befinden, dann und nur dann locken, wenn dies aufgrund der
Art des Zugriffs erforderlich ist (ein gutes Beispiel sind
Mailprogramme, die ihre Mailfolder locken sollten). Ande-
renfalls spricht nichts dagegen, daß zwei (oder mehr) Pro-
zesse gleichzeitig in dieselbe Datei schreiben.

> Wenn man Dateien zum
> schreiben öffnet, müssen sie auch adäquat gesperrt werden.

Nö, müssen sie nicht. Ich öffne alle naselang Dateien mit
unterschiedlichen Tools gleichzeitig, und ich fände es
äußerst lästig, wenn das nicht ginge. Das ist ja hier kein
Windows ... ;-)

Gerade vorhin hatte ich eine tar-Datei mit einem Hex-Editor
geöffnet, an deren Ende das tar-Kommando immer noch munter
seine Daten anhängte. Wieso sollte das nicht gehen? Wieso
sollte tar (oder die meisten anderen Kommandos) seine Da-
teien locken? Das schränkt doch nur unnötig die Möglich-
keiten ein, die man hat.

> > Was für Merkwürdigkeiten meinst du genau?
>
> Z.B. das es inkonsistente Sektoren gibt, aber das kann offenbar nicht
> sein.

Es gibt keine »inkonsistenten Sektoren«. Sektoren (genauer
gesagt Blöcke) sind eine physikalische Zuordnungseinheit.
Inkonsistent kann das logische Dateisystem sein, daß darauf
abgelegt ist, aber wie Bernd schon schrieb, kann das nur
bei einem unkontrollierten Crash (Stromausfall o.ä.) pas-
sieren.

> Hab ich gemerkt. Ich brauchte etwa die Hälfte der darin enthaltenen
> Verzeichnisse und wollte mir sparen, die alle auf der Kommandozeile zu
> nennen. Beim Blick auf die "tar xvf"-Ausgabe durfte ich dann
> feststellen, daß die Verzeichnisse darin doch nicht alphabetisch
> sortiert sind, wie ich naiverweise angenommen hatte.

tar verschwendet (wie die meisten Tools) keine Zeit damit,
die Namen irgendwie zu sortieren. Sie landen im Archiv in
derselben Reihenfolge wie bei »ls -f« oder »find«.

Gruß
   Olli

-- 
Oliver Fromme, secnetix GmbH & Co KG, Oettingenstr. 2, 80538 München
Any opinions expressed in this message may be personal to the author
and may not necessarily reflect the opinions of secnetix in any way.
"anyone new to programming should be kept as far from C++ as
possible;  actually showing the stuff should be considered a
criminal offence" -- Jacek Generowicz
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Mon 07 Mar 2005 - 12:46:00 CET

search this site