Kasutaja:Alfaomeega/Fragmentatsioon

Allikas: Vikipeedia
Jump to navigation Jump to search

Arvutitehnikas nimetatakse fragmentatsiooni fenomeniks, kus arvutimälu ei kasutata optimaalselt, vähendades vastava andmekandja mälumahtu, jõudlust või mõlemat. Fragmentatsiooni täpsemad tagajärjed sõltuvad mälu haldavast failisüsteemist ning fragmentatsiooni liigist. Paljudel juhtudel on tagajärjeks mälu üleliigne kasutamine.

On kolm erinevat fragmentatsiooni liiki: väline fragmentatsioon, sisemine fragmentatsioon ja andmete fragmentatsioon, mis võivad esineda ühe- või mitmekaupa.

Tööpõhimõte[muuda | muuda lähteteksti]

Kui arvutiprogramm vajab informatsiooni mälust, toimub mälueraldus. Mälu eraldatakse plokkidena. Kui programm on mäluploki kasutamise lõpetanud, vabastab see ploki tagasi süsteemile, tehes selle kättesaadavaks samale või muudele programmidele hilisemaks korduvkasutuseks. Arvutiprogrammi poolt kasutatava mäluploki eraldusaeg ja suurus olenevad vastavast programmist. Arvuti võib oma eluajal eraldada ja vabastada suurel hulgal plokke. Seetõttu muutuvad aja jooksul pikad ja ühendatud arvutmälu regioonid lühemateks ühendatud osadeks, muutes suurte mäluplokkide eraldamise arvutile võimatuks.

Fragmentatsiooni liigid[muuda | muuda lähteteksti]

Sisemine fragmentatsioon[muuda | muuda lähteteksti]

Mälueraldust puudutavad seadused dikteerivad, et programmidele eraldatav mälu saab olla vaid plokkides mis jaguvad 4, 8 või 16-ga. Kui programm peaks küsima näiteks 23 baiti, saab see hoopis 32-baidise ploki, muutes osa mälust kasutamatuks. Selles olukorras asub kasutamatuks muutunud mälu eraldatud regioonis. Sellist mälukadu nimetatakse sisemiseks fragmentatsiooniks.[1][2]

Väline fragmentatsioon. Kolmandas reas olev plokk B ei ole kasutatav, kui kirjutatav fail on sellest suurem.

Väline fragmentatsioon[muuda | muuda lähteteksti]

Väline fragmentatsioon tekib siis, kui vaba mälu jagatakse väikestesse plokkidesse ning paigutatakse eraldatud mäluga vaheldumisi. Taoline arvutiprogrammide poolt kasutatava mälu ebapraktiline jaotus on osade eraldusalgoritmide suureks nõrkuseks. Tagajärjeks on olukord, kus vaba mälu on olemas, kuid see ei ole reaalselt kasutatav kuna see on jagatud eraldi väikesteks osadeks mis ei saa individuaalselt programmdide töötamiseks vajalikku mäluhulka eraldada. Nimetus "väline" tuleb sellest, et kasutuks muutunud mälu asub väljaspool eraldatud mälu regioone.

Andmete fragmentatsioon[muuda | muuda lähteteksti]

Andmete fragmentatsioon leiab aset, kui mälusse salvestatud andmete hulk on seal mitete väikeste osadena mis on üksteisest kaugel. See on tavaliselt tagajärg, kui proovitakse välise fragmentatsiooni all kannatavale andmekandjale suuremahulist andmehulka salvestada. Failisüsteemides hallatakse faile plokkide või klastritena. Kui failisüsteem luuakse, on vaba ruumi selleks, et failide plokid paigutada järjest üksteise kõrvale. Taoline paigutus võimaldab faili kiirelt lugeda ja redigeerida. Ajaga muutub aga vaba ruum väliselt fragmenteerituks ning jätab andmete paigutamiseks vaid lühikesed vabad mälu regioonid.

Kui uus fail kirjutatakse või olemasolevat faili suurendatakse, paigutab operatsioonisüsteem uued andmed mittejärjestikustesse plokkidesse mis täidavad välise fragmentatsiooniga tekkinud vabad mälu regioonid. Ühe faili või programmiga seotud mälu plokid, mis on üksteisest arvutimälus niiviisi eemale paigutatud, võtavad lugemiseks kauem aega, eriti kõvaketastel nende tööpõhimõttest tulenevate piirangute tõttu. Sellist üksteisega seotud andmete hõredat paigutust mälus nimetetakse andmete fragmentatsiooniks.

Uut kindla suurusega faili kirjutades paigutatakse see eelisjärjekorras vabasse mälu regiooni, mis on suurem kui antud fail. See aitab vältida andmete fragmentatsiooni. Kui ei ole ühtegi vaba mälu regiooni, mis on failist suurem, on olemas erinevaid algoritme, mis jagavad faili mitmeteks osadeks ning paigutavad need vabadesse väikesemahulistesse mälu regioonidesse. "Best fit" algoritm leiab väikseima vahemiku, mis on küllalt suur. "Worst fit" leiab suurima vahemiku. "First-fit" leiab esimese vahemiku, mis on küllalt suur. "Next fit" algoritm hoiab järge ning salvestab andmed selle kohta, mis mälu piirkonda faili eri osad kirjutati.[3]

Mõju süsteemile[muuda | muuda lähteteksti]

Võrreldes välise fragmentatsiooniga ei mõjuta andmete fragmentatsioon ja sisemine fragmentatsioon niivõrd negatiivselt süsteemi jõudlust ega mälu. Väline fragmentatsioon on väiksemaks probleemiks failisüsteemides mis võimaldavad faili andmete killustumist , kuid põhimälu(RAM) eraldussüsteemides on vaja eraldada tellitud mälu järjestikuste plokkidena.

Defragmentatsioon[muuda | muuda lähteteksti]

Andmete fragmentatsiooni eemaldamiseks on loodud defragmentatsiooni tarkvara. Defragmentatsioon seisneb mäluplokkide ümberpaigutamises nii, et need oleks järjestikku ja mäluplokkide vahel ei oleks tühja ruumi. Defragmentatsioon kiirendab oluliselt süsteemi jõudlust, kuna failide lugemine toimub järjest ning ei ole vaja kulutada resursse erinevate mäluplokkide ülesotsimiseks.

Üksteisest kaugel paiknevad kuid seotud mäluplokid tõstetakse üksteise kõrvale ning mäluplokkide vahel olev tühi ruum eemaldatakse.
Näide defragmentatsioonist.

Vaata ka[muuda | muuda lähteteksti]

Välislingid[muuda | muuda lähteteksti]

http://arvutimeistrid.ee/defragmenteerimine-ja-kovaketas/ http://www.cs.tlu.ee/~inga/alg_andm/funktsioonid_ja_C.pdf


Viited[muuda | muuda lähteteksti]

  1. The PC Guide. Aprill 17, 2001.
  2. Symantec. 2001-01-14.
  3. D. Samanta. "Classic Data Structures" 2004. lk. 76