# Alegiazko memoria

Alegiazko memoria edo memoria birtuala informatika arloan, existitzen ez den memoria nagusia (RAM nagusiki) simulatzeko software teknika da.
Konputagailuaren disko gogorrak eta memoria nagusiak elkar lan egiten dute memoria handitzeko, azken finean disko gogorra erabiltzen da memoria nagusia handitzeko.
Honen bitartez konputagailu batek aplikazio programa handiagoak edota aldi berean aplikazio programa gehiago egikaritzeko ahalmena du.
Prozedura honetan programak zatitzen dira eta memoria nagusia behar denerako biltegiratze lagungarria erabiltzen da, disko gogorra gehien bat, merkea, edukiera ahalmen handia eta memoria lagungarrietan arinena baita.

## Prozedura

Alegiazko memoriarekin loturik dagoen oinarrizko kontzeptua zera da: programaren, datuen eta pilaren guztizko tamaina, memoria fisikoaren edukiarena baino handiagoa izan daitekeena da. Sistema eragileak lanean ari diren programen atalak (orriak ala segmentuak) memorian edukiko ditu eta gainerakoak (une horretan lanean ari ez direnak) diskora eramango ditu, truke (swapping) teknikan erabiltzen diren bezalako algoritmoak erabiliz (baina, alegiazko memoria erabiliz, prozesu osoak trukatu beharrean prozesu baten zatiak pasatzen dira). Teknika hau erabiliz programa handiagoak egikaritzea posible da baita multiprogramazioa hobetu ere, programa bat bere zati baten trukea egiteko zain dagoen artean, beste prozesu batek PUZ-a erabil dezake.

## Helbideak

Alegiazko memoriaren teknika honetan ordenagailuan egikaritzen ari diren prozesuek estekatzen dituzten helbideak eta memoria nagusian erabilgarri dauden helbideak bereiztean dira. Prozesuek maneiatzen dituzten helbideei alegiazko helbideak deitzen zaie eta memoria nagusiko helbideei helbide fisikoak. Egikaritzen ari den prozesu batek esteka dezaken alegiazko helbideen heinari prozesuaren alegiazko helbideen eremua deritzo (normalen V hizkiarekin adierazten delarik) eta ordenagailuan erabilgarri dauden helbide fisikoen heinari ordenagailuaren helbide fisikoen eremua (normalean F hizkiarekin adieraziz).
Prozesu bat memoria nagusian egikaritzen denez, alegiazko helbideak helbide fisikoak bihurtu behar dira eta aldaketa hau era azkarrean egin behar da sistema erabilgarria izan dadin.

## Alegiazko helbideak helbide fisikoak bihurtzeko prozesua

Memoria era egokian kudeatzeko, memoria nagusian zein bigarren mailako memorian okupaturik eta libre dauden atalen kontrola eduki behar da. Helbideen itzulpen dinamikorako mekanismoek, alegiazko helbide eta helbide fisikoen arteko korrespondentzia mantentzeko taulak (adibidez:orrikatze taula) izan behar dituzte gainera. Eraginkortasuna dela eta, memoriako byte baino handiagoak diren tamaina finko edo aldakorreko esleipen unitateetan zatitzen da memoria nagusia.
Guzti hau dela eta, informazioa blokeetan biltzen da; bloke hauek tamaina bera dute alegiazko memorian, memoria nagusian zein bigarren mailako trukerako gunean (diskoan). Sistema eragileak alegiazko memoriako blokeak une bakoitzean non dauden jakin beharko du.
Aipatu dugun bezala, esleipen unitateen tamaina finkoa edo aldakorra izan daiteke. Tamaina finkokoak orriak deitzen dira eta alegiazko biltegiaren antolaketaren izena orrikatzea da. Blokeek tamaina bera ez dutenean, segmentu deitzen zaie eta beraien antolaketari segmentazioa. Egungo sistemek teknika biak konbinatzen dituzte tamaina finkodun orriz osaturiko tamaina aldakorreko segmentuak erabiltzen baitituzte.
Alegiazko helbideak bi eremu ditu: bloke zenbakia eta desplazamendua. Orduan memoriako datu bat eskuratzeko, prozesuak zein bloketan dagoen eta blokearen barruan zein lekutan (desplazamendua) zehaztu behar du. Beraz, “v” alegiazko helbidea adierazteko (b,d) parea erabiltzen da. B-k estekatu nahi den blokea adierazten duelarik eta d-k blokearen hasieratik egin behar den jauzia (desplazamendua).
Alegiazko helbide bat (v) helbide fisiko bihurtzeko (f), prozesu bakoitzak bere blokeen esleipen taula du. PUZ-a prozesu berri bat egikaritzen hasten den bakoitzean, espezialdutako erregistro batean, blokeen esleipen erregistroan (CR3 x86 edo PDR Aplha plataformetan), helbide fisikoa kargatzen da (taula honen hasierako helbidea); prozesu bakoitzak bere taula izaten du, eta normalean taula guztiak gune jarrai baten kokatzen dira, gune horri blokeen direktorioa deritzolarik. Taula honetako sarrera bakoitzak prozesuak erabil dezaken bloke bat adierazten du. Blokearen zenbakia (b) eta taulako osagai bakoitzaren tamaina (t, zenbaki hau sistema eragileko parametro bat da) ezagutuz, a + (b x t) eragiketa egin ondoren blokeen esleipen taulako osagai horren helbide fisikoa daukagu. Osagai honetan, memoriaren kudeaketarako behar diren beste datu batzuez gain (v1,v2,.....vn) b blokearen hasierako helbide fisikoa dago (b’); helbide fisiko honi desplazamendua gehituz helbide fisikoa lortzen da (f=b’+d).
Segmentazio , orrikatze eta orrikatze/segmentazio sistemetan helbide fisikoak kalkulatzeko antzeko prozedura erabiltzen da.
Arestian aipatu den bezala, sistema eragilea arduratzen da lan honetaz; horrela, programatzailea programaren algoritmo eta egituraz arduratu behar da eta ez sistemaren hardwarearekin izan behar dituen kudeaketaz.

## Erreferentziak

* Deitel , H.M.: Sistemas Operativos. 2ª ed. Addison Wesley Iberoamericana. 1993.
* Tanenbaum, A.S.: Sistemas operativos. Diseño e implementación. Prentice Hall 1998.

## Ikus,gainera

* Memoria kudeaketa taula
* Multiprosezaketa
* Orrikatze
* Orrikatze taula
* Orriak ordezkatzeko algoritmoak
* Working set

## Kanpo estekak

* (Ingelesez) Linux memoriaren kudeaketa
* (Ingelesez) Alegiazko memoriaren gaineko estekak
* Datuak: Q189401
* Multimedia: Virtual memory / Q189401