normalerweise machen das betriebssysteme nur, wenn ein programm es verlangt. es wäre irgendwie unlogisch, beim ersten durchgang dateien mit einer DAW einzulesen und die dann im RAM zu halten. wenn das so wäre, könnte man ja auch gleich alles vorher ins ram laden, so wie das z.b. ein sampler macht.
Nein, die Betriebssysteme machen das stets (wenn Programme wie z.B. Datenbanken das nicht *explizit* verhindern) und nutzen freies RAM damit optimal aus, was sehr logisch ist. Kann auch jeder mal testen: Einfach zweimal von einem *langsamen* USB-Stick eine 1-2GB große Datei auf den Rechner kopieren und man wird feststellen, wie schnell das das zweite Mal geht, weil eben nicht mehr tatsächlich vom Stick gelesen wird, sondern nur noch von der „Kopie“ im RAM.
Hier mal ein Ausschnit von dem Programm „top“ unter Linux, das es aber auch unter MacOS im Terminal gibt, von unserem HTPC:
Code:
Tasks: 173 total, 2 running, 171 sleeping, 0 stopped, 0 zombie
%CPU(s): 16,4 us, 6,0 sy, 9,0 ni, 55,2 id, 13,4 wa, 0,0 hi, 0,0 si, 0,0 st
MiB Spch: 15697,7 total, 5892,7 free, 1213,2 used, 8591,7 buff/cache
MiB Swap: 3906,4 total, 3906,4 free, 0,0 used. 14087,1 avail Spch
Die Bedeutung:
15697,7 total <--- Die Kiste hat 16GB RAM
5892,7 free <--- Davon sind knapp 6GB tatsächlich ungenutzt
1213,2 used <--- von Programmen und deren Daten sind etwa 1,2GB genutzt
8591,7 buff/cache <--- als Festplattencache sind etwa 8,5GB belegt
Die 8,5GB werden zwar als Festplattencache benutzt, gelten aber dennoch prinzipiell als „verfügbar“. D.h, wenn nun ein weiteres Programm gestartet wird oder ein laufendes Programm plötzlich viel Speicher vom Betriebssystem anfordern sollte, werden Daten aus dem Festplattencache natürlich verworfen (wenn die 6GB freies RAM nicht ausreichen sollten) weil diese im Zweifelsfall neu gelesen werden könnten.
Wie gesagt, dieser Mechanismus wird rein vom Betriebssystem verwaltet, weil nur das Betriebsystem weiß, welche Teile des RAMs aktuell frei sind oder welches Programm Speicher anfordert und ob evtl. Cache wieder verworfen werden müsste. Man kann also sagen, dass moderne Betriebssysteme ungenutztes RAM dafür nutzen, um aus jeder Art von Festplatte eine Art Hybrid/Fusion Drive zu machen. Das nützt selbst der schnellsten SSD, weil aus dem RAM lesen deutlich schneller ist. Natürlich ist diese Art von „Fusion Drive“ nicht persistent über Reboots.
Würden DAWs von sich aus versuchen, soviel Audiomaterial wie möglich voran ins RAM zu laden und dort zu halten, wäre das schlecht: Im schlimmsten Fall würde man sich das RAM damit vollstopfen, obwohl es gar nicht gebraucht würde, weil man z.B von dem 15-Minuten-Song immer nur an dem Intro rumbastelt. Die DAW kriegt auch leider nicht mit, wenn Du z.B. nebenbei ein anderes Programm startest, was ebenfalls viel RAM benötigt. Daher kümmern sich heutzutage Programm um solche Cachingfragen nicht mehr und überlassen das i.d.R. dem Betriebsystem. (Wie gesagt, es gibt Ausnahmen: Datenbanksysteme cachen in der Tat ihren Kram oftmals selbst, weil sie mehr Spezialwissen über die Dateistrukturen und Optimierungen haben als das Betriebssystem, aber das ist ein anderes Thema)