Sidcache
Inom datorer är en sidcache , ibland även kallad diskcache , en genomskinlig cache för sidor som kommer från en sekundär lagringsenhet som en hårddisk (HDD) eller en solid-state-enhet (SSD). Operativsystemet håller en sidcache i annars oanvända delar av huvudminnet ( RAM), vilket resulterar i snabbare åtkomst till innehållet på cachade sidor och övergripande prestandaförbättringar. En sidcache är implementerad i kärnor med hanteringen av personsökningsminne och är för det mesta transparent för applikationer.
Vanligtvis används allt fysiskt minne som inte är direkt allokerat till applikationer av operativsystemet för sidcachen. Eftersom minnet annars skulle vara inaktivt och lätt kan återvinnas när applikationer begär det, finns det i allmänhet ingen associerad prestandastraff och operativsystemet kan till och med rapportera sådant minne som "fritt" eller "tillgängligt".
Jämfört med huvudminnet är hårddiskens läsning/skrivning långsam och slumpmässig åtkomst kräver dyra disksökningar ; som ett resultat, större mängder huvudminne ger prestandaförbättringar eftersom mer data kan cachelagras i minnet. Separat diskcachelagring tillhandahålls på hårdvarusidan, av dedikerade RAM- eller NVRAM- chips placerade antingen i diskkontrollern (i vilket fall cachen är integrerad i en hårddisk och vanligtvis kallad diskbuffert ), eller i en diskarraykontroller . Sådant minne ska inte förväxlas med sidcachen.
Minnesbevarande
Sidor i sidcachen som ändrats efter att ha tagits in kallas smutsiga sidor. Eftersom icke-smutsiga sidor i sidcachen har identiska kopior i sekundär lagring (t.ex. hårddisk eller solid-state-enhet), går det mycket snabbare att kassera och återanvända deras utrymme än att bläddra ut programminnet, och det är ofta att föredra framför att spola de smutsiga sidorna till sekundär lagring och återanvänder sitt utrymme. Körbara binärer , såsom applikationer och bibliotek, nås också vanligtvis via sidcache och mappas till individuella processutrymmen med hjälp av virtuellt minne (detta görs genom mmap -systemanropet på Unix-liknande operativsystem). Detta betyder inte bara att de binära filerna delas mellan separata processer, utan också att oanvända delar av binärer kommer att spolas ut ur huvudminnet så småningom, vilket leder till minneskonservering.
Eftersom cachade sidor enkelt kan vräkas och återanvändas, rapporterar vissa operativsystem, särskilt Windows NT , till och med sidcacheanvändningen som "tillgängligt" minne, medan minnet faktiskt är allokerat till disksidor. Detta har lett till viss förvirring om användningen av sidcache i Windows.
Disk skriver
Sidcachen hjälper också till att skriva till en disk. Sidor i huvudminnet som har modifierats under skrivning av data till disk är markerade som "smutsiga" och måste spolas till disk innan de kan frigöras. När en filskrivning inträffar, letas den cachade sidan för det specifika blocket upp. Om den redan finns i sidcachen görs skrivningen till den sidan i huvudminnet. Om den inte hittas i sidcachen, då, när skrivningen perfekt faller på sidstorleksgränserna , läses sidan inte ens från disken, utan allokeras och markeras omedelbart som smutsig. Annars hämtas sidan/sidorna från disken och begärda ändringar görs. En fil som skapas eller öppnas i sidcachen, men som inte skrivs till, kan resultera i en nollbytefil vid en senare läsning.
Det går dock inte att skriva till alla cachade sidor eftersom programkoden ofta mappas som skrivskyddad eller kopiera vid skriv ; i det senare fallet kommer ändringar av koden endast att vara synliga för själva processen och kommer inte att skrivas till disken.
Sidokanalattacker
Under 2019 visade säkerhetsforskare sidokanalsattacker mot sidcachen: det är möjligt att kringgå behörighetsseparering och exfiltrera data om andra processer genom att systematiskt övervaka om vissa filsidor (till exempel körbara filer eller biblioteksfiler ) finns i cachen eller inte.