Підтримка
www.wikidata.uk-ua.nina.az
Cya stattya ne mistit posilan na dzherela Vi mozhete dopomogti polipshiti cyu stattyu dodavshi posilannya na nadijni avtoritetni dzherela Material bez dzherel mozhe buti piddano sumnivu ta vilucheno listopad 2015 Vitik pam yati angl memory leak proces nekontrolovanogo zmenshennya obsyagu vilnoyi operativnoyi pam yati abo virtualnoyi pam yati komp yutera pov yazanij z pomilkami v programah sho vchasno ne zvilnyayut pam yat vid nepotribnih danih abo z pomilkami sistemnih sluzhb kontrolyu pam yati Vitik pam yati najchastishe zustrichayetsya u movah programuvannya yaki nadayut koristuvachevi mozhlivist samomu keruvati pam yattyu komp yutera OpisVikonannya navedenogo kodu na C prizvodit do vitoku pam yati 1 int pointer NULL 2 for int i 0 i lt 10 i 3 pointer new int 100 4 5 delete pointer Na kozhnij iteraciyi ciklu vidilyayetsya pam yat dlya 100 cilih chisel tipu int i adresa vidilenoyi pam yati zapisuyetsya u zminnu pointer zatirayuchi adresu poperednogo vidilenogo bloku pam yati U 5 mu ryadku vidbuvayetsya vidalennya ob yekta stvorenogo na ostannij iteraciyi ciklu Usi poperedni 9 ob yektiv zalishayutsya v dinamichnij pam yati Do nih nemozhlivo ni otrimati dostup z programi ni vidaliti oskilki nemaye zminnih yaki b zberigali yih adresi NebezpekaDinamichna pam yat ye obmezhenim resursom Keruvannya dinamichnoyu pam yattyu programi zazvichaj zdijsnyuyetsya bibliotekoyu movi programuvannya yaka sama pracyuye poverh dinamichnoyi pam yati sho nadayetsya operacijnoyu sistemoyu Vitoki pam yati prizvodyat do togo sho spozhivannya pam yati programoyu nekontrolovano zrostaye vnaslidok chogo rano chi pizno vstupayut u diyu arhitekturni obmezhennya seredovisha vikonannya operacijnoyi sistemi virtualnoyi mashini komp yutera i todi nove vidilennya pam yati staye nemozhlivim U cij situaciyi u programi yaka zapituye pam yat zazvichaj vidbuvayetsya avarijna zupinka Ce mozhe za zbigom obstavin vidbutisya i zovsim z inshoyu programoyu pislya togo yak programa pidvladna vitokam vicherpaye vsyu pam yat mashini Sposobi zapobigannyaIsnuyut rizni sposobi zapobigannya vitokam pam yati Vidmova vid dinamichnoyi pam yati Napriklad FORTRAN 77 povnistyu vidmovlyayetsya vid zastosuvannya mehanizmiv dinamichnogo rozpodilu pam yati sho viklyuchaye podibni pomilki ale istotno obmezhuye funkcionalnist program Rozumni vkazivniki Dokladnishe Rozumni vkazivniki Rozumni vkazivniki dozvolyayut desho uzgoditi chas zhittya vkazivnika i chas zhittya ob yekta na yakij vin posilayetsya Pribirannya smittya Dokladnishe Zbirannya smittya Deyaki movi programuvannya napriklad Oberon Java movi dlya CLI nadayut zasobi sho dozvolyayut avtomatichno zvilnyati nevikoristanu pam yat Zbirachi smittya virishuyut takozh i problemu ciklichnih posilan ale zbirka smittya ye resursomistkoyu operaciyeyu Za vikoristannya podibnih zasobiv dovoditsya rozplachuvatisya shvidkodiyeyu sistemi i golovne pribirannya smittya vnosit nespodivani pauzi u robotu programi sho nepripustimo v sistemah realnogo chasu Pribirannya smittya bulo vinajdene Dzhonom Makkarti priblizno u 1959 roci pri rozrobci movi programuvannya LISP struktura yakoyi robit vkraj skladnim ruchne keruvannya pam yattyu Perezapusk programi U tih vipadkah koli usunuti vitik pam yati ne ye mozhlivim napriklad pri vikoristanni kodu yakij nadayetsya u viglyadi programnih moduliv i vigotovlenogo storonnimi rozrobnikami zastosovuyut svoyeridnij sposib ignoruvannya vitokiv Kod shilnij do vitokiv rozmishuyut v okremij programi a cyu programu z potribnoyu periodichnistyu perezapuskayut Zapuski i perezapuski programi vikonuyutsya zovnishnoyu programoyu yaka takozh podaye vihidni dani i zabiraye rezultati Oskilki pri zavershenni programi vsya pam yat zatrebuvana neyu v operacijnoyi sistemi povertayetsya operacijnij sistemi takij metod ne dozvolyaye vitokam nabuti katastrofichnogo harakteru Vitik inshih resursivTakozh isnuye pomilka sho imenuyetsya zahopleni deskriptori ne povertayutsya operacijnij sistemi Dlya borotbi z naslidkami takih pomilok rozrobniki operacijnih sistem vvodyat u nih funkcionalnist sho dozvolyaye obmezhuvati obsyag pam yati kilkist deskriptoriv i kilkist procesornogo chasu dostupnogo odnomu koristuvachevi abo konkretnomu procesu Viyavlennya vitokivDlya profesijnih mov programuvannya isnuyut specialni programi profilyuvalniki sho dozvolyayut viyaviti zokrema i vitoki pam yati Dlya deyakih mov programuvannya isnuyut statichni analizatori kodu sho viyavlyayut elementi programi potencijno zdatni prizvoditi do logichnih pomilok zokrema i do vitoku pam yati Primitivnij variant takogo analizatora realizuye praktichno bud yakij kompilyator movi visokogo rivnya u viglyadi vidachi tak zvanih poperedzhen warnings povidomlen pro nayavnist u programi konstrukcij yaki formalno ne porushuyut sintaksisu movi ale potencijno pomilkovi Isnuyut biblioteki dlya en yaki dopomagayut stezhiti za vidilennyam ta zvilnennyam pam yati pid chas roboti programi Div takozhZavisli vkazivniki Ce nezavershena stattya pro programuvannya Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi
Топ