Verem (számítástechnika)
A Wikipédiából, a szabad enciklopédiából.
A számítástechnikában a verem (angolul stack) a számítógép memóriájának egy része, amelybe a processzor azokat a memóriacímeket menti el, ahova egyes eljárások befejeztével visszatér. A verem olyan adatstruktúra, amelyből a benne utoljára eltárolt adat olvasható ki először.
Általában az alprogramok, eljárások, függvények kezelését segíti elő, de használják az aritmetikai műveleteknél az operandusok és részeredmények tárolására.
Veremkiíratás az a folyamat, amikor az informatikus a verem értékeit kiíratja monitorra vagy nyomtatóra.
[szerkesztés] Működési elve
A verem (stack) fizikailag a memóriában helyezkedik el. Dinamikus elem, mérete (hossza) és helye (hogy hol helyezkedik el a memóriában) – változó. A stack implementálásához egy speciális regiszterben elhelyezkedő mutató szükséges, mely mutatót (a regiszter tartalmát) speciálisan a stacket kezelő utasítások mozgatják, változtatják, szükséglet szerint.
A stackben többnyire regiszterek tartalmát tároljuk (mentjük el), átmenetileg. Ennek oka az, hogy a mikroprocesszor leggyorsabban a belső regiszterekkel tud műveleteket végezni. A regiszterek száma viszont korlátozott. Pl. gyakran előfordul, hogy az összes regiszter már olyan információt tartalmaz, amely még nem felülírható, de az adott részfeladat elvégzéséhez szükség van további regiszterek használatához. Ekkor valamely regiszter(ek) tartalmát ideiglenesen a stackbe tudjuk kivinni (majd később a stackből a regiszter tartalmát vissza tudjuk állítani) és a regiszterbe már aktuálisabb tartalmat tudunk betölteni. Ez a művelet általában gyorsabb és kényelmesebb, mint a memóriába írni a regisztertartalmat. Hiszen ilyenkor meg kellene választani a címzést, meg kellene jegyezni a tárolási címet és a tárolt adat hosszát.
Régebbi mikroprocesszoroknál ún. belső stack létezett, vagyis a processzoron belül volt a verem, ami jelentősen korlátozta a processzor kapacitását. Ma minden processzornál a RAM-ban elhelyezhető 'külső stack' található.