Compactació de fitxers

De Viquipèdia
Dreceres ràpides: navegació, cerca
Esquema que mostra com es desfragmenta un disc. Els fitxers es representen amb colors diferents, i al principi estan fragmentats (regats per tot el disc). Després el procés de desfragmentació va acomodant els fitxers de tal manera que cada un quedi en una àrea contigua i no hi hagi espais entre ells.

La desfragmentació és el procés mitjançant el qual s'acomoden els fitxers d'un disc de tal manera que cada un quedi en una àrea contigua i sense espais sense usar entre ells. En anar escrivint i esborrant fitxers contínuament en el disc dur, aquests tendeixen a no quedar en àrees contigües, així, un fitxer pot quedar "partit" en molts trossos al llarg del disc, es diu que l'fitxer està "fragmentat". En tenir els fitxers escampats pel disc, es torna ineficient l'accés a ells.

El problema d'emmagatzematge no contigu de fitxers s'anomena fragmentació , es produeix a causa del emmagatzematge de fitxers en dispositius com disc dur i memòria RAM per l'ús de l'ordinador.

La fragmentació és un problema que sorgeix a causa del ordenament intern de les dades en alguns sistema de fitxers. Es dóna molt comunament en el sistema operatiu Windows encara que també afecta altres plataformes però en una escala molt menor. També es produeix fragmentació dins de la memòria del computador (memòria RAM) quan s'assignen els processos als diferents blocs de memòria. Existeixen dos tipus de fragmentació: doble i triple.

Desfragmentar no fa que l'ordinador treballi més ràpid, sinó que agilitza el procés de la navegació pels fitxers.

Motivació[modifica | modifica el codi]

La lectura i escriptura seqüencials de sistemes de fitxers fortament fragmentats s'alenteix, pel fet que augmenta el temps necessari perquè els capçals del disc es moguin entre els fragments i esperin a que el disc giri a la posició de lectura (vegeu temps de recerca i retard rotacional). Per a moltes operacions comuns, el coll d'ampolla en l'operació de tot l'ordinador és el disc dur; per això el desig de processar més eficientment animi a la desfragmentació. Els venedors de sistemes operatius sovint recomanen la desfragmentació periòdica per evitar que la velocitat d'accés al disc es degradi amb el temps.

Les dades fragmentats també s'estenen pel disc més del necessari. Per tant, un pot desfragmentar per agrupar les dades en una zona, abans de dividir la partició en dos o més (per exemple, amb GNU Parted o PartitionMagic).

La desfragmentació pot augmentar la pròpia vida del disc dur, en minimitzar el moviment dels capçals i simplificar les operacions d'accés a les dades.

Causes[modifica | modifica el codi]

La fragmentació ocorre quan el sistema operatiu no assigna prou espai contigu per emmagatzemar un fitxer complet com una unitat, sinó que, en canvi, posa parts en buits entre altres fitxers (usualment aquests buits existeixen perquè abans van contenir un fitxer que posteriorment va ser esborrat pel sistema operatiu, o perquè aquest en primer lloc va assignar massa espai per a un fitxer). Els fitxers més grans i el major nombre de fitxers també contribueixen a la fragmentació i en conseqüència a la pèrdua de rendiment. La defragmentació intenta alleujar aquests problemes.

Fragmentació[modifica | modifica el codi]

Fragmentació

La fragmentació és la memòria que queda desaprofitada en usar els mètodes de gestió de memòria. Tant el primer ajust, com el millor i el pitjor produeixen fragmentació externa (Coneguts com a estratègies de Col·locació).

La fragmentació és generada quan durant el reemplaçament de processos queden buits entre dos o més processos de manera no contigua i cada buit no és capaç de suportar cap procés de la llista d'espera. Potser en conjunt si sigui espai suficient, però es requeriria d'un procés de desfragmentació de memòria o compactació per aconseguir-ho. Aquesta fragmentació es denomina fragmentació externa.

Hi ha un altre tipus de fragmentació coneguda com a fragmentació interna, la qual és generada quan es reserva més memòria de la que el procés utilitzarà. No obstant això a diferència de l'externa, aquests buits no es poden compactar per a ser utilitzats. S'ha d'esperar a la finalització del procés perquè s'alliberi el bloc complet de la memòria.

Fragmentació interna[modifica | modifica el codi]

La fragmentació interna és la pèrdua d'espai en disc a causa del fet que la mida d'un determinat fitxer sigui inferior a la mida del clúster, ja que teòricament el fitxer estaria obligat a ser referenciat com un clúster complet. Els clúster són contigus de manera que des de l'últim bit de l'fitxer situat al clúster "a" fins al primer bit del fitxer situat al clúster contigu (com ara "b") queda un espai sobrant, sempre que es tingui la condició que el fitxer del clúster "a" sigui més petit que el clúster en si.

Per això se suggereix no disposar d'un gran mida de partició en els discos nous on la capacitat és molt important. Per exemple si el nostre clúster és de 18KB (18.432 bytes) per més que un fitxer ocupi menys, en el nostre disc ocuparia 18KB. Això suggereix una pèrdua d'aquest espai que diu utilitzar, però no utilitza.

Per això, en el nostre exemple, un fitxer de 3KB ocuparia en el nostre disc el mateix que un de 10KB, és a dir 18 kB. Aquesta pèrdua d'espai es denomina fragmentació interna i no es corregeix amb el desfragmentar, sinó disminuint la mida de la partició.

Fragmentacions interna i externa

Fragmentació externa[modifica | modifica el codi]

Aquest tipus de fragmentació apareix com a conseqüència de les diferents polítiques d'ajust de blocs que té un sistema de fitxers o en utilitzar assignacions dinàmiques de blocs en el cas de la memòria. En el sistema de fitxers, la successiva creació i eliminació de fitxers de diferents mides pot conduir a l'aïllament dels blocs lliures d'un disc i, depenent de la política d'ajust, que no s'elegeixin per a futurs fitxers.

En la memòria del sistema la fragmentació es produeix quan els processos assignats han ocupat posicions no contigües de memòria deixant massa blocs lliures de mida petita, en què no "caben" nous processos.

En sistemes de fitxers la desfragmentació tracta de resoldre aquest problema alineant els blocs de dades contigus i ajuntant els blocs lliures, produint així fragments majors que sí que seran elegits per a futurs fitxers. En la memòria principal se soluciona compactant els processos perquè aquests ocupin posicions contigües i deixin els blocs lliures junts o també se soluciona amb la paginació de memòria.

Desfragmentació[modifica | modifica el codi]

Aquest procés consta d'ordenar els trossos d'informació distribuïda a través de tot el disc, per millorar la velocitat d'accés i distribuir de millor manera l'espai lliure del dispositiu. Com aquest procés consta en la reorganització de parts de fitxers, requereix de prou memòria per realitzar els moviments dels trossos d'informació. En moure en forma física la informació, l'estructura lògica no pateix alteracions.

Aspectes de la desfragmentació[modifica | modifica el codi]

En Windows la presència de fitxers inamovibles del sistema o que el desfragmentar no mourà per simplificar la seva tasca (sobretot amb el fitxer d'intercanvi o swap file ) pot impedir un bon percentatge de desfragmentació en el disc.

Certs sistemes de fitxers són més susceptibles a canvis per desfragmentació que altres. Per exemple, una partició de tipus FAT es fragmenta més ràpid que una de partició del tipus NTFS (Windows), EXT 4 (Linux) o HFS+(MacOSX).

Contramesures comuns[modifica | modifica el codi]

Particions

Una estratègia comuna per optimitzar la desfragmentació i reduir l'impacte de la fragmentació és particionar el/s disc (s) dur (s) per separar les particions del sistema de fitxers que experimenten moltes més lectures i escriptures, de les zones més volàtils, on es creen i s'esborren freqüentment els fitxers. En Windows de Microsoft, el contingut de directoris com ara "\fitxers de programes" o "\Windows" es modifica amb molta menor freqüència que la de les seves lectures. Els directoris que contenen els perfils dels usuaris es modifiquen constantment (especialment el directori Temp i el cache del Internet Explorer, que crea milers de fitxers que s'esborren en uns quants dies). Si els fitxers dels perfils dels usuaris es mantenen en una partició dedicada (com es fa comunament en els sistemes UNIX), el desfragmentar funciona millor, ja que no ha de tractar amb tots els fitxers estàtics dels altres directoris. A les particions amb relativament poca activitat, el rendiment de la desfragmentació millora granment després de la primera, ja que en el futur el compactador només haurà de desfragmentar un petit nombre de nous fitxers.

Problemes[modifica | modifica el codi]

fitxers inamovibles[modifica | modifica el codi]

La presència de fitxers de sistema inamovibles, especialment un fitxer d'intercanvi, pot dificultar la desfragmentació. Aquests fitxers es poden moure amb seguretat quan el sistema operatiu no està funcionant. Per exemple, ntfsresize mou aquests fitxers per canviar la mida d'una partició NTFS.

Creixement de la fragmentació[modifica | modifica el codi]

En sistemes sense resistència a la fragmentació, aquesta creix per si mateixa si no es fa res, així que és necessària la desfragmentació periòdica per mantenir el rendiment del disc al màxim i evitar la sobrecàrrega de defragmentaciones menys freqüents.

Problemes de rendiment i de l'usuari[modifica | modifica el codi]

En una àmplia gamma de sistemes operatius multiusuari, un usuari ordinari no pot desfragmentar els discs del sistema perquè es requereix l'accés del superusuari (o "Administrador") per moure els fitxers del sistema. A més, els sistemes de fitxers com ara el NTFS (i la majoria dels sistemes de fitxers Unix/Linux) estan dissenyats per reduir la probabilitat de la fragmentació. [2] [3] Les millores en els discos durs moderns, com ara cache en RAM, major velocitat de rotació del disc i major densitat de dades, redueixen en algun grau l'impacte negatiu de la fragmentació en el rendiment del sistema, encara els augments en les quantitats de dades usades comunament compensen aquests efectes.

Tanmateix, els sistemes moderns es beneficien en gran mesura de les enormes capacitats de disc disponibles actualment, ja que els discos parcialment ocupats es fragmenten molt menys que els discos plens. [4] En qualsevol cas, aquestes limitacions de la desfragmentació han portat a decisions de disseny en els sistemes operatius moderns, com ara el Mac OS X basat en Unix, el qual es va introduir el 1999 i va eliminar la necessitat, en la utilització normal, que l'usuari hagi de compactar una unitat. Vuit anys després, el 2007, Windows Vista també va introduir la capacitat de desfragmentar automàticament en un procés en segon pla - encara que no intenta defragmentar completament un volum, ja que fer-ho només produiria augments de rendiment menyspreables. [5]

Aproximació i desfragmentadores segons el tipus de sistema[modifica | modifica el codi]

Els programes de desfragmentació, en general, vénen incorporats al sistema operatiu (excepte en Windows NT 4). També existeixen aplicacions externes, les quals posseeixen opcions més avançades que les propostes pels fabricants del sistema operatiu.

El desfragmentador més conegut és el Defrag, que és usat en MS-DOS i en les plataformes de Windows (en aquestes últimes amb el nom de "desfragmentar de disc"). Pot ser trobat en les versions de Windows en Inici → Programes → Accessoris → Eines de Sistema .

Desfragmentadores segons tipus de partició del sistema[modifica | modifica el codi]

  • FAT: Els sistemes DOS 6.xi Windows 9x vénen amb una utilitat de desfragmentació anomenada Defrag. La de DOS és una versió limitada de SpeedDisk de Norton [6], i la de Windows és una versió amb llicència de Diskeeper.
  • NTFS: Windows 2000 i posteriors inclouen una eina de desfragmentació obtinguda de Diskeeper. NT 4 i anteriors no incorporen utilitats de desfragmentació. Desafortunadament, el desfragmentar integrat no consolida l'espai lliure. Per tant una unitat fortament fragmentada amb molts espais petits pot no tenir-ne de grans consecutius després de la desfragmentació. Així, qualsevol nou fitxer gran instantàniament serà dividit en fragments petits, amb un impacte immediat en el rendiment. Això pot passar fins i tot si l'espai usat en el disc és inferior al 60%. [7]
  • Ext2 (Linux) utilitza un desfragmentador extern anomenat e2defrag , el qual no funciona amb el seu successor ext3, llevat que aquest sistema de fitxers es converteixi temporalment en ext2. En el seu lloc es pot usar un desfragmentador independent del sistema de fitxers, tal com Shake.[1]
  • Vxfs té una utilitat, fsadm, pensada per realitzar també operacions de desfragmentació.
  • JFS té una utilitat, en els sistemes operatius d'IBM.
  • HFS Plus (MAC OS X) va introduir el 1998 un nombre de optimitzacions als algorismes d'assignació, en un intent de desfragmentar els fitxers mentre s'accedia a ells, sense un desfragmentador separat. Si el sistema de fitxers es torna fragmentat, l'única manera de desfragmentarlo és adquirir iDefrag de Coriolis System.
  • WAFL en el sistema operatiu ONTAP 7.2 de NetApp té una ordre anomenat reallocate , dissenyat per desfragmentar fitxers grans.
  • XFS proporciona una utilitat de desfragmentació en línia, anomenada xfs_fsr .
  • SFS processa la característica de desfragmentació de manera gairebé completament desnacionalitzada (a part de la ubicació on està funcionant), així que la desfragmentació es pot aturar i iniciar instantàniament.

Vegeu també[modifica | modifica el codi]

Bibliografia[modifica | modifica el codi]

  • Norton, Peter (1994). Peter Norton s Completi Guide to DOS 6,22 , pàgina 521 - Sams (ISBN 067230614X).
  • Woody Leonhard, Justin Leonhard (2005). Windows XP Timesaving Techniques For Dummies, Second Edition , pàgina 456 - For Dummies (ISBN 0-764578-839).
  • Jensen, Craig (1994). Fragmentation: The Condition, the Cause, the Cure . Executive Software International (ISBN 0-9640049-0-9).
  • Dave Kleiman, Laura Hunter, Mahesh Satyanarayana, Kimon Andreou, Nancy G. Altholz, Lawrence Abrams, Darren Windham, Tony Bradley i Brian Barber (2006). Winternals: Defragmentation, Recovery, and Administration Field guide - Syngress (ISBN 1-597490-792).
  • Robb, Drew (2003). Server disk Management in a Windows Environment , Chapter 7 - Auerbach (ISBN 0849324327).

Referències[modifica | modifica el codi]