Rietuvė: Skirtumas tarp puslapio versijų

Ištrintas turinys Pridėtas turinys
Nėra keitimo santraukos
Nėra keitimo santraukos
Eilutė 23:
[[Lokalūs kintamieji]] taip pat dažnai saugomi rietuvėje.
 
Pirmieji masiškai gaminti mikroprocesoriai turėjo vidinę rietuvinę atmintį. Pavyzdžiui, Intel 4004 turėjo trijų lygių paprogramių rietuvę grįžimo adresui atsiminti, kuri Intel 4040 buvo padidinta iki ašuonių lygių. Vidinė rietuvė patogi itin paprastuose kompiuteriuose, kur išorinės operatyvinės atmintinės gali ir nebūti. [[Intel 8080]] vis dar turėjo retai naudotą galimybę prijungti net iki 64 Kb talpos atskirai adresuojamą rietuvės atmintį. DaugelytjeDaugelyje šiuolaikinių kompiuterių rietuvė yra pagrindinės atmintinės dalis.
 
== Programinė realizacija ==
Rietuvę gali būti realizuojama [[Tiesinis sąrašas|tiesinio sąrašo]] pagrindu arba panaudojant masyvus. Masyvo pagalba realizuota rietuvė veikia sparčiau ir nereikalauja papildomos atminties sąrašo struktūromsdariniams saugotilaikyti. JisJi imituoja aparatinę realizaciją, turėdama rietuvės rodyklę atitinkantį sveikojo tipo kintamąjį, rodantį į pirmą laisvą elementą virš rietuvės viršūnes. Vertės padėjimo operacija užrašoma kaip
rietuvė[sp] = vertė
sp = sp + 1
Eilutė 37:
Tokia rietuvė paprastai turi ribotą iš anksto žinomą talpą (masyvo ilgį), nebent jį viršijus visas turinys būtų automatiškai kopijuojamas į kitą (didesnį) masyvą.
 
Nuorodas naudojančio tiesinio sąrašo pagrindu galima sukurti tik kompiuterio atminties ribojamą dinamiškai augantčiąaugančią rietuvę, tačiau duomenų laikymas joje mažiau efektyvus.
 
== Rietuvės naudojimo sritys ==
 
=== Rietuvė ir paprogramiai ===
Kviečiant įvairių programos vietų bendrai naudojamą paskirties kodo fragmentą (pavyzdžiui, simbolio išvedimo į ekraną paprogramį), taip pat aptarnaujant [[Pertraukimas|pertraukimus]], svarbu neužmiršti šiuo metu vykdomos komandų sekos adreso, kad užbaigus paprogramį būtų galima grįžti atgal. Grįžimo adresas beveik visada išsaugomas rietuvėje. Dažnai pasitaiko, jog vykdomas paprogramis savo ruožtu kviečia kitas paprogramespaprogramius. Tuomet įsiminimo operacija kartojama. Baigiant paprogramį, rietuvės viršūnėje visada bus reikalingas grįžimo adresas, nes jis buvo ten padėtas paskutinis.
 
=== Rietuvė ir būsenos išsaugojimas ===
Rietuvėje gali būti išsaugomas ne tik ankstesnis vykdymo adresas, bet ir įvairi kita su ankstensniu vykdymu susijusi informacija (registrų bei vėliavėlių vertės, kai kada ir informacija apie įvedimo ar išvedimo įrenginių būseną). Kviečiant vieną paprogramį iš kitoskito, būsena gali būti išsaugota daugelį kartų. Rietuvė tinka, nes paskutinė išsaugota būsena turi būti atstatyta pirmoji.
 
=== RietuvėirRietuvė ir lokalūs kintamieji ===
Jei paprogramiui reikia atminties lokaliems kintamiesiems saugoti, jai taip pat patogu išskirti rietuvę, pradedant nuo dabartinės rietuvės rodyklės vertės (rodyklė pastumiama tiek, jog rodytų į laisvą sritį greta užimtos atminties ribos). Rietuvė tam patogi todėl, jog paskutinis pradėtas vykdyti paprogramis pirmasis ir pabaigiamas (taigi paskutinė išskirta lokialių kintamųjų sritis pirmoji ir atlaisvinama). Rietuvėje išskirtai atminties sričiai naudoti daugelis procesorių turi komandas ne tik rietuvės viršūnei, bet ir žinomu atstumu žemiau jos esantiems duomenims pasiekti.