Kas yra atminties darna?

Atminties nuoseklumas yra problema, kuri iškyla kompiuteryje, kai procesorius bando pažvelgti į atminties sektorių. Ši problema kyla tik kelių branduolių sistemose arba kompiuteriuose, kuriuose yra daugiau nei vienas centrinis procesorius (CPU). Kai keli procesoriai žiūri į tą patį atminties sektorių ir vienas atnaujina sektorių, kitam gali likti sena kompiuterio atminties versija. Siekiant išspręsti šią problemą, naudojamos nuoseklumo taisyklės, užtikrinančios, kad procesoriai nepasiektų tos pačios atminties arba kad naujinimai būtų nuoseklūs. Yra keletas skirtingų nuoseklumo modelių, todėl programuotojai ir kompiuterių kūrėjai turi žinoti tikslų naudojamą modelį.

Atminties nuoseklumo problema kyla tik kompiuteriuose, kuriuose naudojami bent du procesoriai, nes jie pasiekia atmintį. Kai vienas procesorius pasiekia atminties sektorių, jis gali paimti, naudoti ir keisti atmintį be jokių konfliktų, nes nėra jokių kitų aparatūros dalių, konkuruojančių dėl atminties. Jei naudojami du procesoriai, abu CPU gali užimti tą patį atminties sektorių. Nors problemų su dviem procesoriais dalijantis atmintimi nėra, problema iškyla, jei vienas procesorius atnaujina atmintį. Dėl to antrasis procesorius turi pasenusią atmintį, dėl kurios, jei nepažymėsite, visas kompiuteris gali turėti dvi atskiras ir prieštaraujančias kompiuterio atminties versijas.

Yra programavimo schemų, sukurtų specialiai atminties nuoseklumui koreguoti, o tai gali būti pagrindinė problema. Jie bendrai žinomi kaip atminties nuoseklumo taisyklės, ir yra daug versijų. Apskritai kiekviena versija nurodo keliems procesoriams, kaip tinkamai dalytis kompiuterio atmintimi nesukeliant atminties darnos problemos. Tai galima padaryti atnaujinant abi atminties versijas, kai pakeičiama viena versija, arba neleidžiant CPU tuo pačiu metu pasiekti tos pačios atminties.

Nors nuoseklumo taisyklių naudojimas padeda išvengti atminties darnos problemos, iš to kyla kita problema. Kiekvienas nuoseklumo rinkinys turi skirtingą programavimą ir skirtingas taisykles, todėl programuotojai, kurie kuria programas arba rašo kodą, kuris tiesiogiai susijęs su procesoriais, turės pritaikyti kodavimą pagal tikslias nuoseklumo taisykles. Jei ne, tai gali nepaisyti nuoseklumo arba sukelti didelį konfliktą tarp programuotojo kodavimo ir nuoseklumo taisyklių, o kompiuteris gali nustoti veikti.