Kaj je prepolnitev medpomnilnika?

Prelivanje medpomnilnika se pojavi, ko program poskuša pisati v medpomnilnik in stopi izven njegovih meja, kar povzroči, da program zapiše informacije v pomnilnik, ki potencialno pripada drugemu programu. To krši celovitost pomnilnika v operacijskem sistemu, kar ima za posledico resno napako in potencialno zrušitev izvajalnega programa. Glavna nevarnost prelivanja medpomnilnika izhaja iz dveh glavnih elementov. Prvič, informacije, zapisane zunaj medpomnilnika, so navidezno »izgubljene«, saj jih pomnilniška karta računalnika – njegov seznam pomnilniških lokacij – ne more upoštevati. Drugič, prekoračitev medpomnilnika lahko pomotoma prepiše informacije, shranjene v pomnilniku za drug program, kar dejansko moti tudi izvajanje drugega programa.

“Vmesni pomnilnik” je območje pomnilnika, ki se uporablja kot začasno mesto za shranjevanje, medtem ko računalnik prenaša informacije iz ene točke v drugo. Najpogostejša uporaba medpomnilnika je običajno pri predvajanju videa ali zvoka, kjer računalnik v pomnilnik vnese dodatnih X sekund posnetka ali zvoka, s čimer zagotovi, da predvajanje ne bo prekinjeno, če se kaj začasno zgodi v sistemu. Medpomnilnik obstaja samo znotraj določene, vnaprej določene lokacije v pomnilniku računalnika, podobno kot država obstaja samo znotraj mejnih črt, narisanih na zemljevidu. Če izstopite iz teh navideznih “vrstic”, ne pride do težav samo za program, ki se izvaja, ampak tudi za druge programe v sistemu.

V bistvu je program stopil izven dodeljene jurisdikcije in vdrl v prostor drugega delovnega programa. Ko se to zgodi, informacije, zapisane zunaj medpomnilnika, dejansko odpadejo z računalniškega zemljevida; z drugimi besedami, sistem nima več načina za pridobitev. Ker računalnik “zna” samo iskati informacije v pomnilniku znotraj določenega prostora v pomnilniku, dodeljenega v pomnilniku, ne more ugotoviti, kam so odšle preplavljene informacije.

Poleg tega lahko prekoračitev medpomnilnika moti druge programe, ki se izvajajo v računalniku. Predstavljajte si, da je pomnilniški prostor na obeh straneh medpomnilnika že dodeljen drugim programom, ki se izvajajo. Ko informacije v medpomnilniku preidejo mimo svojega oblikovanega območja, bo prepisal in pokvaril vse informacije, ki so že shranjene v teh odsekih pomnilnika. Zato je prelivanje medpomnilnika težava, ki lahko oslabi učinkovitost sosednjega programa in pokvari njegovo lastno delovanje.