Warum geht dieser Kopiervorgang nicht gegen unendlich?



  • Mal angenommen wir haben unbegrenzten Speicherplatz und zeichnen auf diesem in einer Datei fortwährend live das Fernsehprogramm eines Senders auf.

    Anschließend machen wir eine Kopie der Datei.

    Frage:
    Warum dauert dieser Kopiervorgang für diese Kopie nicht unendlich lange an?
    Die Originaldatei wird ja immer größer, wie kann also das Kopierprogramm wissen, daß die Datei nun fertig kopiert wurde?

    Ich hab genau das nämlich gerademal unter WinXP mit dem Dateimanager und DVBView als Rekordersoftware ausprobiert und mußte feststellen,
    daß der Kopiervorgang durchgeführt und beendet wurde, aber nun, wie erwartet, die Originaldatei größer ist als die Kopie, denn die Originaldatei wurde und wird ja weiterhin immer größer solange der Rekorder läuft.



  • Warum ist die Datei denn nicht unendlich gross wenn du unendlich viele Daten hineinschreibst?



  • Wieso Abbruch schrieb:

    ...Anschließend...

    Ex Falso Quodlibet



  • Weil dein Kopierprogramm zu dumm ist 👎

    Entweder liest es am Anfang die derzeit gültige Dateigröße aus und kopiert nur soviel, wie am Anfang verfügbar.

    Oder es liest solange aus der Datei, bis nichts mehr vorhanden ist. Dann ist allerdings deine Festplattendurchsatz größer als die aufzuzeichnende Datenrate.

    Also brauchst du entweder ein 'anderes' Kopierprogramm, oder (falls die zweite Bedingung gilt) eine hinreichend langsame Festplatte 🤡



  • Paradoxon von Zeno?



  • Ähm schrieb:

    Weil dein Kopierprogramm zu dumm ist 👎

    Entweder liest es am Anfang die derzeit gültige Dateigröße aus und kopiert nur soviel, wie am Anfang verfügbar.

    Oder es liest solange aus der Datei, bis nichts mehr vorhanden ist. Dann ist allerdings deine Festplattendurchsatz größer als die aufzuzeichnende Datenrate.

    Also brauchst du entweder ein 'anderes' Kopierprogramm, oder (falls die zweite Bedingung gilt) eine hinreichend langsame Festplatte 🤡

    Oder ein Betriebssystem, was dies nicht gestattet.

    Der ganze Gedanke ist hinfällig. Es ist dämlich eine Datei zu kopieren, die nicht fertig beschrieben wurde.



  • Warum überholt Archimedes die Schildkröte? Der Kopiervorgang liest nunmal mit einer gewissen Geschwindigkeit Daten aus der Datei und diese Geschwindigkeit ist höher als die Schreibgeschwindigkeit des Streams. Also kommt der Kopiervorgang irgendwann an einen Punkt, wo er alle bis dahin vorhandenen Daten gelesen hat und dann ist er beendet. Dass kurz darauf wieder neue Daten kommen, spielt da erstmal keine Rolle.



  • ipsec schrieb:

    Der Kopiervorgang liest nunmal mit einer gewissen Geschwindigkeit Daten aus der Datei und diese Geschwindigkeit ist höher als die Schreibgeschwindigkeit des Streams. Also kommt der Kopiervorgang irgendwann an einen Punkt, wo er alle bis dahin vorhandenen Daten gelesen hat und dann ist er beendet. Dass kurz darauf wieder neue Daten kommen, spielt da erstmal keine Rolle.

    Das ergibt so keinen Sinn. Beim Kopievorgang müssen Daten gelesen und geschrieben werden. Denn sonst wär es nur ein Lesevorgang.



  • tail -f -n+0 source >target
    

    Dumme Idee?



  • Janjan schrieb:

    ipsec schrieb:

    Der Kopiervorgang liest nunmal mit einer gewissen Geschwindigkeit Daten aus der Datei und diese Geschwindigkeit ist höher als die Schreibgeschwindigkeit des Streams. Also kommt der Kopiervorgang irgendwann an einen Punkt, wo er alle bis dahin vorhandenen Daten gelesen hat und dann ist er beendet. Dass kurz darauf wieder neue Daten kommen, spielt da erstmal keine Rolle.

    Das ergibt so keinen Sinn. Beim Kopievorgang müssen Daten gelesen und geschrieben werden. Denn sonst wär es nur ein Lesevorgang.

    Es gibt in diesem Fall zwei Schreibvorgänge; der Kopierprozess (lesen und schreiben) und das Speichern des Streams (nur schreiben).



  • Janjan schrieb:

    ipsec schrieb:

    Der Kopiervorgang liest nunmal mit einer gewissen Geschwindigkeit Daten aus der Datei und diese Geschwindigkeit ist höher als die Schreibgeschwindigkeit des Streams. Also kommt der Kopiervorgang irgendwann an einen Punkt, wo er alle bis dahin vorhandenen Daten gelesen hat und dann ist er beendet. Dass kurz darauf wieder neue Daten kommen, spielt da erstmal keine Rolle.

    Das ergibt so keinen Sinn. Beim Kopievorgang müssen Daten gelesen und geschrieben werden. Denn sonst wär es nur ein Lesevorgang.

    Mit Lesen meinte ich Lesen und anschließendes Schreiben in die Zieldatei. Der TV-Stream wird langsamer Daten liefern, als Daten auf der Festplatte geschrieben werden können, also ist der Datendurchsatz des Kopiervorgangs (das Lesen aus der Datei und von mir aus auch das anschließende Schreiben in die Zieldatei) größer als der des Streams.



  • Janjan schrieb:

    Der ganze Gedanke ist hinfällig. Es ist dämlich eine Datei zu kopieren, die nicht fertig beschrieben wurde.

    Ist es nicht.

    Mein DVB-Viewer legt zwar via Timeshift diese Datei an, aber sobald ich die Aufnahme beende und z.B. den Sender wechsele, wird die Datei gelöscht und damit sind die aufgezeichneten Daten verloren.

    Will man diese also Retten, so muß man zwangsläufig die Timeshift Datei vorher kopieren, so daß es der DVB-Viewer nicht findet, oder eben eine normale Videoaufzeichnung mit DVD-Viewer machen, aber letzteres war vielleicht gar nicht geplant, man machte Timeshift rein, weil man nur 5 min aufs Klo wollte und dann kommt nen Telefonanruf der einem 1 h beschäftigt, aber ne weitere Stunde weitersehen kann man sich nicht leisten, denn im anderen Sender kommt ja was anderes, was man sehen wollte.

    Also, das Szenario kommt in der Praxis real vor und ist daher keinesfalls dämlich.



  • Nukularfüsiker: Da bekommt deine Signatur ne ganz neue Bedeutung 😉



  • Hallo Kopiervorgang,
    den DVB-Viewer kann man per Einstellung dazu ermächtigen, dass er die Timeshift-Dateien beibehält. Dummerweise ist das bei mir aktiv und ich finde die Einstellung nicht mehr, um das Rückgängig zu machen - Deshalb muss ich die Dateien regelmäßig per Hand löschen 😉



  • Weil immer nur das kopiert werden kann was bekannt ist?? Bekannte Dinge können üblicherweise auch berechnet werden. Woher soll die Anwendung wissen, dass die zu kopierende Datei noch größer wird??

    Nehmen wir an ich frag dich unendlich oft wieviel n/2 ist. Beim ersten mal ist n=2, danach ist n=4, dann n=6, dann n=8 und so weiter! Du rechnest immer mit bekannten Größen und somit wirst du nie auf "unendlich" kommen.

    VlG


  • Mod

    RandomAccess85 schrieb:

    Weil immer nur das kopiert werden kann was bekannt ist?? Bekannte Dinge können üblicherweise auch berechnet werden. Woher soll die Anwendung wissen, dass die zu kopierende Datei noch größer wird??

    Ähm, weil man es ihr mitteilt? Ist ja nicht so, dass der hier beschriebene Kopiervorgang nicht möglich wäre. Die Antwort, dass das Kopierprogramm zu doof ist, war schon richtig.



  • SeppJ schrieb:

    RandomAccess85 schrieb:

    Weil immer nur das kopiert werden kann was bekannt ist?? Bekannte Dinge können üblicherweise auch berechnet werden. Woher soll die Anwendung wissen, dass die zu kopierende Datei noch größer wird??

    Ähm, weil man es ihr mitteilt?

    Uhh gute Idee ...

    RandomAccess85 fragt: 2/2 ist?
    SeppJ antwortet: 1
    RandomAccess85 fragt: "ich war noch nicht fertig" 4/2 ist?
    SeppJ antwortet: 2
    RandomAccess85 fragt; "warts doch mal ab" 6/2 ist?

    Ich denk dat reicht 🙂 Du kannst der Anwendung so oft wie möglich mitteilen dass der Vorgang noch nicht abgeschlossen ist, die Anwendung wird NIE erfahren dass der Vorgang unendlich ist! Der, der den Vorgang auslöst ist Schuld, denn nur er hat eine Chance zu wissen, dass das Resultat unendlich ist....

    VlG


  • Mod

    Häh, was meinst du? Es gibt Kopierprogramme die wachsende Dateien kopieren können, gar kein Problem. Ich sehe nicht, wo du da Schwierigkeiten siehst. Die funktionieren nicht mit "es ist noch nicht fertig, mach weiter" sondern mit "es ist fertig, du kannst jetzt aufhören". Ganz einfach.



  • Vergisset einfach 🙄



  • Nukularfüsiker schrieb:

    tail -f -n+0 source >target
    

    Dumme Idee?

    ja, so könnte es funktionieren.


Log in to reply