Kaj je napačna skupna raba?

Lažna skupna raba je situacija, ki se lahko pojavi v računalniškem programu, ko dve aplikaciji, ki se izvajata hkrati, poskušata dostopati do informacij v istem logičnem pomnilniku, ki ga ima vsak program ali proces shranjen v svojem predpomnilniku. Podatki v predpomnilniku vsake aplikacije so kopirani iz skupnega vira, tako da spreminjanje enega predpomnilnika povzroči, da je treba drugega znova naložiti iz vira. Napačen vidik skupne rabe se pojavi, ko spremembe v vrstici predpomnilnika s strani enega programa dejansko ne vplivajo na podatke, ki jih uporablja drugi program, v tem primeru je prisilno nalaganje predpomnilnika izguba sistemskih virov in lahko negativno vpliva uspešnosti programa. Težavo napačne skupne rabe je težko zaznati, ker ni neposredna posledica nobene kode v aplikacijah, čeprav obstajajo učinkoviti načini za preprečevanje napačne skupne rabe, kot je premikanje podatkov, ki so trenutno v predpomnjeni vrstici, v ločeno vrstico. .

Eden od glavnih razlogov, zakaj lahko pride do napačne skupne rabe, je v tem, kako operacijski sistem ali strojna oprema ravna z branjem in pisanjem podatkov. Ko program bere ali zapisuje informacije s trdega diska ali drugega vira, se običajno naložijo v začasni predpomnilnik, tako da je do njih mogoče hitro dostopati. Količina informacij, ki je predpomnjena z izvorne lokacije, se imenuje predpomnilniška vrstica in je logični blok pomnilnika, ki je običajno lahko dolg od 2 bajtov do 256 bajtov. V nekaterih operacijskih sistemih ali sistemskih arhitekturah se lahko programi izvajajo hkrati, na primer pri vzporedni obdelavi. To pomeni, da je možno, da dva ločena programa poskušata dostopati do informacij v isti vrstici predpomnilnika, tako da bo imel vsak program svojo kopijo izvornih podatkov, kar lahko povzroči, da se spremembe v enem predpomnilniku ne odražajo v drugem predpomnilniku, kar razveljavi podatke, ki jih hrani.

Obstajajo številni mehanizmi, ki se uporabljajo za obvladovanje situacije, ko dva programa poskušata dostopati do iste vrstice predpomnilnika, vendar je rezultat najpogosteje, da je en program prisiljen znova naložiti svoj predpomnilnik s posodobljenimi informacijami, ki jih je spremenil drugi program. Ta vrsta incidenta je znana kot napačna skupna raba, ko podatki v vrstici predpomnilnika, do katere vsak program dostopa, niso povezani, zato je prisila enega programa, da znova naloži predpomnilnik, izguba procesorske moči in drugih virov. To je najpogosteje težava za program, ki nikoli ne bo spremenil informacij v svojem predpomnilniku, zato ni nevarnosti, da bi aplikacija prepisala spremembe, ki jih je naredil drugi proces.

Obstajata dva prevladujoča načina za preprečevanje ali ublažitev učinkov napačne izmenjave. Prvi je dodati prazne informacije pred ali za podatkom v pomnilniku, kar v bistvu prisili v ločeno vrstico predpomnilnika, do katere drug program ne dostopa. Druga metoda je omejiti pogostost branja in pisanja na vrstico predpomnilnika, tako da se čim manj ponovno naloži. Bolj zapletene rešitve vključujejo upravljanje na ravni predpomnilnika ali celo spremembe v načinu, kako operacijski sistem obravnava skupno rabo.