Sidecache - Page cache
I databehandling er en sidebuffer , noen ganger også kalt diskbuffer , en gjennomsiktig hurtigbuffer for sidene som stammer fra en sekundær lagringsenhet , for eksempel en harddisk (HDD) eller en solid state-stasjon (SSD). Den operativsystemet holder en side cache i ellers ubrukte deler av hovedminnet (RAM), noe som resulterer i raskere tilgang til innholdet i bufrede sider og generelle ytelse. En sidecache er implementert i kjerner med styring av personsøkeminnet , og er stort sett gjennomsiktig for applikasjoner.
Vanligvis brukes alt fysisk minne som ikke er direkte tildelt applikasjoner av operativsystemet til sidebufferen. Siden minnet ellers ville være inaktiv og lett gjenvinnes når applikasjoner ber om det, er det vanligvis ingen tilknyttet ytelsesstraff, og operativsystemet kan til og med rapportere minne som "gratis" eller "tilgjengelig".
Sammenlignet med hovedminnet, er harddisken lese / skrive treg, og tilfeldige tilganger krever dyre disksøk ; som et resultat gir større mengder hovedminne ytelsesforbedringer ettersom mer data kan lagres i minnet. Separat diskbufring tilbys på maskinvaresiden, av dedikerte RAM- eller NVRAM- brikker som er plassert enten i diskkontrolleren (i så fall er hurtigbufferen integrert i en harddiskstasjon og vanligvis kalt diskbuffer ) eller i en diskarrayekontroller . Slike minne bør ikke forveksles med sidebufferen.
Minne bevaring
Sider i sidebufferen som er endret etter innføring kalles skitne sider. Siden ikke-skitne sider i sidebufferen har identiske kopier i sekundærlagring (f.eks. Harddisk eller solid state-stasjon), er det mye raskere å forkaste og gjenbruke plassen enn å peke ut applikasjonsminne, og det er ofte å foretrekke fremfor å skylle de skitne sidene i sekundær lagring og gjenbruk av plassen. Kjørbare binærfiler , for eksempel applikasjoner og biblioteker, er også vanligvis tilgjengelig via sidebuffer og tilordnes individuelle prosessrom ved bruk av virtuelt minne (dette gjøres gjennom mmap- systemkallingen på Unix-lignende operativsystemer). Dette betyr ikke bare at de binære filene deles mellom separate prosesser, men også at ubrukte deler av binærfiler vil bli spylt ut av hovedminnet til slutt, noe som fører til minnebevaring.
Siden bufrede sider lett kan kastes ut og brukes på nytt, rapporterer noen operativsystemer, spesielt Windows NT , til og med sidebufferbruken som "tilgjengelig" minne, mens minnet faktisk er allokert til disksider. Dette har ført til noe forvirring om bruk av sidebuffer i Windows.
Disk skriver
Sidecache hjelper også til å skrive til en disk. Sider i hovedminnet som er endret under skriving av data til disk er merket som "skitne" og må skylles til disk før de kan frigjøres. Når det registreres en fil, blir den bufrede siden for den aktuelle blokken slått opp. Hvis det allerede er funnet i sidebufferen, blir skrivingen gjort til den siden i hovedminnet. Hvis den ikke blir funnet i sidebufferen, blir ikke siden leses fra disk, når den skrives perfekt på sidestørrelsesgrenser , men tildeles og umiddelbart merkes skitten. Ellers blir siden (e) hentet fra disken, og forespurte endringer er gjort. En fil som blir opprettet eller åpnet i sidebufferen, men ikke skrevet til, kan resultere i en null bytefil ved senere lesing.
Imidlertid kan ikke alle bufret sider skrives til da programkode ofte blir kartlagt som skrivebeskyttet eller kopi-på-skriv ; i sistnevnte tilfelle vil modifikasjoner på koden bare være synlige for selve prosessen og vil ikke bli skrevet til disken.
Sidekanalangrep
I 2019 demonstrerte sikkerhetsforskere sidekanalangrep mot sidebufferen: det er mulig å omgå privilegieseparasjon og exfiltrere data om andre prosesser ved systematisk å overvåke om noen filsider (for eksempel kjørbare filer eller bibliotekfiler ) er tilstede i hurtigbufferen eller ikke.