Sisäinen vs ulkoinen pirstoutuminen
Sisäisen ja ulkoisen pirstoutumisen välinen ero kiinnostaa monia, jotka haluavat parantaa tietokonetuntemustaan. Ennen kuin tiedämme tämän eron, meidän on nähtävä, mitä pirstoutuminen on. Pirstoutuminen on ilmiö, jota esiintyy tietokoneen muistissa, kuten Random Access Memory (RAM) -muistissa tai kiintolevyissä, mikä aiheuttaa tuhlausta ja vapaan tilan tehotonta käyttöä. Vaikka käytettävissä olevan tilan tehokas käyttö on estetty, tämä aiheuttaa myös suorituskykyongelmia. Sisäistä pirstoutumista tapahtuu, kun muistin allokointi perustuu kiinteän kokoisiin osioihin, jolloin sen jälkeen, kun pienikokoinen sovellus on osoitettu paikkaan, kyseisen paikan jäljellä oleva vapaa tila menee hukkaan. Ulkoista pirstoutumista tapahtuu, kun muistia varataan dynaamisesti, jolloin useiden paikkojen lataamisen ja purkamisen jälkeen vapaa tila jakautuu sen sijaan, että se olisi peräkkäistä.
Mitä on sisäinen pirstoutuminen?
Katso yllä olevaa kuvaa, jossa noudatetaan kiinteän kokoista muistin varausmekanismia. Aluksi muisti on tyhjä ja allokaattori on jakanut muistin kiinteän kokoisiin osioihin. Sitten myöhemmin kolme ohjelmaa nimeltä A, B, C on ladattu kolmeen ensimmäiseen osioon, kun neljäs osio on edelleen vapaa. Ohjelma A vastaa osion kokoa, joten siinä ei ole hukkaa, mutta Ohjelma B ja Ohjelma C ovat pienempiä kuin osion koko. Joten osioissa 2 ja 3 on vapaata tilaa. Tämä vapaa tila on kuitenkin käyttökelvoton, koska muistinvaraaja määrittää ohjelmille vain täydet osiot, mutta ei sen osia. Tätä vapaan tilan tuhlausta kutsutaan sisäiseksi pirstoutumiseksi.
Yllä olevassa esimerkissä kyseessä ovat samankokoiset kiinteät osiot, mutta tämä voi tapahtua jopa tilanteessa, jossa on saatavilla erikokoisia kiinteitä osioita. Yleensä muisti tai vaikein tila on jaettu lohkoihin, jotka ovat yleensä 2 potenssien kokoisia, kuten 2, 4, 8, 16 tavua. Joten ohjelma tai 3-tavuinen tiedosto määrätään 4-tavuiseen lohkoon, mutta yksi tavu kyseisestä lohkosta tulee käyttökelvottomaksi aiheuttaen sisäisen pirstoutumisen.
Mitä ulkoinen pirstoutuminen on?
Katso yllä olevaa kuvaa, jossa muistin varaus tehdään dynaamisesti. Dynaamisessa muistin allokoinnissa allokaattori varaa vain tarkalleen tarvittavan koon kyseiselle ohjelmalle. Ensimmäinen muisti on täysin ilmainen. Sitten erikokoiset ohjelmat A, B, C, D ja E ladataan peräkkäin ja sijoitetaan muistiin peräkkäin tässä järjestyksessä. Myöhemmin ohjelmat A ja C sulkeutuvat ja ne puretaan muistista. Nyt muistissa on kolme vapaata tilaa, mutta ne eivät ole vierekkäin. Nyt ladataan iso ohjelma nimeltä Ohjelma F, mutta kumpikaan vapaan tilan lohko ei riitä ohjelmalle F. Kaikkien vapaiden tilojen lisääminen riittää varmasti ohjelmalle F, mutta vierekkäisyyden puutteen vuoksi tila on käyttökelvoton ohjelmalle F. Tätä kutsutaan ulkoiseksi pirstoutumiseksi.
Mitä eroa on sisäisen ja ulkoisen pirstoutumisen välillä?
• Sisäinen pirstoutuminen tapahtuu, kun käytetään kiinteän kokoista muistin varaustekniikkaa. Ulkoista pirstoutumista tapahtuu, kun käytetään dynaamista muistinvaraustekniikkaa.
• Sisäistä pirstoutumista tapahtuu, kun kiinteän kokoinen osio on määritetty ohjelmalle/tiedostolle, jonka koko on pienempi kuin osion koko, jolloin osion loput tilat ovat käyttökelvottomia. Ulkoinen pirstoutuminen johtuu vierekkäisen tilan puutteesta ohjelmien tai tiedostojen lataamisen ja purkamisen jälkeen jonkin aikaa, koska silloin kaikki vapaa tila jakautuu sinne tänne.
• Ulkoista pirstoutumista voidaan louhia tiivistämällä, jolloin osoitetut lohkot siirretään toiselle puolelle, jolloin saadaan vierekkäistä tilaa. Tämä toimenpide vie kuitenkin aikaa ja myös tiettyjä kriittisiä osoitettuja alueita, esimerkiksi järjestelmäpalveluita, ei voida siirtää turvallisesti. Voimme havaita tämän tiivistysvaiheen kiintolevyillä suoritettaessa levyn eheytysohjelmaa Windowsissa.
• Ulkoinen pirstoutuminen voidaan estää sellaisilla mekanismeilla kuin segmentointi ja haku. Tässä annetaan looginen vierekkäinen virtuaalimuistitila, kun taas todellisuudessa tiedostot/ohjelmat on jaettu osiin ja sijoitettu sinne tänne.
• Sisäistä pirstoutumista voidaan vahingoittaa käyttämällä usean kokoisia osioita ja määrittämällä ohjelma parhaan sopivuuden mukaan. Silti sisäinen pirstoutuminen ei ole täysin eliminoitunut.
Yhteenveto:
Sisäinen vs ulkoinen pirstoutuminen
Sekä sisäinen pirstoutuminen että ulkoinen pirstoutuminen ovat ilmiöitä, joissa muistia menee hukkaan. Sisäinen pirstoutuminen tapahtuu kiinteän kokoisessa muistin varauksessa, kun taas ulkoinen pirstoutuminen tapahtuu dynaamisessa muistin varauksessa. Kun varattu osio on varattu ohjelmalla, joka on pienempi kuin osio, jäljellä oleva tila menee hukkaan aiheuttaen sisäistä pirstoutumista. Kun ohjelmien lataamisen ja purkamisen jälkeen ei löydy tarpeeksi vierekkäistä tilaa, koska vapaata tilaa jaetaan sinne tänne, tämä aiheuttaa ulkoista pirstoutumista. Sirpaloitumista voi tapahtua missä tahansa muistilaitteessa, kuten RAM-muistissa, kiintolevyssä ja Flash-asemissa.