Cache memorija vs virtuelna memorija
Razlika između keš memorije i virtuelne memorije postoji u svrsi za koju se ova dva koriste i u fizičkom postojanju. Keš memorija je vrsta memorije koja se koristi za poboljšanje vremena pristupa glavnoj memoriji. Nalazi se između CPU-a i glavne memorije, a može postojati nekoliko nivoa keša kao što su L1, L2 i L3. Tip hardvera koji se koristi za keš memoriju je mnogo skuplji od RAM (Random Access Memory) koji se koristi za glavnu memoriju jer je keš memorija mnogo brža. Iz tog razloga, kapacitet keš memorije je vrlo mali. Virtuelna memorija je tehnika upravljanja memorijom koja se koristi za efikasno korišćenje RAM-a (glavne memorije) uz obezbeđivanje zasebnog memorijskog prostora za svaki program koji je čak i veći od stvarnog fizičkog kapaciteta RAM-a (glavne memorije). Ovdje se tvrdi disk koristi za proširenje memorije. Stavke u fizičkoj RAM memoriji se prenose naprijed-nazad s tvrdog diska.
Šta je keš memorija?
Keš memorija je vrsta memorije koja se nalazi između CPU-a (centralne procesorske jedinice) i RAM-a (memorije slučajnog pristupa). Svrha keš memorije je da smanji vrijeme pristupa memoriji CPU-a iz RAM-a. Keš memorija je mnogo brža od RAM-a. Dakle, vrijeme pristupa u kešu je mnogo manje od vremena pristupa u RAM-u. Ali cijena memorije koja se koristi za keš memoriju je mnogo veća od cijene memorije koja se koristi za RAM, pa je stoga kapacitet keš memorije vrlo mali. Tip memorije koja se koristi za keš memoriju naziva se SRAM (Static Random Access Memory).
Kad god CPU želi pristupiti memoriji, on prvo provjerava da li se ono što mu treba nalazi u keš memoriji. Ako jeste, mogao bi mu pristupiti s najmanjim kašnjenjem. Ako se ne nalazi u kešu, tada će se traženi sadržaj kopirati iz RAM-a u keš memoriju i tada će mu samo CPU pristupiti iz keša. Ovdje, prilikom kopiranja sadržaja iz keš memorije, ne samo sadržaj na traženoj memorijskoj adresi, već i obližnji sadržaj se kopira u keš memoriju. Dakle, sljedeći put postoji velika vjerovatnoća da će doći do pogotka u keš memoriji jer većina kompjuterskih programa najčešće pristupa obližnjim podacima ili podacima kojima je zadnji put pristupao. Dakle, zbog keš memorije, prosječna memorijska latencija je smanjena.
U CPU-u, postoje tri tipa keš memorije: keš instrukcija za pohranjivanje programskih instrukcija, keš podataka za pohranjivanje stavki podataka i međuspremnik Translation Look-aside Buffer za pohranjivanje memorijskih mapiranja. Za keš podataka, općenito, postoje keš memorije na više nivoa. Odnosno, postoji nekoliko keš memorija kao što su L1, L2 i L3. L1 keš memorija je najbrža, ali najmanja keš memorija koja je najbliža CPU-u. L2 keš je sporiji od L1, ali veći od L1 i nalazi se nakon L1 keša. Zbog ove hijerarhije bolje prosječno vrijeme pristupa memoriji može se postići uz manje troškove.
Šta je virtualna memorija?
Virtuelna memorija je tehnika upravljanja memorijom koja se koristi u računarskim sistemima. Ne postoji hardver koji se zove virtuelna memorija, ali to je koncept koji koristi RAM i čvrsti disk da obezbedi virtuelni adresni prostor za programe. Prva RAM memorija je podeljena na delove koji se nazivaju stranice i oni su identifikovani fizičkim memorijskim adresama. Na tvrdom disku je rezervisan poseban dio gdje se, u Linuxu, zove swap, a u Windows-u se zove datoteka stranice. Kada se program pokrene, daje mu se virtualni adresni prostor koji može biti čak i veći od stvarne fizičke memorije. Prostor virtuelne memorije je takođe podeljen na delove koji se nazivaju stranice i svaka od ovih stranica virtuelne memorije može se mapirati na fizičku stranicu. Tabela koja se zove tabela stranica prati ovo mapiranje. Kada fizičkoj memoriji ponestane prostora, ono što se radi je da se određene fizičke stranice guraju u taj poseban dio na tvrdom disku. Kada je bilo koja stranica gurnuta na tvrdi disk ponovo potrebna, ona se dovodi u fizičku memoriju stavljanjem druge odabrane stranice iz fizičke memorije na tvrdi disk.
Koja je razlika između keš memorije i virtuelne memorije?
• Keš memorija je vrsta memorije koja se koristi za poboljšanje vremena pristupa glavnoj memoriji. To je brži tip memorije koja se nalazi između CPU-a i RAM-a kako bi se smanjila prosječna latencija pristupa memoriji. Virtuelna memorija je metoda upravljanja memorijom gdje je to koncept koji omogućava programima da dobiju vlastiti virtualni memorijski prostor, koji je čak i veći od stvarnog fizičkog RAM-a koji je dostupan.
• Keš memorija je tip hardverske memorije koja stvarno postoji fizički. S druge strane, ne postoji hardver koji se zove virtuelna memorija jer je to koncept koji koristi RAM, čvrsti disk, jedinicu za upravljanje memorijom i softver da obezbedi virtuelnu vrstu memorije.
• Upravljanje keš memorijom se u potpunosti vrši hardverskim putem. Virtuelnom memorijom upravlja operativni sistem (softver).
• Keš memorija se nalazi između RAM-a i procesora. Prijenos podataka uključuje RAM, keš memoriju i procesor. Virtuelna memorija, s druge strane, uključuje prijenos podataka između RAM-a i tvrdog diska.
• Keš memorije zauzimaju male veličine kao što su kilobajti i megabajti. Virtuelna memorija, s druge strane, uključuje ogromne veličine koje zauzimaju gigabajte.
• Virtuelna memorija uključuje strukture podataka kao što su tabele stranica koje čuvaju mapiranje između fizičke i virtuelne memorije. Ali ova vrsta strukture podataka nije neophodna za keš memoriju.
Sažetak:
Cache memorija vs virtuelna memorija
Keš memorija se koristi za poboljšanje vremena pristupa glavnoj memoriji dok je virtuelna memorija metoda upravljanja memorijom. Keš memorija je stvarni hardver, ali ne postoji hardver koji se zove virtuelna memorija. RAM, čvrsti disk i razni drugi hardver zajedno sa operativnim sistemom stvaraju koncept koji se zove virtuelna memorija kako bi se obezbedio veliki i izolovani virtuelni memorijski prostor svakom programu. Sadržajem u keš memoriji upravlja hardver, dok sadržajem u virtuelnoj memoriji upravlja operativni sistem.