Skip to main content

Ano ang maling pagbabahagi?

Ang maling pagbabahagi ay isang sitwasyon na maaaring mangyari sa isang programa ng computer kapag ang dalawang aplikasyon na tumatakbo nang sabay -sabay na pagtatangka upang ma -access ang impormasyon sa parehong lohikal na rehiyon ng memorya na ang bawat programa o proseso ay nakaimbak sa sarili nitong cache.Ang data sa cache ng bawat application ay kinopya mula sa isang karaniwang mapagkukunan, kaya ang pagbabago ng isang cache ay nagiging sanhi ng iba na mai -reload mula sa mapagkukunan.Ang maling aspeto ng pagbabahagi ay lumitaw kapag ang mga pagbabago na ginawa sa linya ng cache sa pamamagitan ng isang programa ay hindi talaga nakakaapekto sa data na ginagamit ng pangalawang programa, kung saan ang pagpilit sa cache na mai -reload ay isang pag -aaksaya ng mga mapagkukunan ng system at maaaring negatibong nakakaapektoAng pagganap ng programa.Ang problema ng maling pagbabahagi ay mahirap makita, sapagkat hindi ito isang direktang resulta ng anumang code na nilalaman sa loob ng mga aplikasyon, bagaman may mga epektibong paraan upang maiwasan ang maling pagbabahagi, tulad ng paglipat ng data na nasa kasalukuyang linya ng cache.Kapag ang impormasyon mula sa isang hard disk o iba pang mapagkukunan ay binabasa o isinulat ng isang programa, karaniwang ito ay na -load sa isang pansamantalang cache upang mabilis itong ma -access.Ang dami ng impormasyon na naka -cache mula sa lokasyon ng mapagkukunan ay tinatawag na isang linya ng cache at isang lohikal na bloke ng memorya na karaniwang maaaring nasa pagitan ng 2 byte at 256 byte ang haba.Sa ilalim ng ilang mga operating system o mga arkitektura ng system, ang mga programa ay maaaring tumakbo nang sabay, tulad ng kahanay na pagproseso.Nangangahulugan ito na posible para sa dalawang magkahiwalay na programa upang subukang ma -access ang impormasyon sa parehong linya ng cache, kaya ang bawat programa ay magkakaroon ng sariling kopya ng data ng mapagkukunan, na potensyal na nagiging sanhi ng mga pagbabago sa isang cache na hindi maipakita sa iba pang cache, na hindi wasto angAng data na hawak nito.

Mayroong isang bilang ng mga mekanismo na ginagamit upang hawakan ang sitwasyon kapag ang dalawang programa ay nagtangkang ma -access ang parehong linya ng cache, ngunit ang resulta ay madalas na ang isang programa ay napipilitang i -reload ang cache nito sa na -update na impormasyon sa iba pang programabinago.Ang ganitong uri ng insidente ay kilala bilang maling pagbabahagi kapag ang data sa loob ng linya ng cache na ang bawat programa ay mai -access ay hindi nauugnay, kaya ang pagpilit sa isang programa na i -reload ang cache ay isang pag -aaksaya ng lakas ng pagproseso at iba pang mga mapagkukunan.Ito ay madalas na isang problema para sa isang programa na hindi kailanman magbabago ng impormasyon sa cache nito, kaya walang panganib ng mga pagbabago sa pag -overwriting ng application na ginawa ng iba pang proseso.pagbabahagi.Ang una ay upang magdagdag ng blangko na impormasyon bago o pagkatapos ng data sa memorya, mahalagang pilitin ito sa isang hiwalay na linya ng cache na hindi na -access ng isa pang programa.Ang pangalawang pamamaraan ay upang paghigpitan ang dalas ng pagbabasa at pagsulat sa linya ng cache upang mai -reload ito nang kaunti hangga't maaari.Ang mas kumplikadong mga solusyon ay nagsasangkot ng pamamahala ng antas ng cache o kahit na mga pagbabago sa kung paano ang isang operating system ay humahawak sa pagbabahagi.