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).

El programa es pensa que té un llarg rang d'adreces de memòria contigües, però en realitat les parts que usa estan repartides al voltant de la RAM, i les parts inactives són desades en un fitxer de disc.

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ó modifica

Paginació modifica

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 modifica

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é modifica

Enllaços externs modifica