Erik: Grundsätzliche Frage zu Dateien

Hi,
Da ich leider keine Ahnung habe, wie auf einer Festplatte Daten abgelegt werden, habe ich eine grundsätzliche Frage zum Öffnen von Dateien: wird wenn ein Programm eine Datei öffnet eigentlich immer gleich die gesamte Datei von der Festpallte ausgelesen oder kann dies auch Zeile pro Zeile geschehen?
MfG
Erik

  1. hi!

    Da ich leider keine Ahnung habe, wie auf einer Festplatte Daten
    abgelegt werden, habe ich eine grundsätzliche Frage zum Öffnen von
    Dateien: wird wenn ein Programm eine Datei öffnet eigentlich immer
    gleich die gesamte Datei von der Festpallte ausgelesen oder kann
    dies auch Zeile pro Zeile geschehen?

    Aus Sicht des Programms kann es selbst entscheiden, ob das File
    blockweise (Binärfiles) oder zeilenweise (Textfiles) ausgelesen wird.
    Dem Kernel/Betriebssystem ist das ziemlich egal, abgesehen davon,
    dass das zeilenweise Auslesen mehr arbeit ist.

    Ein gutes Betriebssystem wird basierend auf gewissen Heuristiken
    vermutlich sowieso Teile der Datei im Voraus von der Festplatte laden,
    um nicht unnötig Prozesse auszubremsen.

    bye, Frank!

  2. Moin!

    Da ich leider keine Ahnung habe, wie auf einer Festplatte Daten abgelegt werden, habe ich eine grundsätzliche Frage zum Öffnen von Dateien: wird wenn ein Programm eine Datei öffnet eigentlich immer gleich die gesamte Datei von der Festpallte ausgelesen oder kann dies auch Zeile pro Zeile geschehen?

    Wie ein Programm eine Datei liest, kommt wohl auf das jeweilige Programm an.

    Grundsaetzlich werden Dateien aber entweder blockweise (wobei ein Block z.B. 512 Byte gross ist) oder Zeile fuer Zeile ausgelesen, wobei man den Lesezeiger innerhalb der auszulesenden Datei beliebig herumschieben kann und es somit auch moeglich ist, irgendwo mitten in der Datei Teile auszulesen, ohne dafuer zuerst den Anfang auslesen zu muessen.

    Die meisten Programme laden die zu bearbeitende Datei dann halt Stueck fuer Stueck, bis sie gesamt im Hauptspeicher liegt und das Programm daran herumwerkeln kann, wie es gerade Lust hat.

    Hoffe, diese Erklaerung war in ihrer Formulierung nicht allzu falsch und hilft weiter ;)

    Ciao!
    Sebastian

  3. Hallo,

    Da ich leider keine Ahnung habe, wie auf einer Festplatte Daten abgelegt werden, habe ich eine grundsätzliche Frage zum Öffnen von Dateien:

    AFAIK werden Daten auf der Festplatte grundsätzlich blockweise abgelegt. Auch bei Disketten oder CD-ROMS erfolgt die Speicherung blockweise.

    Betriebssysteme verwenden heutzutage auch, soweit mir bekannt, blockweise arbeitende Filesysteme (FAT, HPFS, NTFS, ext, ext2...). Allerdings können sich dabei die Blockgrößen von denen der Datenträger unterscheiden.
    Außerdem verfügen die meisten Betriebssysteme über einen mehr oder weniger ausgeklügelten Cache-Mechanismus, um den Datenzugriff für die Anwendungen zu optimieren.
    Die Betriebssysteme stellen aber den Programmen Funktionen zur Verfügung, womit diese die Dateien entweder blockweise oder zeichenweise auslesen und schreiben können.
    Die wenigsten Betriebssysteme bieten allerdings Funktionen zum zeilenweise Einlesen, das erledigen die Programme/Programmiersprachen intern.

    In welcher Form die Dateien nun betriebssystemintern wirklich organisiert und verwaltet sind, ist in den meisten Anwendungsfällen eher unerheblich. Ich denke, nur wenn es um zeitkritische Anwendungen geht (Video, Audio...), wird es wirklich interessant zu wissen, wie das ganze 'Werkel' wirklich arbeitet.

    wird wenn ein Programm eine Datei öffnet eigentlich immer gleich die gesamte Datei von der Festpallte ausgelesen oder kann dies auch Zeile pro Zeile geschehen?

    Bei kleinen Dateien (ein logischer Datenblock) wird sicherlich die ganze Datei vom BEtriebssystem eingelesen, allerdings werden die Daten dann häppchenweise an das Programm weitergereicht. Benötigen die Dateien mehr als einen logischen Block, ist das Verhalten stark abhängig vom System und dessen aktuellen Zustand, als daß hier eine allgemein gültige Aussage für das Betriebssystem getroffen werden kann. Das Programm erhält allerdings die Daten wieder häppchenweise.

    Grüße
      Klaus