Virtuális memória
A virtuális memória a memória kezelésének egy módja, amely a számítógépekben használt technológia legújabb trendje. A hardver (a számítógép fizikai része, például a CPU vagy a grafikus kártya) a szoftvert futtatja. Ennek a szoftvernek szüksége van a számítógép memóriájára ahhoz, hogy fusson, és elvégezze a szükséges feladatokat. A legtöbb ma használatos számítógép egyszerre több dolgot is képes elvégezni, több alkalmazást futtat. Ezt nevezzük multiprocesszingnek.
Ebben az esetben az összes program vagy alkalmazás, amely egy időben fut a számítógépen, megosztja annak erőforrásait. Egy számítógép nem rendelkezik több processzorral vagy főmemóriával (RAM) csak azért, mert több program fut rajta.
A virtuális memória lényege, hogy az alkalmazás egy adott méretű memóriablokkot lát. Az alkalmazás ezt a memóriát saját belátása szerint használhatja. Ez a memóriablokk abban az értelemben virtuális, hogy különböző részekből származik. Egy része lehet a számítógép főmemóriájában, de lehet a lemezen is. A CPU-nak van egy speciális része, az úgynevezett Arithmetic Logic Unit, amely elvégzi az alkalmazásmemória és a rendszer erőforrásai közötti fordítások egy részét. A modern operációs rendszerek is elvégzik ennek a munkának egy részét.
Ha egy program olyan memóriablokkhoz próbál hozzáférni, amely nem a rendszermemóriában van, a program leáll, és a blokk betöltődik a rendszermemóriába. Ami a rendszermemória ezen részében volt, az a lemezre íródik. Ezt általában lapozásnak nevezik.
Bizonyos számítógépes rendszerek, például a beágyazott rendszerek, nem használnak virtuális memóriát, mert nagyon gyors vagy mindig azonos válaszidőre van szükségük. Az egyik probléma az, hogy a virtuális memória esetében nehéz megjósolni a válaszidőt. Egy olyan alkalmazás, amely a memória egy részét használja, amelyet a lemezről kell betölteni, más válaszidővel fog rendelkezni, mint egy olyan, amely nem használja. Ezért a beágyazott rendszerekben nem használják a virtuális memória koncepcióját.
![A program azt hiszi, hogy egy nagy összefüggő címtartománya van; de a valóságban az éppen használt részek szétszóródnak a főmemóriában, az inaktív részek pedig egy lemezfájlban vannak elmentve.](https://alegsaonline.com/image/VirtualMem01.png)
![Zoom](https://www.alegsaonline.com/zoom.png)
A program azt hiszi, hogy egy nagy összefüggő címtartománya van; de a valóságban az éppen használt részek szétszóródnak a főmemóriában, az inaktív részek pedig egy lemezfájlban vannak elmentve.
Kérdések és válaszok
K: Mi az a virtuális memória?
V: A virtuális memória a számítógépes memória kezelésének egy olyan módja, amely lehetővé teszi az alkalmazások számára, hogy hozzáférjenek egy adott méretű memóriablokkhoz. Ez a memóriablokk származhat különböző részekből, például a főmemóriából vagy a lemezről.
K: Hogyan működik a virtuális memória?
V: A virtuális memória úgy működik, hogy lehetővé teszi a CPU aritmetikai logikai egységének, hogy fordításokat végezzen az alkalmazás és a rendszer erőforrásai között. Ennek a munkának egy részét a modern operációs rendszerek is elvégzik. Ha egy alkalmazás megpróbál hozzáférni egy olyan memóriablokkhoz, amely nem a rendszermemóriában van, akkor az alkalmazás leáll, és a blokkot betölti a rendszermemóriába.
K: Milyen példák vannak olyan számítógépekre, amelyek nem használnak virtuális memóriát?
V: A beágyazott rendszerek az egyik példa azokra a számítógépekre, amelyek nem használnak virtuális memóriát, mert gyors vagy mindig azonos válaszidőt igényelnek. A virtuális memóriával nehéz megjósolni a válaszidőt, ezért nem használják beágyazott rendszerekben.
K: Mi az a multiprocesszálás?
V: A többprocesszoros feldolgozás az, amikor egy számítógép egyszerre több dolgot is képes elvégezni, több alkalmazást futtat egyszerre, amelyek megosztják az erőforrásait.
K: Mi történik, ha egy alkalmazás megpróbál hozzáférni egy olyan memóriablokkhoz, amely nem a rendszermemóriában van?
V: Ha egy alkalmazás megpróbál hozzáférni egy olyan memóriablokkhoz, amely nem a rendszermemóriában van, akkor leáll, és a blokk betöltődik a rendszermemóriába.
K: Mi az a lapozás?
V: A lapozás arra utal, ami akkor történik, amikor a rendszermemória adott részében lévő adatokat vissza kell írni a lemezre, mert egy alkalmazás egy másik, eredetileg nem ott tárolt részhez fér hozzá.