Memòria virtual

La memòria virtual és un sistema de gestió de la memòria dins el sistema operatiu dels ordinadors que ofereix als programes la impressió que la memòria que fan servir té adreces continuades, mentre que en realitat la memòria pot estar físicament fragmentada o fins i tot sobrepassar la memòria física i desar-se en emmagatzemament secundari (normalment disc dur). Els sistemes que usen aquesta tècnica fan més fàcil la programació de grans aplicacions i permeten un ús més eficient de la memòria real (normalment memòria RAM).

Cal remarcar que, en contra de la creença popular, la memòria virtual no és només utilitzar espai de disc per augmentar la quantitat de memòria física del sistema. L'extensió de la memòria és una conseqüència normal d'usar tècniques de memòria virtual, però es podria fer per altres mitjans, com ara tècniques d'overlay o d'intercanvi (swapping) de programes sencers a la memòria secundària quan aquests estan inactius. El que defineix la memòria virtual és que redefineix l'espai d'adreces amb adreces de memòria contigües, fent creure als programes que disposen de grans blocs de memòria continua quan en realitat aquestes posicions de memòria poden estar físicament escampades.

Això també possibilita que un procés estigui només carregat parcialment (resident) a la memòria principal. Amb aquest sistema a la suma dels espais lògics dels processos s'hi pot sumar la quantitat de memòria física global del sistema. També permet executar processos que necessitin més memòria de la disponible.

Per dur a terme l'extensió de memòria, s'estableix una política per decidir quan i quines pàgines de memòria es copien a disc (normalment les que fa temps que no s'utilitzen), per deixar lloc a noves pàgines que s'hagin de carregar a la memòria principal. En cas que el processador necessiti accedir a alguna pàgina que sigui emmagatzemada al disc dur el sistema la torna a carregar a la memòria principal.

Tots els sistemes operatius moderns utilitzen sistemes de memòria virtual. En canvi, els sistemes encastats i sistemes especials que necessiten temps de resposta molt ràpids no empren memòria virtual.

Tècniques d'implementació

Paginació 

Gairebé totes les implementacions de memòria virtual divideixen l'espai d'adreces de memòria virtual en pàgines. Una pàgina és un bloc d'adreces de memòria virtual contigua de mida fixa. Una mida típica de les pàgines és de 4KB.

El procés de paginació és el procés de salvar aquelles parts inactives de la memòria virtual al disc i el procés invers de restaurar-les de disc quan es tornen a requerir. Les pàgines no tenen per què ser restaurades a les mateixa posició real que tenien anteriorment.

Taules de pàgines 
Gairebé totes les implementacions utilitzen taules de pàgines per tal de convertir les adreces virtuals (o lògiques) que utilitza l'aplicació en adreces físiques (també anomenades adreces reals). Cada entrada de la taula conté: L'adreça virtual inicial de la pàgina i o una adreça de memòria real on està realment la pàgina o un indicador que la pàgina es troba actualment al disc dur.

Hi ha sistemes que tenen una taula de pàgines per a tot el sistema i d'altres que tenen una taula de pàgines per cada procés.

Vegeu també 
 Memòria convencional
 Àrea de memòria superior
 Memòria estesa
 Àrea de memòria alta
 Memòria expandida
 Paginació de memòria
 Mode irreal
 Gestió de la memòria

Enllaços externs 
 Projecte Linux Memory Management
 El Gestor de Memòria Virtual de Windows NT

Arquitectura de computadors
Memòria informàtica
Sistemes operatius