Está en la página 1de 20

Gestin de la Memoria

1.-REQUISITOS DE LA GESTIN DE LA MEMORIA


Mientras se analizan varios mecanismos y polticas asociados con la gestin de la
memoria, es til mantener en mente los requisitos que la gestin de la memoria
debe satisfacer.[LIST93] sugiere cinco requisitos:
Reubicacin
En un sistema Multiprogramado, la memoria principal disponible se comparte
generalmente entre varios procesos. Adicionalmente, sera bueno poder
intercambiar procesos en la memoria principal para maximizar la utilizacin del
procesador, proporcionando un gran nmero de procesos para la ejecucin. Una
vez que un programa se ha llevado al disco, sera bastante limitante tener que
colocarlo en la misma regin de memoria principal donde se hallaba
anteriormente, cuando ste se trae de nuevo a la memoria. Por el contrario, podra
ser necesario reubicar el proceso a un rea de memoria diferente. Por tanto, no
se puede conocer de forma anticipada dnde se va a colocar un programa y se
debe permitir que los programas se puedan mover en la memoria principal, debido
al intercambio o swap.
Estos hechos ponen de manifiesto algunos aspectos tcnicos relacionados con el
direccionamiento, como se muestra en la Figura 7.1. La figura representa la
imagen de un proceso. Por razones de simplicidad, se asumir que la imagen de
un proceso ocupa una regin contigua de la memoria principal.
Claramente, el sistema operativo necesitar conocer la ubicacin de la informacin
de control del proceso y de la pila de ejecucin, as como el punto de entrada que
utilizar el proceso para iniciar la ejecucin. Estas direcciones son fciles de
adquirir.
Adicionalmente, sin embargo, el procesador debe tratar con referencias de
memoria dentro del propio programa.
Las instrucciones de salto contienen una direccin para referenciar la instruccin
que se va a ejecutar a continuacin. Las instrucciones de referencia de los datos
contienen la direccin del byte o palabra de datos referenciados. De alguna forma,
el hardware del procesador y el software del sistema operativo deben poder
traducir las referencias de memoria encontradas en el cdigo del programa en
direcciones de memoria fsicas, que reflejan la ubicacin actual del programa en la
memoria principal.

Proteccin
Cada proceso debe protegerse contra interferencias no deseadas por parte de
otros procesos, sean accidentales o intencionadas. Por tanto, los programas de
otros procesos no deben ser capaces de referenciar sin permiso posiciones de
memoria de un proceso, tanto en modo lectura como escritura. Por un lado, lograr
los requisitos de la reubicacin incrementa la dificultad de satisfacer los requisitos
de proteccin.
Ms an, la mayora de los lenguajes de programacin permite el clculo dinmico
de direcciones en tiempo de ejecucin (por ejemplo, calculando un ndice de
posicin en un vector o un puntero a una estructura de datos). Por tanto, todas las
referencias de memoria generadas por un proceso deben comprobarse en tiempo
de ejecucin para poder asegurar que se refieren slo al espacio de memoria
asignado a dicho proceso. Sin un trato especial, un programa de un proceso no
puede acceder al rea de datos de otro proceso. El procesador debe ser capaz de
abortar tales instrucciones en el punto de ejecucin.

Comparticin
Cualquier mecanismo de proteccin debe tener la flexibilidad de permitir a varios
procesos acceder a la misma porcin de memoria principal. Por ejemplo, si varios
programas estn ejecutando el mismo programa, es ventajoso permitir que cada
proceso pueda acceder a la misma copia del programa en lugar de tener su propia

copia separada. Procesos que estn cooperando en la misma tarea podran


necesitar compartir el acceso a la misma estructura de datos. Por tanto, el sistema
de gestin de la memoria debe permitir el acceso controlado a reas de memoria
compartidas sin comprometer la proteccin esencial.
Organizacin Lgica
Casi invariablemente, la memoria principal de un computador se organiza como un
espacio de almacenamiento lineal o unidimensional, compuesto por una secuencia
de bytes o palabras. La mayora de los programas se organizan en mdulos,
algunos de los cuales no se pueden modificar (slo lectura, slo ejecucin) y
algunos de los cuales contienen datos que se pueden modificar. Si el sistema
operativo y el hardware del computador pueden tratar de forma efectiva los
programas de usuarios y los datos en la forma de mdulos de algn tipo, entonces
se pueden lograr varias ventajas:
1. Los mdulos se pueden escribir y compilar independientemente, con todas
las referencias de un mdulo desde otro resueltas por el sistema en tiempo
de ejecucin.
2. Con una sobrecarga adicional modesta, se puede proporcionar diferentes
grados de proteccin a los mdulos (slo lectura, slo ejecucin).
3. Es posible introducir mecanismos por los cuales los mdulos se pueden
compartir entre los procesos. La ventaja de proporcionar comparticin a nivel
de mdulo es que se corresponde con la forma en la que el usuario ve el
problema, y por tanto es fcil para ste especificar la comparticin deseada.
La herramienta que ms adecuadamente satisface estos requisitos es la
segmentacin, que es una de las tcnicas de gestin de la memoria
exploradas en este captulo.
Organizacin Fsica
La memoria del computador se organiza en al menos dos niveles, conocidos como
memoria principal y memoria secundaria. La memoria principal es pequea y
proporciona acceso rpido a un coste relativamente alto(es voltil); es decir, no
proporciona almacenamiento permanente (contiene datos en uso). La memoria
secundaria es ms lenta, ms barata y de larga capacidad (no es voltil), puede
proporcionar almacenamiento para programas y datos a largo plazo. La
responsabilidad para este flujo podra asignarse a cada programador en particular,
pero no es practicable o deseable por dos motivos:
1. La memoria principal disponible para un programa ms sus datos podra
ser insuficiente. En este caso, el programador debera utilizar una tcnica
conocida como superposicin (overlaying), en la cual los programas y los
datos se organizan de tal forma que se puede asignar la misma regin de
memoria a varios mdulos, con un programa principal responsable para
intercambiar los mdulos entre disco y memoria segn las necesidades.

Incluso con la ayuda de herramientas de compilacin, la programacin con


overlays malgasta tiempo del programador.
2. En un Entorno Multiprogramado, el programador no conoce en tiempo
de codificacin cunto espacio estar disponible o dnde se localizar dicho
espacio.
Por tanto, est claro que la tarea de mover la informacin entre los dos
niveles de la memoria debera ser una responsabilidad del sistema. Esta
tarea es la esencia de la gestin de la memoria.
2.- PARTICIONAMIENTO DE LA MEMORIA
La operacin principal de la gestin de la memoria es traer los procesos a la
memoria principal para que el procesador los pueda ejecutar. En casi todos los
sistemas Multiprogramado modernos, esto implica el uso de un esquema
sofisticado denominado memoria virtual. Por su parte, la memoria virtual se basa
en una o ambas de las siguientes tcnicas bsicas: segmentacin y paginacin.
Antes de fijarse en estas tcnicas de memoria virtual, se debe preparar el camino,
analizando tcnicas ms sencillas que no utilizan memoria virtual (Tabla7.1). Las
otras dos tcnicas, paginacin sencilla y segmentacin sencilla, no son
utilizadas de forma aislada.
A) Particionamiento Fijo
En la mayora de los esquemas para gestin de la memoria, se puede asumir que
el sistema operativo ocupa alguna porcin fija de la memoria principal y que el
resto de la memoria principal est disponible para mltiples procesos. El esquema
ms simple para gestionar la memoria disponible es repartirla en regiones con
lmites fijos.
A.1) Tamaos de particin
La Figura 7.2 muestra ejemplos de dos alternativas para el
particionamiento fijo. Una posibilidad consiste en hacer uso de
particiones del mismo tamao. En este caso, cualquier proceso cuyo
tamao es menor o igual que el tamao de particin puede cargarse en
cualquier particin disponible. Si todas las particiones estn llenas y no
hay ningn proceso en estado Listo o Ejecutando, el sistema operativo
puede mandar a swap a un proceso de cualquiera de las particiones y
cargar otro proceso, de forma que el procesador tenga trabajo que
realizar.

Existen dos dificultades con el uso de las particiones fijas del mismo
tamao:
Un programa podra ser demasiado grande para caber en una particin.
En este caso, el programador debe disear el programa con el uso de
overlays, de forma que slo se necesite una porcin del programa en
memoria principal en un momento determinado.
La utilizacin de la memoria principal es extremadamente ineficiente.
Cualquier programa, sin importar lo pequeo que sea, ocupa una
particin entera

A.2) Tcnicas de Gestin de Memoria

A.3) Algoritmo de Ubicacin


Una tcnica ptima sera emplear una nica cola para todos los
procesos (Figura 7.3b). En el momento de cargar un proceso en la
memoria principal, se selecciona la particin ms pequea disponible
que puede albergar dicho proceso. Si todas las particiones estn
ocupadas, se debe llevar a cabo una decisin para enviar a swap a

algn proceso. Tiene preferencia a la hora de ser expulsado a disco el


proceso que ocupe la particin ms pequea que pueda albergar al
proceso entrante. Es tambin posible considerar otros factores, como la
prioridad o una preferencia por expulsar a disco procesos bloqueados
frente a procesos listos. El uso de particiones de distinto tamao
proporciona un grado de flexibilidad frente a las particiones fijas.

b) nica
Cola

Figura 7.3. Asignacin de memoria para particionamiento


fijo.
Sin embargo, tiene una serie de desventajas:

El nmero de particiones especificadas en tiempo de generacin del


sistema limita el nmero de proceso activos (no suspendidos) del
sistema.
Debido a que los tamaos de las particiones son preestablecidos en
tiempo de generacin del sistema, los trabajos pequeos no utilizan el
espacio de las particiones eficientemente.

B) Particionamiento Dinmico
Con particionamiento dinmico, las particiones son de longitud y nmero variable.
Cuando se lleva un proceso a la memoria principal, se le asigna exactamente
tanta memoria como requiera y noms.
Un ejemplo, que utiliza 64 Mbytes de memoria principal, se muestra en la Figura
7.4. Inicialmente, la memoria principal est vaca, excepto por el sistema operativo

(a). Los primeros tres procesos se cargan justo donde el sistema operativo finaliza
y ocupando el espacio justo para cada proceso (b, c, d). Esto deja un hueco al
final de la memoria que es demasiado pequeo para un cuarto proceso.
En algn momento, ninguno de los procesos que se encuentran en memoria est
disponible. El sistema operativo lleva el proceso 2 al disco (e), que deja suficiente
espacio para cargar un nuevo proceso, el proceso 4 (f). Debido a que el proceso 4
es ms pequeo que el proceso 2, se crea otro pequeo hueco. Posteriormente,
se alcanza un punto en el cual ninguno de los procesos de la memoria principal
est listo, pero el proceso 2, en estado Listo-Suspendido, est disponible. Porque
no hay espacio suficiente en la memoria para el proceso 2, el sistema operativo
lleva a disco el proceso 1 (g) y lleva a la memoria el proceso 2 (h).Como muestra
este ejemplo, el mtodo comienza correctamente, pero finalmente lleva a una
situacin en la cual existen muchos huecos pequeos en la memoria. A medida
que pasa el tiempo, la memoria se fragmenta cada vez ms y la utilizacin de la
memoria se decrementa. Este fenmeno se conoce como fragmentacin externa

B.1) Algoritmo de Ubicacin


Debido a que la compactacin de memoria consume una gran cantidad de tiempo,
el diseador del sistema operativo debe ser inteligente a la hora de decidir cmo
asignar la memoria a los procesos (cmo eliminar los huecos). A la hora de cargar
o intercambiar un proceso a la memoria principal, y siempre que haya ms de un
bloque de memoria libre de suficiente tamao, el sistema operativo debe decidir
qu bloque libre asignar.
Tres algoritmos de colocacin que pueden considerarse son mejor-ajuste (best-fit),
primer-ajuste (first-fit) y siguiente-ajuste (next-fit). Todos, por supuesto, estn
limitados a escoger entre los bloques libres de la memoria principal que son
iguales o ms grandes que el proceso que va a llevarse a la memoria. Mejorajuste escoge el bloque ms cercano en tamao a la peticin. Primer-ajuste
comienza a analizar la memoria desde el principio y escoge el primer bloque
disponible que sea suficientemente grande. Siguiente-ajuste comienza a analizar
la memoria desde la ltima colocacin y elige el siguiente bloque disponible que
sea suficientemente grande.

B.2) Algoritmo de reemplazamiento


En un sistema Multiprogramado que utiliza particionamiento dinmico, puede
haber un momento en el que todos los procesos de la memoria principal estn en
estado bloqueado y no haya suficiente memoria para un proceso adicional, incluso
despus de llevar a cabo una compactacin. Para evitar malgastar tiempo de
procesador esperando a que un proceso se desbloquee, el sistema operativo
intercambiar alguno de los procesos entre la memoria principal y disco para
hacer sitio a un nuevo proceso o para un proceso que se encuentre en estado
Listo-Suspendido. Por tanto, el sistema operativo debe escoger qu proceso
reemplazar.
Debido a que el tema de los algoritmos de reemplazo se contemplar en detalle
respecto a varios esquemas de la memoria virtual, se pospone esta discusin
hasta entonces.
C) Sistema Buddy
Ambos esquemas de particionamiento, fijo y dinmico, tienen desventajas. Un
esquema de particionamiento fijo limita el nmero de procesos activos y puede
utilizar el espacio ineficientemente si existe un mal ajuste entre los tamaos de
particin disponibles y los tamaos de los procesos. Un esquema de
particionamiento dinmico es ms complejo de mantener e incluye la sobrecarga
de la compactacin.
Un compromiso interesante es el sistema Buddy ([KNUT97], [PETE77]).
En un sistema Buddy, los bloques de memoria disponibles son de tamao 2k,
L=<K<=U, donde:
2L= bloque de tamao ms pequeo asignado
2U= bloque de tamao mayor asignado; normalmente 2U es el tamao de la
memoria completa disponible
El sistema Buddy es un compromiso razonable para eliminar las desventajas de
ambos esquemas de particionamiento, fijo y variable, pero en los sistemas
operativos contemporneos, la memoria virtual basada en paginacin y
segmentacin es superior.
Sin embargo, el sistema Buddy se ha utilizado en sistemas paralelos como una
forma eficiente de asignar y liberar programas paralelos (por ejemplo, vase
[JOHN92]). Una forma modificada del sistema Buddy se utiliza en la asignacin de
memoria del ncleo UNIX (descrito en el Captulo 8).

D) Reubicacin
La Figura 7.8 muestra la forma en la que se realiza normalmente esta traduccin
de direcciones.
Cuando un proceso se asigna al estado Ejecutando, un registro especial del
procesador, algunas veces llamado registro base, carga la direccin inicial del
programa en la memoria principal. Existe tambin un registro valla, que indica el
final de la ubicacin del programa; estos valores se establecen cuando el
programa se carga en la memoria o cuando la imagen del proceso se lleva a la
memoria. A largo de la ejecucin del proceso, se encuentran direcciones relativas.
stas incluyen los contenidos del registro de las instrucciones, las direcciones de
instrucciones que ocurren en los saltos e instrucciones call, y direcciones de datos
existentes en instrucciones de carga y almacenamiento. El procesador manipula
cada direccin relativa, a travs de dos pasos. Primero, el valor del registro base
se suma a la direccin relativa para producir una direccin absoluta. Segundo, la
direccin resultante se compara con el valor del registro valla. Si la direccin se
encuentra dentro de los lmites, entonces se puede llevar a cabo la ejecucin de la
instruccin. En otro caso, se genera una interrupcin, que debe manejar el sistema
operativo de algn modo.
El esquema de la Figura 7.8 permite que se traigan a memoria los programas y
que se lleven a disco, a lo largo de la ejecucin. Tambin proporciona una medida
de proteccin: cada imagen del proceso est aislada mediante los contenidos de
los registros base y valla. Adems, evita accesos no autorizados por parte de otros
procesos.

E) Paginacin
Tanto las particiones de tamao fijo como variable son ineficientes en el uso de la
memoria; los primeros provocan fragmentacin interna, los ltimos fragmentacin
externa. Supngase, sin embargo, que la memoria principal se divide en porciones
de tamao fijo relativamente pequeos, y que cada proceso tambin se divide en
porciones pequeas del mismo tamao fijo. A dichas porciones del proceso,
conocidas como pginas, se les asigna porciones disponibles de memoria,
conocidas como marcos, o marcos de pginas. Esta seccin muestra que el
espacio de memoria malgastado por cada proceso debido a la fragmentacin
interna corresponde slo a una fraccin de la ltima pgina de un proceso. No
existe fragmentacin externa.
La Figura 7.9 ilustra el uso de pginas y marcos. En un momento dado, algunos
de los marcos de la memoria estn en uso y algunos estn libres. El sistema
operativo mantiene una lista de marcos libres. El proceso A, almacenado en disco,
est formado por cuatro pginas. En el momento de cargar este proceso, el
sistema operativo encuentra cuatro marcos libres y carga las cuatro pginas del
proceso A en dichos marcos (Figura 7.9b). El proceso B, formado por tres pginas,
y el proceso C, formado por cuatro pginas, se cargan a continuacin. En ese
momento, el proceso B se suspende y deja la memoria principal. Posteriormente,
todos los procesos de la memoria principal se bloquean, y el sistema operativo
necesita traer un nuevo proceso, el proceso D, que est formado por cinco
pginas.
Ahora supngase, como en este ejemplo, que no hay suficientes marcos contiguos
sin utilizar para ubicar un proceso. Esto evitara que el sistema operativo cargara
el proceso D? La respuesta es no, porque una vez ms se puede utilizar el
concepto de direccin lgica. Un registro base sencillo de direcciones no basta en
esta ocasin. En su lugar, el sistema operativo mantiene una tabla de pginas por
cada proceso. La tabla de pginas muestra la ubicacin del marco por cada
pgina del proceso. Dentro del programa, cada direccin lgica est formada por
un nmero de pgina y un desplazamiento dentro de la pgina. Es importante
recordar que en el caso de una particin simple, una direccin lgica es la
ubicacin de una palabra relativa al comienzo del programa; el procesador la
traduce en una direccin fsica

F) Segmentacin
Un programa de usuario se puede subdividir utilizando segmentacin, en la cual el
programa y sus datos asociados se dividen en un nmero de segmentos. No se
requiere que todos los programas sean de la misma longitud, aunque hay una
longitud mxima de segmento. Como en el caso de la paginacin, una direccin

lgica utilizando segmentacin est compuesta por dos partes, en este caso un
nmero de segmento y un desplazamiento.
Debido al uso de segmentos de distinto tamao, la segmentacin es similar al
particionamiento dinmico. En la ausencia de un esquema de overlays o el uso de
la memoria virtual, se necesitara que todos los segmentos de un programa se
cargaran en la memoria para su ejecucin. La diferencia, comparada con el
particionamiento dinmico, es que con la segmentacin un programa podra
ocupar ms de una particin, y estas particiones no necesitan ser contiguas. La
segmentacin elimina la fragmentacin interna pero, al igual que el
particionamiento dinmico, sufre de fragmentacin externa.
Sin embargo, debido a que el proceso se divide en varias piezas ms pequeas, la
fragmentacin externa debera ser menor.

DESFRAGMENTACION

La desfragmentacin es el proceso conveniente mediante el cual se acomodan


los archivos en un disco para que no se aprecien fragmentos de cada uno de ellos, de tal
manera que quede contiguo el archivo y sin espacios dentro del mismo. Al irse escribiendo y
borrando archivos continuamente en el disco duro, los fragmentos tienden a no quedar en
reas contiguas, as, un archivo puede quedar "partido" en muchos pedazos a lo largo del
disco, se dice entonces que el archivo est "fragmentado". Al tener fragmentos de incluso un
archivo esparcidos por el disco, se vuelve ineficiente el acceso a los archivos. Los fragmentos
de uno o varios archivos es lo que hace factible la desfragmentacin.
El problema de almacenamiento no contiguo de los archivos se denomina fragmentacin, es
conveniente desfragmentar el almacenamiento de los archivos en dispositivos de
almacenamiento electromecnicos por el uso del computador. (Los SSD no son mecnicos).
Existen varias estrategias de desfragmentacin. Cada sistema operativo puede utilizar una o
varias de estas estrategias. Es importante el tipo elegido puesto que cada Sistema Operativo
tiene el suyo caracterstico por defecto. La estrategia de desfragmentacin ha sido estudiada
por los programadores del Sistema Operativo para optimizar la navegacin por los archivos al
mximo para ese Sistema, es por ello que cada Sistema Operativo tiene una o varias
estrategias de Desfragmentacin que le son ms favorables, la eleccin no es de poca
importancia.
La fragmentacin es un problema que surge debido al ordenamiento interno de los archivos de
un sistema de archivos. Se da muy comnmente en el sistema operativo Windows aunque
tambin afecta a otras plataformas pero en una escala mucho menor. Existen dos tipos de
fragmentacin: interna y externa.
En algunos sistemas como Linux la desfragmentacin es menos frecuente que en otros
sistemas por que la distribucin de los archivos en un disco, caracterstico de los mismos, lo
hace posible. Desfragmentar no hace que el ordenador compute ms rpido, sino que agiliza
el proceso de la navegacin por los archivos.

Fragmentacin[editar]

La fragmentacin es la memoria que queda desperdiciada al usar los mtodos de gestin de


memoria. Tanto el primer ajuste, como el mejor y el peor producen fragmentacin externa
(Conocidos como estrategias de Colocacin).
La fragmentacin es generada cuando durante el reemplazo de procesos quedan huecos
entre dos o ms procesos de manera no contigua y cada hueco no es capaz de soportar
ningn proceso de la lista de espera. Tal vez en conjunto si sea espacio suficiente, pero se
requerira de un proceso de desfragmentacin de memoria o compactacin para lograrlo. Esta
fragmentacin se denomina fragmentacin externa.
Existe otro tipo de fragmentacin conocida como fragmentacin interna, la cual es generada
cuando se reserva ms memoria de la que el proceso va realmente a usar. Sin embargo a
diferencia de la externa, estos huecos no se pueden compactar para ser utilizados. Se debe
de esperar a la finalizacin del proceso para que se libere el bloque completo de la memoria.

Fragmentacin interna[editar]
La fragmentacin interna es la prdida de espacio en disco debido al hecho de que el tamao
de un determinado archivo sea inferior al tamao del clster, ya que tericamente el archivo
estara obligado a ser referenciado como un clster completo. Los clsteres son contiguos de
forma que desde el ltimo bit del archivo situado en el clster "a" hasta el primer bit del archivo
situado en el clster contiguo (es decir "b") queda un espacio sobrante siempre teniendo la
condicin de que el archivo del clster "a" fuera ms pequeo que el clster en s.
Por eso se sugiere no disponer de un gran tamao de particin en los discos nuevos donde la
capacidad es muy importante. Por ejemplo si nuestro clster es de 18KB (18.432 bytes) por
ms que un archivo ocupe menos, en nuestro disco ocupara 18KB. Esto sugiere una prdida
de ese espacio que dice utilizar pero no utiliza.
Por eso, en nuestro ejemplo, un archivo de 3KB ocupara en nuestro disco lo mismo que uno
de 10KB, o sea 18 KB. Esa prdida de espacio se denomina fragmentacin interna, y no se
corrige con el desfragmentador, sino disminuyendo el tamao del clster, algo que
habitualmente los usuarios solo pueden conseguir creando particiones ms pequeas.

Fragmentacin externa[editar]
Este tipo de fragmentacin aparece como consecuencia de las distintas polticas de ajuste de
bloques que tiene un sistema de ficheros, o al utilizar asignaciones dinmicas de bloques en el
caso de la memoria. En el sistema de ficheros, la sucesiva creacin y eliminacin de ficheros
de distintos tamaos puede conducir al aislamiento de los bloques libres de un disco y,
dependiendo de la poltica de ajuste, su no eleccin para futuros ficheros.
En la memoria del sistema la fragmentacin se produce cuando los procesos asignados han
ocupado posiciones no contiguas de memoria dejando demasiados bloques libres de pequeo
tamao, en los que no "caben" nuevos procesos.
En sistemas de ficheros la desfragmentacin trata de resolver este problema, alineando los
bloques de datos contiguos y juntando los bloques libres, produciendo as fragmentos
mayores que s sern elegidos para futuros ficheros. En la memoria principal se soluciona
compactando los procesos para que estos ocupen posiciones contiguas y dejar los bloques
libres juntos, o tambin se soluciona con la paginacin de memoria.

Desfragmentacin[editar]
Este proceso consiste en ordenar los trozos de informacin distribuida a travs de todo el
disco, para mejorar la velocidad de acceso y distribuir de mejor forma el espacio libre del
dispositivo. Como este proceso consiste en la reorganizacin de partes de archivos, requiere
de suficiente memoria para realizar los movimientos de los trozos de informacin. Al mover en
forma fsica la informacin, la estructura lgica no sufre alteraciones.

Aspectos de la desfragmentacin[editar]
En Windows la presencia de archivos inamovibles del sistema, o que el desfragmentador no
mover para simplificar su tarea (sobre todo con el archivo de intercambio, o swap file), puede
impedir un buen porcentaje de desfragmentacin en el disco.
Ciertos sistemas de archivos son ms susceptibles a cambios por desfragmentacin que
otros. Por ejemplo, una particin del tipo FAT se fragmenta ms rpido que una de particin
del tipo NTFS (Windows), EXT 4 (Linux) o HFS + (MacOSX).[cita requerida]

Contramedidas comunes[editar]
Particionado
Una estrategia comn para optimizar la desfragmentacin y reducir el impacto de la
fragmentacin es particionar el/los disco(s) duro(s) para separar las particiones del sistema de
archivos que experimentan muchas ms lecturas y escrituras, de las zonas ms voltiles,
donde se crean y borran frecuentemente los archivos. En Windows de Microsoft, el contenido
de directorios tales como "\Archivos de programas" o "\Windows" se modifica con mucha
menor frecuencia que la de sus lecturas. Los directorios que contienen los perfiles de los
usuarios se modifican constantemente (especialmente el directorio Temp y
el cache del Explorador de Internet, que crea miles de archivos que se borran en unos cuantos
das). Si los archivos de los perfiles de los usuarios se mantienen en una particin dedicada
(como se hace comnmente en los sistemas UNIX), el desfragmentador funciona mejor, pues
no tiene que tratar con todos los archivos estticos de los otros directorios. En las particiones
con relativamente poca actividad, el rendimiento de la desfragmentacin mejora grandemente
despus de la primera de ellas, pues en el futuro el desfragmentador slo tendr que
desfragmentar un pequeo nmero de nuevos archivos.

Problemas[editar]
Archivos inamovibles[editar]
La presencia de archivos de sistema inamovibles, especialmente un archivo de intercambio,
puede dificultar la desfragmentacin. Estos archivos se pueden mover con seguridad cuando
el sistema operativo no est funcionando. Por ejemplo, ntfsresize mueve estos archivos para
cambiar el tamao de una particin NTFS.

Crecimiento de la fragmentacin[editar]
En sistemas sin resistencia a la fragmentacin, sta crece por s misma si no se hace nada,
as que es necesaria la desfragmentacin peridica para mantener el rendimiento del disco al
mximo y evitar la sobrecarga de desfragmentaciones menos frecuentes.

Problemas de rendimiento y del usuario[editar]


Aproximacin y desfragmentadores segn el tipo de
sistema[editar]
Los programas de desfragmentacin, por lo general, vienen incorporados al sistema
operativo (excepto en Windows NT 4). Tambin existen aplicaciones externas, las cuales
poseen opciones ms avanzadas que las propuestas por los fabricantes del sistema operativo.

El desfragmentador ms conocido es el Defrag, que es usado en MS-DOS y en las


plataformas de Windows (en estas ltimas con el nombre de "Desfragmentador de disco").
Puede ser encontrado en las versiones de Windows en Inicio -> Programas -> Accesorios ->
Herramientas de Sistema.

También podría gustarte