Mikä on väärä jakaminen?

Väärä jakaminen on tilanne, joka voi ilmetä tietokoneohjelmassa, kun kaksi samanaikaisesti käynnissä olevaa sovellusta yrittävät käyttää tietoja samalla loogisella muistialueella, jonka jokainen ohjelma tai prosessi on tallentanut omaan välimuistiinsa. Kunkin sovelluksen välimuistin tiedot kopioidaan samasta lähteestä, joten yhden välimuistin muuttaminen joutuu lataamaan toisen lähteestä. Jakamisen väärä puoli syntyy, kun yhden ohjelman välimuistiriville tekemät muutokset eivät itse asiassa vaikuta toisen ohjelman käyttämiin tietoihin, jolloin välimuistin lataamisen pakottaminen on järjestelmän resurssien tuhlausta ja voi vaikuttaa kielteisesti ohjelman suorituskykyä. Väärän jakamisen ongelmaa on vaikea havaita, koska se ei ole suoraa seurausta sovellusten sisältämästä koodista, vaikka on olemassa tehokkaita tapoja estää väärien tietojen jakaminen, kuten välimuistissa olevan rivin tietojen siirtäminen erilliselle riville .

Yksi tärkeimmistä syistä väärän jakamisen esiintymiseen löytyy siitä, miten käyttöjärjestelmä tai laitteisto käsittelee tietojen lukemista ja kirjoittamista. Kun ohjelma lukee tai kirjoittaa tietoja kiintolevyltä tai muusta lähteestä, ne yleensä ladataan väliaikaiseen välimuistiin, jotta niitä voidaan käyttää nopeasti. Lähdesijainnista välimuistiin tallennettuja tietoja kutsutaan välimuistiriviksi ja ne ovat looginen muistilohko, joka voi tavallisesti olla 2 – 256 tavua pitkä. Joidenkin käyttöjärjestelmien tai järjestelmäarkkitehtuurien alla ohjelmat voivat toimia samanaikaisesti, esimerkiksi rinnakkaiskäsittelyssä. Tämä tarkoittaa, että kaksi erillistä ohjelmaa voi yrittää käyttää tietoja samalla välimuistirivillä, joten jokaisella ohjelmalla on oma kopionsa lähdetiedoista, mikä saattaa aiheuttaa sen, että yhden välimuistin muutokset eivät näy toisessa välimuistissa. tietoja, joita se pitää.

On olemassa useita mekanismeja, joita käytetään käsittelemään tilannetta, kun kaksi ohjelmaa yrittää käyttää samaa välimuistiriviä, mutta useimmiten tuloksena on, että yksi ohjelma on pakko ladata välimuistinsa toisen ohjelman muokkaamilla päivitetyillä tiedoilla. Tämän tyyppistä tapahtumaa kutsutaan vääräksi jakamiseksi, kun välimuistirivillä olevat tiedot, joita jokainen ohjelma käyttää, eivät liity toisiinsa, joten yhden ohjelman pakottaminen lataamaan välimuisti uudelleen on prosessointitehon ja muiden resurssien tuhlausta. Tämä on useimmiten ongelma ohjelmalle, joka ei koskaan muuta välimuistin tietoja, joten ei ole vaaraa, että sovellus korvaa toisen prosessin tekemät muutokset.

On olemassa kaksi yleistä tapaa joko estää tai lieventää väärän jakamisen vaikutuksia. Ensimmäinen on lisätä tyhjiä tietoja ennen tai jälkeen muistissa olevia tietoja, pakottaen ne olennaisesti erilliselle välimuistiriville, jota toinen ohjelma ei käytä. Toinen tapa on rajoittaa lukemisen ja kirjoittamisen taajuus välimuistiriville, jotta se ladataan uudelleen mahdollisimman vähän. Monimutkaisempiin ratkaisuihin kuuluu välimuistitason hallinta tai jopa muutokset siihen, miten käyttöjärjestelmä käsittelee jakamisen.