Sisemine vs väline killustatus
Erinevus sisemise ja välise killustatuse vahel pakub huvi paljudele, kellele meeldib oma arvutialaseid teadmisi täiendada. Enne selle erinevuse tundmist peame nägema, mis on killustatus. Killustumine on nähtus, mis esineb arvutimälus, näiteks muutmälus (RAM) või kõvaketastel, mis põhjustab vaba ruumi raiskamist ja ebaefektiivset kasutamist. Kuigi saadaoleva ruumi tõhus kasutamine on takistatud, põhjustab see ka jõudlusprobleeme. Sisemine killustumine toimub siis, kui mälu eraldamine põhineb fikseeritud suurusega partitsioonidel, kus pärast väikese suurusega rakenduse pesa määramist raisatakse selle pesa ülejäänud vaba ruum. Väline killustumine toimub siis, kui mälu eraldatakse dünaamiliselt, kui pärast mitme pesa laadimist ja mahalaadimist siin-seal jaotatakse vaba ruum pigem laiali kui külgnevaks.
Mis on sisemine killustatus?
Vaadake ül altoodud joonist, kus järgitakse fikseeritud suurusega mälujaotusmehhanismi. Esialgu on mälu tühi ja jaotaja on jaganud mälu fikseeritud suurusega partitsioonideks. Hiljem laaditi kolm esimest sektsiooni nimega A, B, C, samas kui neljas partitsioon on endiselt vaba. Programm A vastab partitsiooni suurusele, nii et selles partitsioonis pole raiskamist, kuid programm B ja programm C on partitsiooni suurusest väiksemad. Nii et osas 2 ja partitsioonis 3 on vaba ruumi. See vaba ruum on aga kasutuskõlbmatu, kuna mälujagaja määrab programmidele ainult täispartitsioonid, kuid mitte selle osi. Sellist vaba ruumi raiskamist nimetatakse sisemiseks killustatuks.
Ül altoodud näites on tegemist võrdse suurusega fikseeritud partitsioonidega, kuid see võib juhtuda isegi olukorras, kus saadaval on erineva fikseeritud suurusega partitsioonid. Tavaliselt jagatakse mälu või raskeim ruum plokkideks, mille suurus on tavaliselt 2, näiteks 2, 4, 8, 16 baiti. Seega määratakse programm või 3-baidine fail 4-baidilisele plokile, kuid üks bait sellest plokist muutub kasutuskõlbmatuks, põhjustades sisemist killustumist.
Mis on väline killustatus?
Vaadake ül altoodud joonist, kus mälu eraldamine toimub dünaamiliselt. Dünaamilise mälu jaotamise korral eraldab jaotaja selle programmi jaoks ainult täpselt vajaliku suuruse. Esimene mälu on täiesti tasuta. Seejärel laaditakse üksteise järel erineva suurusega programmid A, B, C, D ja E ning need paigutatakse selles järjekorras kõrvuti mällu. Hiljem suletakse programm A ja programm C ning need laaditakse mälust välja. Nüüd on mälus kolm vaba ruumi, kuid need ei ole kõrvuti. Nüüd laaditakse suur programm nimega Program F, kuid programmi F jaoks ei piisa kummastki vaba ruumiplokist. Programmi F jaoks piisab kindlasti kõigi vabade ruumide lisamisest, kuid külgnevuse puudumise tõttu jääb see ruum tühjaks. programmi F jaoks kasutamiskõlbmatu. Seda nimetatakse väliseks killustatuks.
Mis vahe on sisemisel ja välisel killustatusel?
• Sisemine killustumine toimub siis, kui kasutatakse fikseeritud suurusega mälujaotuse tehnikat. Dünaamilise mälu jaotamise tehnika kasutamisel tekib väline killustumine.
• Sisemine killustatus ilmneb siis, kui fikseeritud suurusega partitsioon määratakse programmile/failile, mille suurus on väiksem kui partitsioonil, mis muudab ülejäänud ruumi selles partitsioonis kasutamiskõlbmatuks. Väline killustumine on tingitud sellest, et pärast programmide või failide laadimist ja mahalaadimist ei ole mõnda aega piisav alt ruumi, kuna siis jaotatakse kogu vaba ruum siia-sinna.
• Välist killustumist saab kaevandada tihendamise teel, kus määratud plokid nihutatakse ühele küljele, nii et tekib külgnev ruum. See toiming võtab aga aega ja ka teatud kriitilisi määratud piirkondi, näiteks süsteemiteenuseid, ei saa ohutult teisaldada. Seda kõvaketaste tihendamisetappi saame jälgida, kui käitate Windowsi kettadefragmentijat.
• Välist killustumist saab ära hoida selliste mehhanismide abil nagu segmentimine ja otsingud. Siin antakse loogiline külgnev virtuaalne mäluruum, samas kui tegelikkuses on failid/programmid jagatud osadeks ja paigutatud siia-sinna.
• Sisemist killustumist saab kahjustada mitmes suuruses partitsioonide olemasolu ja parima sobivuse alusel programmi määramisega. Siiski ei ole sisemine killustatus täielikult kõrvaldatud.
Kokkuvõte:
Sisemine vs väline killustatus
Nii sisemine killustatus kui ka väline killustatus on nähtused, mille puhul mälu raisatakse. Sisemine killustumine toimub fikseeritud suurusega mälu jaotamisel, samas kui väline killustatus toimub dünaamilise mälu jaotamise korral. Kui eraldatud partitsiooni hõivab programm, mis on partitsioonist väiksem, läheb ülejäänud ruum raisku, põhjustades sisemist killustumist. Kui pärast programmide laadimist ja mahalaadimist ei leita piisav alt külgnevat ruumi, kuna vaba ruum jaotub siia-sinna, põhjustab see välist killustumist. Killustumine võib toimuda mis tahes mäluseadmes, nagu RAM, kõvaketas ja välkmälu.