Strategije pri uporabi navideznega pomnilnika

Cilj pri kakršni koli uporabi pomnilnika je čimvečja izkoriščenost celotnega računalniškega sistema. Pod tem pojmom razumemo to, da je dana množica programov izvršena v kar najkrajšem času.

Ko zasledujemo ta cilj se pri organiziranju pomnilnika srečamo s pravili s katerimi:

  • dodelimo programom določeno število okvirov strani v glavnem pomnilniku,
  • določimo kdaj, katera in koliko strani naj se prenese iz pomnilnika v glavni pomnilnik,
  • določimo katere strani naj se prenesejo iz glavnega nazaj v pomožni pomnilnik.

Ta pravila imenujemo dodeljevalna, polnilna in zamenjevalna strategija.

Takoj opazimo, da smo se z zadnjimi dvemi srečali že pri obravnavanju predpomnilnikov, obstajata pa dve razliki. Kakšen je osnovni cilj, ki se mu sledi pri predpomnilnikih? Povečanje verjetnosti zadetka. Podobno je pri navideznem pomnilniku, le da je potrebno na ta cilj gledati širše, v okviru povečanja izkoriščenosti celotnega računalnika. Nekatere strategije dosežejo velike verjetnosti zadetka na račun velikega števila prenesenih strani, kar pa moti izvajanje programov in obremenjuje V/I sistem. Druga razlika je, da so strategije realizirane programsko.

Vse tri strategije izvajajo algoritmi, ki jih obravnavamo kot celoto in imenujemo - upravljanje s pomnilnikom (memory management).

Dodeljevalne strategije:

  • fiksne in spremenljive (pri fiksni razdelitvi je število okvirov fiksno in se spremeni le ob spremembi števila programov)
  • lokalne in globalne (lokalna strategija upošteva pri odločanju samo trenutne lastnosti množice okvirjev, ki v določenem trenutku pripadajo nekemu programu)

Zamenjevalne strategije:

  • polnjenje na zahtevo, ki smo ga srečali že pri predpomnilnikih in vnaprejšnje polnjenje, kjer se ob zamenjavi lahko prenese še katera druga stran

Zmanjšanje napak strani je odvisno tudi od stopnje multiprogramiranja. Če je število aktivnih programov v računalniku preveliko, bo vsak program dobil premajhno število okvirov strani. Število napak se bo tako bistveno povečalo. Problem izbire maksimalnega oziroma optimalnega števila aktivnih programov je znan kot problem optimalnega obremenjevanja.

Omenjene strategije je mogoče realizirati s številnimi algoritmi. Še prej definirajmo pojme:

  • razdalja-naprej ob času t je definirana kot časovna razdalja do prvega pojava strani x po času t,
  • razdalja-nazaj ob času t je definirana kot časovna razdalja do zadnjega pojava strani pred časom t.

Algoritmi:

  • najbolj dolgo neuporabljen; ob napaki strani se zamenja stran, ki ima največjo razdaljo-nazaj,
  • Beladyev optimalni algoritem; zamenja se stran, ki ima največjo razdaljo-naprej,
  • FIFO-prvi noter, prvi ven; zamenja se najstarejša stran,
  • najbolj redko uporabljen; zamenja se stran z najmanjšim številom dostopov,
  • naključni; zamenja se naključno izbrana stran.