0% encontró este documento útil (0 votos)
122 vistas54 páginas

Administración de Memoria en Sistemas Operativos

Este documento resume varios conceptos clave de la administración de memoria y almacenamiento en sistemas operativos. Explica políticas de despacho de procesos como FIFO, Round Robin y SJF. También describe estrategias de administración de memoria como búsqueda por demanda, colocación y reposición. Además, cubre temas como memoria principal, jerarquía de memoria, asignación contigua vs no contigua, y multiprogramación con partición fija o variable.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
122 vistas54 páginas

Administración de Memoria en Sistemas Operativos

Este documento resume varios conceptos clave de la administración de memoria y almacenamiento en sistemas operativos. Explica políticas de despacho de procesos como FIFO, Round Robin y SJF. También describe estrategias de administración de memoria como búsqueda por demanda, colocación y reposición. Además, cubre temas como memoria principal, jerarquía de memoria, asignación contigua vs no contigua, y multiprogramación con partición fija o variable.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

Trabajo: “Resumen de la Tercera y Quinta Unidad”

Integrantes:

Valencia Rosas Edgar Elvis

Rivera García Deybet

Fragoso López Ulises Fernando

Rodríguez Martiarena Omar Barush

Valencia Carmona Aldo Nicolás

Materia: “Sistemas Operativos”


ADMINISTRACION DE MEMORIA

3.1 POLITICA Y FILOSOFIA

Filosofía

La memoria principal puede ser considerada como un arreglo lineal de localidades de


almacenamiento de un byte de tamaño. Cada localidad de almacenamiento tiene asignada una
dirección que la identifica.

Una de las funciones básicas que debe implementar un SO es la Administración de la Memoria


para tener un control sobre los lugares donde están almacenados los datos y procesos que
actualmente se están utilizando.

Sea cual sea el esquema de organización del almacenamiento que se adopte para un sistema
especifico es necesario decidir que estrategias se deben utilizar para obtener un rendimiento
optimo.

Política

FIFO: Los procesos se despachan de acuerdo a su tiempo de llega a la cola de procesos listos, si
un proceso llega al procesador sale hasta que termine. La política FIFO actualmente no se usa
como el esquema principal de un sistema, pero si por ejemplo cuando se usa una política de
prioridades y hay procesos con la misma prioridad, a estos se les podría aplicar FIFO.

Round Robin: Los procesos se despachan en la forma que lo hace el FIFO, pero se les asigna una
cantidad limitada de tiempo (CUANTUM) en el procesador, si no termina en ese lapso se manda al
final de la lista de procesos listos.
SJF (Shortest job first - Prioridad del trabajo más corto): Se ejecuta primero el proceso en espera
que tiene el menor tiempo estimado. SJF favorece a los procesos cortos, ya que los largos podrían
llegar a rezagarse mucho tiempo e incluso nunca ejecutarse.

SRT (Sortest remaining time scheduling? Tiempo restante más corto. En SJF una vez que un
proceso comienza su ejecución continúa hasta terminar. En SRT, un proceso en ejecución puede
ser desposeído por uno nuevo de menor tiempo de ejecución.

HRN: (highest response ratio next? Prioridad de la tasa de respuesta más alta): Política no
apropiativa que corrige el retraso excesivo de procesos grandes que produce el SJF, para así no
caer en un favoritismo excesivo por los procesos cortos, lo logra usando una formula basada en el
tiempo de espera y el tiempo de servicio, con lo cual la prioridad de cada trabajo no solo está en
función del tiempo de servicio sino también del tiempo que ha esperado para ser atendido.

3.2 MEMORIA REAL

La memoria real o principal es en donde son ejecutados los programas y procesos de una
computadora y es el espacio real que existe en memoria para que se ejecuten los procesos. 
Por lo general esta memoria es de mayor costo que la memoria secundaria, pero el acceso a la
información contenida en ella es de más rápido acceso. 
       

 Solo la memoria cache es más rápida que la principal, pero su costo es a su vez mayor.
Cuando no existe memoria virtual no hay diferenciación entre el espacio de direcciones y la
memoria real; el espacio de direcciones que puede ser usado en los programas tiene idéntico
tamaño al espacio de memoria real posible. Si se utiliza memoria virtual, el espacio de direcciones
disponibles para los programas es aquel determinado por el tamaño de la memoria virtual
implementada y no el espacio de direcciones provisto por la memoria real disponible (el espacio de
la memoria virtual sera mayor que el de la memoria real).

La organización y administración de la “memoria principal”, “memoria primaria” o “memoria


real” de un sistema ha sido y es uno de los factores más importantes en el diseño de los S. O. 
        Los términos “memoria” y “almacenamiento” se consideran equivalentes. 
        Los programas y datos deben estar en el almacenamiento principal para:

 Poderlos ejecutar.
 Referenciarlos directamente

ADMINISTRACION DE ALMACENAMIENTO

¿Cómo se maneja la administración de almacenamiento?


      
 Para que un sistema informático sea cómodo para los usuarios, el sistema operativo proporciona
una lista lógica y uniforme del sistema de almacenamiento de la información... El sistema operativo
abstrae las propiedades físicas de los dispositivos de almacenamiento y define una unidad de
almacenamiento lógico, el archivo.
El sistema operativo asigna los archivos a los soportes físicos y accede a dichos archivos a través
de los dispositivos de almacenamiento

Almacenamiento del sistema de archivos

La gestión de archivos es uno de los componentes más visibles de un sistema operativo. Los
computadores pueden almacenar la información en diferentes tipos de medios fisicos.Los discos
magnéticos, discos ópticos y cintas magnéticas son habituales. .

        Cada uno de estos medios tiene sus propias características y organización fisica.Cada medio
se controla mediante un dispositivo, tal como una unidad de disco o una cinta, que también tiene
sus propias características distintivas
       Estas propiedades incluyen la velocidad de acceso, la capacidad, la velocidad de transferencia
de datos y el método de acceso (secuencial o aleatorio).

        Un archivo es una colección de información relacionada definida por su creador.


Comúnmente, los archivos representan programas (tanto en formato fuente como en objeto) y
datos. Los archivos de datos pueden ser numéricos, alfabéticos, alfanuméricos o binarios. Los
archivos pueden tener un formato libre (como, por ejemplo, los archivos de texto) o un formato
rígido, como por ejemplo una serie de campos fijos.

JERARQUIA

Los programas y datos tienen que estar en la memoria principal para poder ejecutarse o ser
referenciados.
Los programas y datos que no son necesarios de inmediato pueden mantenerse en el
almacenamiento secundario.
El almacenamiento principal es más costoso y menor que el secundario pero de acceso más
rápido. 
Los sistemas con varios niveles de almacenamiento requieren destinar recursos para administrar el
movimiento de programas y datos entre niveles. 

Un nivel adicional es el “cache” o memoria de alta velocidad, que posee las siguientes


características:

 Es más rápida y costosa que la memoria principal.


 Impone al sistema un nivel mas de traspaso:
o Los programas son traspasados de la memoria principal al cache antes de su
ejecución.
 Los programas en la memoria cache ejecutan mucho más rápido que en la memoria
principal.
 Al utilizar memoria cache se espera que:
o La sobrecarga que supone el traspaso de programas de un nivel de memoria a
otro sea mucho menor que la mejora en el rendimiento obtenida por la posibilidad
de una ejecución mucho más rápida en la cache.

ESTRATEGIAS DE ADMINISTRACION DE MEMORIA

Están dirigidas a la obtención del mejor uso posible del recurso del almacenamiento principal.
Se dividen en las siguientes categorías:

 Estrategias de búsqueda:
o Estrategias de búsqueda por demanda.
o Estrategias de búsqueda anticipada.
 Estrategias de colocación.
 Estrategias de reposición.

Las “estrategias de búsqueda” están relacionadas con el hecho de cuando obtener el siguiente


fragmento de programa o de datos para su inserción en la memoria principal.
En la “búsqueda por demanda” el siguiente fragmento de programa o de datos se carga al
almacenamiento principal cuando algún programa en ejecución lo referencia.
Se considera que la “búsqueda anticipada” puede producir un mejor rendimiento del sistema.
Las “estrategias de colocación” están relacionadas con la determinación del lugar de la memoria
donde se colocara (cargara) un programa nuevo.
Las “estrategias de reposición” están relacionadas con la determinación de que fragmento de
programa o de datos desplazar para dar lugar a los programas nuevos.

ASIGNACION CONTINUA VS NO CONTINUA

¿Qué es la administración contigua y no contigua?

En la “asignación contigua”  cada programa ocupa un bloque contiguo y sencillo de localizaciones


de almacenamiento. 

Asignación contigua de almacenamiento de un solo usuario


Se consideran S. O. que ya poseen desarrollado el

“sistema de control de entrada / salida”: IOCS: input / output control system:


El tamaño de los programas está limitado por la cantidad de memoria principal, pero se puede
superar este límite con técnicas de “recubrimientos”, con las siguientes características.

 Si una sección particular del programa ya no es necesaria, se carga otra sección desde el
almacenamiento secundario ocupando las áreas de memoria liberadas por la sección que
ya no se necesita.
 La administración manual por programa del recubrimiento es complicada y dificulta el
desarrollo y el mantenimiento.
      En la “asignación no contigua”  un programa se divide en varios bloques
o “segmentos” que pueden almacenarse en direcciones que no tienen que ser
necesariamente adyacentes, por lo que es más compleja pero más eficiente que la
asignación continua.  

MULTIPROGRAMACION DE PARTICION FIJA, PARTICION VARIABLE DE


INTERCAMBIO DE ALMACENAMIENTO

Multiprogramación de Partición Fija.


Los sistemas de un solo usuario desperdician gran cantidad de recursos computacionales debido a
que:
 Cuando ocurre una petición de e / s la CPU normalmente no puede continuar el proceso
hasta que concluya la operación de e / s requerida.
 Los periféricos de e / s frenan la ejecución de los procesos ya que comparativamente la
CPU es varios ordenes de magnitud más rápida que los dispositivos de e / s.

        Los sistemas de “multiprogramación”  permiten que varios procesos usuarios compitan al
mismo tiempo por los recursos del sistema:

 Un trabajo en espera de e / s cederá la CPU a otro trabajo que esté listo para efectuar
cómputos.
 Existe paralelismo entre el procesamiento y la e / s.
 Se incrementa la utilización de la CPU y la capacidad global de ejecución del sistema.
 Es necesario que varios trabajos residan a la vez en la memoria principal.

Multiprogramación de Partición Fija: Traducción y Carga Absolutas. 


Las “particiones” del almacenamiento principal:

 Son de tamaño fijo.


 Alojan un proceso cada una.
 La CPU se cambia rápidamente entre los procesos creando la ilusión de simultaneidad.

Los trabajos se traducían con ensambladores y compiladores absolutos para ser ejecutados solo
dentro de una partición especifica.
El S. O. resulta de implementación relativamente sencilla pero no se optimiza la utilización de la
memoria.
Multiprogramación de Partición Fija: Traducción y Carga Relocalizables. 
       Los compiladores, ensambladores y cargadores de relocalización:

 Se usan para producir programas relocalizables que puedan ser ejecutados en cualquier
partición disponible de tamaño suficiente para aceptarlos.
 Son más complejos que los absolutos.
 Mejoran la utilización del almacenamiento.
 Confieren más flexibilidad en el armado de la carga de procesos.

Protección en los Sistemas de Multiprogramación


Si se utiliza asignación contigua de memoria la protección suele implementarse con
varios “registros de límites”.
Los extremos superior e inferior de una partición pueden ser:

 Delineados con dos registros.


 Indicados el límite inferior o superior y el tamaño de la partición o región.

Fragmentación en la Multiprogramación de Partición Fija. 


La “fragmentación de almacenamiento”  ocurre en todos los sistemas independientemente de su
organización de memoria. 
En los S. O. de multiprogramación de partición fija la fragmentación se produce cuando:

 Los trabajos del usuario no llenan completamente sus particiones designadas.


 Una partición permanece sin usar porque es demasiado pequeña para alojar un trabajo
que está en espera.
Multiprogramación de Partición Variable. 
Los procesos ocupan tanto espacio como necesitan, pero obviamente no deben superar el espacio
disponible de memoria.

No hay límites fijos de memoria, es decir que la partición de un trabajo es su propio tamaño. 
Se consideran “esquemas de asignación contigua”, dado que un programa debe ocupar posiciones
adyacentes de almacenamiento. 
Los procesos que terminan dejan disponibles espacios de memoria principal llamados “agujeros”:

 Pueden ser usados por otros trabajos que cuando finalizan dejan
otros “agujeros”  menores.
 En sucesivos pasos los “agujeros” son cada vez más numerosos pero más pequeños, por
lo que se genera un desperdicio de memoria principal.

Combinación de agujeros (áreas libres). 


Consiste en fusionar agujeros adyacentes para formar un sencillo más grande. 
Se puede hacer cuando un trabajo termina y el almacenamiento que libera tiene límites con otros
agujeros.
Multiprogramación con Intercambio de Almacenamiento 
En el esquema de “intercambio”  los programas del usuario no requieren permanecer en la memoria
principal hasta su terminación. 
; Una variante consiste en que un trabajo se ejecuta hasta que ya no puede continuar:
 Cede el almacenamiento y la CPU al siguiente trabajo.
 La totalidad del almacenamiento se dedica a un trabajo durante un breve periodo de
tiempo.
 Los trabajos son “intercambiados”, dándose que un trabajo puede ser intercambiado varias
veces antes de llegar a su terminación.

Es un esquema razonable y eficiente para un número relativamente reducido de procesos de


usuarios. 
Los sistemas de intercambio fueron los predecesores de los sistemas de paginación. 
El rendimiento de los sistemas de intercambio mejora al reducir el tiempo de intercambio:

 Manteniendo al mismo tiempo varias “imágenes de usuario o imágenes de memoria” en la


memoria principal.
 Retirando una imagen de usuario de la memoria principal solo cuando es necesario su
almacenamiento para una nueva imagen.
 Incrementando la cantidad de memoria principal disponible en el sistema.

Las imágenes de usuario (imágenes de memoria) retiradas del almacenamiento principal se graban
en el almacenamiento secundario (discos).

3.3 ORGANIZACION DE MEMORIA VIRTUAL

La memoria virtual es una técnica para proporcionar la simulación de un espacio de memoria


mucho mayor que la memoria física de una máquina. Esta ilusión permite que los programas se
hagan sin tener en cuenta el tamaño exacto de la memoria física. 

La memoria virtual ha llegado a ser un componente esencial de la mayoría de los S.O actuales. Y
como en un instante dado, en la memoria solo se tienen unos pocos fragmentos de un proceso
dado, se pueden mantener más procesos en la memoria.
 La memoria virtual también simplifica la carga del programa para su ejecución llamado
reubicación, este procedimiento permite que el mismo programa se ejecute en cualquier posición
de la memoria física. 

    

ALMACENAMIENTO DE MEMORIA VIRTUAL


La clave del concepto de memoria (almacenamiento) virtual está en la disociación:

 De las direcciones a las que hace referencia un programa.


 De las direcciones disponibles en la memoria real (almacenamiento primario).

Mientras el proceso se ejecuta con sus páginas actuales, el sistema carga las demás páginas que
estarán disponibles cuando las requiera el proceso.
El S. O. intenta predecir las páginas que un proceso va a necesitar y a continuación precarga estas
páginas cuando hay espacio disponible Mientras el proceso ejecuta sus páginas actuales, el
sistema carga páginas nuevas que estarán disponibles cuando el proceso las pida, debido a ello, el
tiempo de ejecución de un proceso se puede reducir.

3.4 Estrategias de Administración

Estrategias de Obtención

Determinan cuando se debe de transferir una página o un segmento de almacenamiento


secundario al primario. Las estrategias de obtención por demanda esperan a que un proceso en
ejecución haga referencia a una página o un segmento antes de traer la página o el segmento de
almacenamiento primario. Los esquemas de obtención anticipada intentan determinar por
adelantado a cuales paginas o segmentos hará referencia un proceso.

Estrategias de Colocación

 Determinan en qué lugar del almacenamiento primario se debe colocar una página o un segmento
entrante. Una página entrante se puede colocar en cualquier marco de página disponible.

Estrategias de Reemplazo

Sirven para decidir cuál página o segmento se debe desplazar para dar espacio a una página o
segmento entrante cuando está completamente ocupado el almacenamiento primario.

Técnicas de reemplazo de página

Las rutinas de administración de almacenamiento del Sistema operativo deben decidir que pagina
del almacenamiento primario se debe desplazar para dejar espacio a una página entrante. 

Principio de Optimalizad
Para obtener un rendimiento optimo, la pagina que se debe reemplazar es aquella que tardara más
tiempo en ser utilizada. Esta estrategia óptima de reemplazo se denomina OPT o MIN.
Reemplazo de Páginas aleatorio
Es una técnica sencilla. Todas las páginas que se encuentran en el almacenamiento principal
tienen la misma probabilidad de ser elegidas para el reemplazo. Esta estrategia podría seleccionar
cualquier página para ser reemplazada, incluyendo la siguiente página la que se hará referencia.
Las decisiones de reemplazo aleatorio se dé páginas se pueden tomar rápidamente y con un
número significativo de marcos de pagina. Es un esquema que casi no se utiliza por su enfoque
aleatorio de acertar o errar.

Reemplazo de páginas de primeras entradas-primeras salidas (PEPS)


Cada página se registra en el instante que entro en el almacenamiento primario. Cuando se
necesita reemplazar una página, se escoge la que ha permanecido en el almacenamiento durante
el mayor tiempo.

Anomalías PEPS
Belady, Nelson y Shelder descubrieron que al utilizar el reemplazo de paginas PEPS, ciertos
patrones de referencia a pagina originan mas fallas de paginas cuando aumenta el número de
marcos de pagina asignados a un proceso. Este fenómeno se denomina Anomalía PEPS o
anomalía Belady. La columna de la izquierda indica el patrón de referencias a páginas de un
proceso. La primera tabla muestra como dicho patrón a referencia de páginas hace que las paginas
se carguen a memoria y se reemplacen en secuencia PEPS cuando se asignan tres marcos de
páginas a proceso.
La segunda tabla muestra cómo se comporta este proceso en las mismas circunstancias, pero con
cuatro marcos de paginas asignados, a la izquierda de cada tabla se indica si la nueva referencia a
una página ocasiona o no una falla de pagina. Cuando el proceso se ejecuta en cuatro páginas,
experimenta una falla de página más que cuando se ejecuta con tres.

Reemplazo de páginas de la menos reciente utilizada


Se selecciona para su reemplazo, a aquella pagina que no se ha sido utilizada durante mayor
tiempo. La estrategia se basa en que la heurística de localidad según en el cual el pasado reciente
es un buen indicador del futuro cercano, de modo que LRU exige que se marque cada página con
el instante en que .se hace referencia a ella. Por el trabajo adicional que requiere no se usa a
menudo en los sistemas actuales; lo que se hace es utilizar estrategias que ese aproximen a la
LRU y que no ocasionen grandes costos.

Reemplazo de páginas de la menos frecuentemente utilizada (LFU)


La página por remplazar es aquella que ha sido utilizada menos frecuentemente o a la que se ha
hecho referencia con menos frecuencia.
Al parecer estos esquemas de reemplazo de páginas corren cierto riesgo de tomar decisiones
equivocadas. Esto sucede por el simple hecho de que no se puede predecir con precisión el futuro.

Modificaciones de PEPS; reemplazo de páginas por reloj y reemplazo de páginas con


segunda oportunidad
La estrategia PEPS puede decidir reemplazar una página muy utilizada que ha permanecido en
memoria durante mucho tiempo. Esta posibilidad se puede evitar reemplazando solo aquellas
páginas cuyos bits de referencia valgan O.
La variante de PEPS denominada "con segunde oportunidad" examina el bit de referencia de la
página más antigua; si este bit vale O, se selecciona de inmediato la pagina para ser reemplazada.
Si el bit de referencia vale 1, se le asigna el valor O y la pagina se pasa al final de la lista y se
considera en esencia como una página nueva; gradualmente dicha pagina se desplaza hacia el
principio de la lista, donde sera seleccionada para reemplazo solo si su bit de referencia sigue
valiendo O. En esencia, esto da a la página una segunda oportunidad de permanecer en el
almacenamiento principal si su bit de referencia cambia a 1 antes de que la página llegue al
principio de la lista. La variación 'z' del reloj" del algoritmo de la segunda oportunidad dispone las
paginas en una lista circular, en lugar de en una lista lineal.

Un apuntador a la lista se desplaza alrededor de la lista circular en la misma forma que gira la
manecilla de un reloj. Cuando el bit de referencia de una página toma el valor O, el apuntador se
mueve al siguiente elemento de la lista (simulando el movirl1iento de esta página al final de la lista
PEPS).

PAGINACION POR DEMANDA

Considere como podría cargarse un programa ejecutable desde el disco a la memoria. Una opción
consiste encargar el programa completo en memoria física en el momento de ejecutar el programa.
Sin embargo, esta técnica presenta el problema de que puede que no necesitemos inicialmente
todo el programa en la memoria.

Las páginas de un proceso deben cargarse por demanda. No se debe transferir ninguna página al
almacenamiento secundario al primado hasta que un proceso en ejecución haga explícitamente
referencia a ella. Hay varias razones por las cuales es atractiva esta estrategia. Los resultados de
la teoría de la compatibilidad, específica mente el problema de la detención (Mi67) (He77), indican
que no se puede predecir con precisión la trayectoria de ejecución que seguirá un programa. Así
pues, cualquier intento de cargar páginas con anticipación a su uso puede hacer que se carguen
las páginas equivocadas.

La paginación por demanda garantiza que las únicas páginas que se transfieren al almacenamiento
principal son aquellas que requieren los procesos. El trabajo extra requerido para decidir cuales
páginas se deben transferir al almacenamiento principal es mínimo. Las estrategias de obtención
anticipada de páginas G pueden requerir mucho tiempo de ejecución adicional

Paginación anticipada

¿Qué es la paginación anticipada?

 En la paginación anticipada, el sistema operativo intenta predecir las páginas que necesitara un
proceso y entonces carga dichas cuando hay espacio disponible.
Mientras el proceso se ejecuta con sus páginas actuales, el sistema carga las demás páginas que
estarán disponibles cuando las requiera el proceso.

El S. O. intenta predecir las páginas que un proceso va a necesitar y a continuación precarga estas
páginas cuando hay espacio disponible Mientras el proceso ejecuta sus páginas actuales, el
sistema carga páginas nuevas que estarán disponibles cuando el proceso las pida, debido a ello, el
tiempo de ejecución de un proceso se puede reducir.

Liberación de página

¿Qué es la paginación anticipada?

 En la paginación anticipada, el sistema operativo intenta predecir las páginas que necesitara un
proceso y entonces carga dichas cuando hay espacio disponible.

Mientras el proceso se ejecuta con sus páginas actuales, el sistema carga las demás páginas que
estarán disponibles cuando las requiera el proceso.

El S. O. intenta predecir las páginas que un proceso va a necesitar y a continuación precarga estas
páginas cuando hay espacio disponible Mientras el proceso ejecuta sus páginas actuales, el
sistema carga páginas nuevas que estarán disponibles cuando el proceso las pida, debido a ello, el
tiempo de ejecución de un proceso se puede reducir.

Tamaño de la página

Generalmente el almacenamiento real se divide en marcos o celdas de página de tamaño fijo.

Los interrogantes tienen que ver con el tamaño de las paginas, si todas las paginas tendrán igual
tamaño, si en caso de utilizar páginas de diferente tamaño las paginas mayores deben ser o no
múltiplos enteros de las menores, etc.

      Algunas consideraciones para determinar el tamaño de página son las siguientes:

 Cuanto más pequeño sea el tamaño de una página, más páginas y marcos de páginas
habrá y mayores serán las tablas de página.

El desperdicio de almacenamiento debido al tamaño excesivo de las tablas de página se


llama “fragmentación de tablas”.

Esto indica la necesidad de páginas más grandes.

 Con paginas grandes, grandes cantidades de información que nunca llegaría a ser
referenciada, se paginaran hacia el almacenamiento primario
Esto indica la necesidad de páginas más pequeñas.

SISTEMAS DE ARCHIVOS
5.1 Concepto de Sistema de archivos 

Concepto 1: 
Son los algoritmos y estructuras lógicas utilizadas para poder acceder a la información que
tenemos en el disco. Cada uno de los sistemas operativos crea estas estructuras y logaritmos de
diferente manera independientemente del hardware. 

El desempeño de nuestro disco duro, la confiabilidad, seguridad, capacidad de expansión y la


compatibilidad, estará en función de estas estructuras lógicas. 

Fat 12: 
Es el sistema de archivos de DOS, y es con el que formateamos los disquetes. Fue muy utilizado
en las primeras PCs. 

Fat 16: 
Este sistema de archivos tenía muchas limitaciones, por ejemplo si el disco duro era mayor de 2
GB, era imposible particionarlos y no usaba nombre largos en los archivos, solo 8 caracteres. 

Fat 32: 
Fue utilizado a partir de 1997, y pudo ser utilizado en Windows 98, pero a medida que el tamaño de
los discos duros se incrementaba, surgieron nuevas limitaciones. Se llamo Fat32, por que utiliza
números de 32 bits para representar a los clusters en lugar de los 16 en los sistemas anteriores. 

NTFS

Fig. 5.1.1 Archivos NTFS

Especialmente creado para usarlo en Windows NT, es más complejo que los FAT. El propósito era
satisfacer la demanda y necesidades de de seguridad y eficacia para servidores y otras
aplicaciones en red. No tiene limitaciones de tamaño clusters y en general en el disco. Una ventaja
de este sistema de archivos es que tiene un sistema anti fragmentación. 

Linux:
Fig. 5.1.2 Logo Linux 

Este sistema de archivos trabaja de manera totalmente distinta, las particiones del disco se colocan
en el directorio raíz. Podemos incluso tener diferentes particiones y cada una de ellas tener su
propio sistema de archivos.

Concepto 2: 
En computación, un sistema de archivos es un método para el almacenamiento y organización de
archivos de computadora y los datos que estos contienen, para hacer más fácil la tarea
encontrarlos y accederlos. Los sistemas de archivos son usados en dispositivos de
almacenamiento como discos duros y CD-ROM e involucran el mantenimiento de la localización
física de los archivos. 

Más formalmente, un sistema de archivos es un conjunto de tipo de datos abstractos que son
implementados para el almacenamiento, la organización jerárquica, la manipulación, el acceso, el
direccionamiento y la recuperación de datos. Los sistemas de archivos comparten mucho en
común con la tecnología de las bases de datos. 
Los sistemas de archivos pueden ser representados de forma textual (ej.: el Shell de DOS) o
gráficamente (ej.: Explorador de archivos en Windows) utilizando un gestor de archivos. 

El software del sistema de archivos se encarga de organizar los archivos (que suelen estar
segmentados físicamente en pequeños bloques de pocos bytes) y directorios, manteniendo un
registro de qué bloques pertenecen a qué archivos, qué bloques no se han utilizado y las
direcciones físicas de cada bloque. 
Los sistemas de archivos pueden ser clasificados en tres categorías: sistemas de archivo de disco,
sistemas de archivos de red y sistemas de archivos de propósito especial. 

Ejemplos de sistemas de archivos son: FAT, UMSDOS, NTFS, UDF, ext2, ext3, ext. 4, ReiserFS,
XFS, etc. 
Concepto 3: 
Fig. 5.1.3 Administración de archivos por el sistema operativo 
Los archivos son administrados por el sistema operativo como se muestra en la Fig. 5.1.3. Su
estructura, nombre, forma de acceso, uso, protección e implantación son temas fundamentales en
el diseño de un sistema operativo. Aquella parte del sistema operativo que trabaja con los archivos
se conoce, como un todo, como el sistema de archivos. 

Concepto 4: 
Debido a su importancia, es necesario que un sistema operativo tenga la capacidad de leer,
escribir, acceder y mantener la integridad de un sistema de archivos. Un sistema de archivos
provee al usuario con una abstracción que le permitirá crear con facilidad colecciones de datos
llamados archivos. Estas colecciones deberán tener los siguientes requisitos o propiedades:

 Existencia a largo tiempo: Los archivos deberán ser almacenados sobre una unidad de
almacenamiento y deberán permanecer allí aun cuando el usuario apague el ordenador.
 Deberán tener la capacidad de ser compartidos: Los archivos tendrán nombres que los
identifique y deberán poseer permisos de acceso los cuales permitirán el compartimiento
controlado entre procesos.
 Deberán poseer una estructura definida: Dependiendo del tipo de sistema de archivos, un
archivo deberá poseer una estructura definida y conveniente; permitiendo que los archivos
puedan ser organizados en orden jerárquico o en cualquier otro orden para reflejar su
relación con otros archivos.

El sistema de archivos como hemos dicho, posee una abstracción que permite realizar varias
operaciones sobre los archivos. Entre estas operaciones tenemos:

 Crear un archivo: El usuario o un proceso podrá crear un nuevo archivo el cual tomará una
posición dentro de la estructura del sistema de archivos.
 Borrar un archivo: Un archivo podrá ser borrado de la estructura.
 Abrir un archivo: Un proceso podrá abrir un archivo permitiendo el acceso a la información
contenida por dicho archivo. El proceso podrá ejecutar varias funciones sobre la
información del archivo como leer, escribir, reemplazar, etc.
 Cerrar un archivo: Un proceso puede cerrar el archivo dejando atrás los privilegios de
acceder a dicho archivo.
 Leer: Un proceso podrá leer parte de la información contenida en un archivo
 Escribir: Un proceso podrá añadir o reemplazar información en un archivo.

Los sistemas de archivos también mantienen una estructura de atributos asociada con cada uno de
los archivos la cual provee información sobre la situación actual de un archivo, quien es su dueño,
el tamaño del archivo, cuando fue creado, cuando fue modificado, privilegios de acceso, entre
otros.
Funciones del Sistema de Archivos. 

Fig. 5.1.4 Manipulación de archivos. 

Los usuarios deben poder crear, modificar y borrar archivos como se muestra en la Fig. 5.1.4. 
Se deben poder compartir los archivos de una manera cuidadosamente controlada. 
El mecanismo encargado de compartir los archivos debe proporcionar varios tipos de acceso
controlado:

 Ej.: “Acceso de Lectura”, “Acceso de Escritura”, “Acceso de Ejecución”, varias


combinaciones de estos, etc.

Se debe poder estructurar los archivos de la manera más apropiada a cada aplicación. 
Los usuarios deben poder ordenar la transferencia de información entre archivos. 
Se deben proporcionar posibilidades de “respaldo” y “recuperación” para prevenirse contra:

 La pérdida accidental de información.


 La destrucción maliciosa de información.
Se debe poder referenciar a los archivos mediante “Nombres Simbólicos”, brindando
“Independencia de Dispositivos”. 
En ambientes sensibles, el sistema de archivos debe proporcionar posibilidades de “Cifrado”  y
“Descifrado”. 
El sistema de archivos debe brindar una interface favorable al usuario:

 Debe suministrar una “visión lógica” de los datos y de las funciones que serán ejecutadas,
en vez de una “visión física”.
 El usuario no debe tener que preocuparse por:
o Los dispositivos particulares.
o Dónde serán almacenados los datos.
o El formato de los datos en los dispositivos.
o Los medios físicos de la transferencia de datos hacia y desde los dispositivos.

5.2 Noción de Archivos reales y virtuales 

Archivo Virtual y Archivo Real 

Un archivo virtual (Fig.5.2.1), es un archivo de uso temporal que es utilizado por los procesos del
sistema mientras se están ejecutando dichos procesos. Estos archivos se crean durante la
ejecución de un sistema y los utiliza para el almacenamiento de información, intercambio y
organización mientras se ejecuta el sistema (Fig. 5.2.2), su tamaño es muy variable y terminan al
detener la ejecución del sistema, muchos de ellos son borrados, por ejemplo, los
archivos *.tmp(Fig. 5.2.3) .
Se le conoce como archivo virtual, aquel que contiene los datos generados por el usuario.

Fig.5.2.1 Archivo virtual

Fig. 5.2.2 Ejecución del proceso


Fig. 5.2.3 Archivos temporales (*.tmp)

Archivo Real (Fig. 5.2.4): Es un objeto que contiene programas, datos o cualquier otro elemento. 
Un archivo se muestra de manera real, en la información del espacio que ocupa en un disco duro o
sistema de almacenamiento, en otras palabras su tamaño en bytes. 
 

             

             

            

5.3 Componentes de un sistema de archivos 

Lo conforman todas aquellas rutinas encargadas de administrar todos los aspectos relacionados
con el manejo de Archivos. 

En UNIX se define un File System como un sistema de software dedicado a la creación,


destrucción, organización y lectura, escritura y control de acceso de los archivos, funcionalmente
los componentes de un sistema de archivos son lenguajes de comandos, interpretador de
comandos, manejador del almacenamiento secundario, sistema de entrada y salida y mecanismos
de respaldo y recuperación.

En general, un Sistema de Archivos está compuesto por: Métodos De Acceso, Administración


De Archivos, Administración De Almacenamiento Secundario, Mecanismos De Integridad. 

Métodos De Acceso. Se ocupan de la manera en que se tendrá acceso a la información


almacenada en el archivo. Ejemplo: Secuencial, Directo, indexado, etc. 

Administración De Archivos. Se ocupa de ofrecer los mecanismos para almacenar, compartir y


asegurar archivos, así como para hacer referencia a ellos. 
Administración De Almacenamiento Secundario. Se ocupa de asignar espacio para los archivos
en los dispositivos de almacenamiento secundario. En la siguiente figura se muestra un ejemplo de
la administración de espacio en un disco duro.

Fig.5.3.1 Administración de almacenamiento en un disco duro.

Mecanismos De Integridad. Se ocupan de garantizar que no se corrompa la información de un


archivo, de tal manera que solo la información que deba estar en él, se encuentre ahí. 

Mecanismos de Organización Lógica. Contiene las diferentes rutinas y comandos a través de los


cuales el usuario podrá estructurar sus archivos virtuales. 

Directorio de Identificadores. Convierte los identificadores simbólicos de los archivos en


identificadores internos, los cuales apuntarán a su descriptor o a una estructura que permite
encontrar el archivo. 

Sistemas Teóricos de Archivos. Su objetivo es el de activar y desactivar a través de las rutinas


de abrir y cerrar archivos y verifica el modo de acceso. 

Mecanismos de Organización Física. Traslada las direcciones lógicas en direcciones físicas


correspondientes a las estructuras de memoria secundaria y los buffers en memoria principal
necesarios para la transferencia de datos. 

Mecanismos de E/S. Por cada petición de acceso al archivo real, este mecanismo genera la
secuencia de operaciones elementales de entrada y salida que se necesita. 

SCHEDULING E/S. En este nivel es donde se tiene el número de peticiones pendientes así como
de las que se están realizando y lleva el control y asignación de tiempo de CPU a las diferentes
peticiones de E/S. 

Fig. 5.3.2 Ejemplo de un scheduling.

5.4 Organización de Archivos 

 
Se refiere a las diferentes maneras en las que puede ser organizada la información de los archivos,
así como las diferentes maneras en que ésta puede ser accesada. Dado que hay 2 niveles de
visión de los archivos (físico y lógico), se puede hablar también de 2 aspectos de organización de
archivos: Organización de archivos lógicos y de archivos físicos.
Fig. 5.4.1 Organización de un sistema de archivos utilizando directorios.

El sistema de archivos está relacionado especialmente con la administración del espacio de


almacenamiento secundario, fundamentalmente con el almacenamiento de disco.

Una forma de organización de un sistema de archivos puede ser la siguiente:

 Se utiliza una “raíz”  para indicar en qué parte del disco comienza el “directorio raíz”.
 El “directorio raíz”  apunta a los “directorios de usuarios”.
 Un “directorio de usuario”  contiene una entrada para cada uno de los archivos del usuario.
 Cada entrada de archivo apunta al lugar del disco donde está almacenado el archivo
referenciado.

Esta forma de organización se muestra en la Fig. 5.4.1.

Los nombres de archivos solo necesitan ser únicos dentro de un directorio de usuario dado.

El nombre del sistema para un archivo dado debe ser único para el sistema de archivos.

En sistemas de archivo “jerárquicos”  el nombre del sistema para un archivo suele estar formado
como el “nombre de la trayectoria”  del directorio raíz al archivo.

Organización lógica.

La mayoría de las computadoras organizan los archivos en jerarquías llamadas carpetas,


directorios  o catálogos. (El concepto es el mismo independientemente de la terminología usada.)
Cada carpeta puede contener un número arbitrario de archivos, y también puede contener otras
carpetas. Las otras carpetas pueden contener todavía más archivos y carpetas, y así
sucesivamente, construyéndose un estructura en árbol en la que una «carpeta raíz» (el nombre
varía de una computadora a otra) puede contener cualquier número de niveles de otras carpetas y
archivos. A las carpetas se les puede dar nombre exactamente igual que a los archivos (excepto
para la carpeta raíz, que a menudo no tiene nombre). El uso de carpetas hace más fácil organizar
los archivos de una manera lógica.

La mayor parte de las estructuras de organizaciones alternativas de archivos se encuentran dentro


de estas cinco categorías:

Pilas
Fig. 5.4.2 Archivo de pilas: Registro de longitud variable. Conjunto variable de campos. Orden
cronológico.

Es la forma más fácil de organizar un archivo. Los datos se recogen en el orden en que llegan.

Su objetivo es simplemente acumular una masa de datos y guardarla.

Los registros pueden tener campos diferentes o similares en un orden distinto. Cada campo debe
ser auto descriptivo, incluyendo tanto un campo de nombre como el valor. La longitud de cada
campo debe indicarse implícitamente con delimitadores, explícitamente incluidos como un subcapa
más.

El acceso a los registros se hace por búsquedas exhaustiva y son fáciles de actualizar. Si se quiere
encontrar un registro que contiene un campo particular y un valor determinado, es necesario
examinar cada registro de la pila hasta encontrar el registro deseado. Si se quieren encontrar todos
los registros que contienen un campo particular o que tienen un valor determinado para ese campo,
debe buscarse el archivo entero.

Se aplica cuando los datos se recogen o almacenan antes de procesarlos o cuando no son fáciles
de organizar. Esta clase de archivo aprovecha bien el espacio cuando los datos almacenados
varían en tamaño y estructura. Fuera de estos usos limitados, este tipo de archivos no se adapta a
la mayoría de las aplicaciones.

Archivos secuenciales

Fig. 5.4.3 Archivo secuencial: Registro de longitud fija. Conjunto fijo de campos en orden
constante. Orden secuencial por el campo clave.

Es la forma más común de estructura de archivos.

Se emplea un formato fijo para los registros, son de la misma longitud y constan del mismo número
de campos de tamaño fijo con un orden determinado.

Se necesita almacenar los valores de cada campo; el nombre del campo y la longitud de cada uno
son atributos de la estructura del archivo. Cada registro tiene un campo clave que lo identifica
(generalmente es el primero de cada registro). Los registros se almacenan en secuencia por la
clave.

Se utilizan normalmente en aplicaciones de procesos por lotes, ya que es la única organización de


archivos que se puede guardar tanto en cintas como en discos.

Para las aplicaciones interactivas que incluyen peticiones o actualizaciones de registros


individuales, los archivos secuenciales no son óptimos. El acceso requiere una búsqueda
secuencial de correspondencias con la clave. Si el archivo entero o gran parte de él pueden traerse
a la memoria principal de una sola vez, se podrán aplicar técnicas de búsquedas más eficientes. Al
acceder un registro de un archivo secuencial grande, se produce un procesamiento extra y un
retardo considerable.

La organización física del archivo en una cinta o disco se corresponde exactamente con la
organización lógica del archivo, por lo tanto el procedimiento habitual es ubicar los nuevos registros
en un archivo de pila separado, es llamado archivo de registro o archivo de transacciones.

Una alternativa es organizar físicamente el archivo secuencial como una lista enlazada, en cada
bloque físico se almacena uno o más registros y cada bloque del disco contienen un puntero al
bloque siguiente. La inserción de un nuevo registro implica la manipulación de puntero, pero no
requiere que el nuevo registro ocupe una posición particular del bloque físico.

Archivos secuenciales indexados


Fig. 5.4.4 Archivo secuencial indexado.

Los registros se organizan en una secuencia basada en un campo clave presentando dos
características, un índice del archivo para soportar los accesos aleatorios y un archivo de
desbordamiento. El índice proporciona una capacidad de búsqueda para llagar rápidamente al
registro deseado y el archivo de desbordamiento es similar al archivo de registros usado en un
archivo secuencial, pero está integrado de forma que los archivos de desbordamiento se ubiquen
siguiendo un puntero desde su registro predecesor.

La estructura más simple tiene como índice un archivo secuencial simple, cada registro del archivo
índice tiene dos campos, un campo clave igual al del archivo principal y un puntero al archivo
principal. Para encontrar un campo especifico se busca en el índice hasta encontrar el valor mayor
de la clave que es iguale o precede al valor deseado de la clave, la búsqueda continua en el
archivo principal a partir de la posición que indique el puntero.

Cada registro del archivo principal tiene un campo adicional que es un puntero al archivo de
desbordamiento. Cuando se inserta un nuevo registro al archivo, también se añade al archivo de
desbordamiento. El registro del archivo principal que precede inmediatamente al nuevo registro
según la secuencia lógica se actualiza con un puntero del registro nuevo en el archivo de
desbordamiento, si el registro inmediatamente anterior está también en el archivo de
desbordamiento se actualizará el puntero en el registro.

Para procesar secuencialmente un archivo completo los registros del archivo principal se
procesarán en secuencia hasta encontrar un puntero al archivo de desbordamiento, el acceso
continúa en el archivo de desbordamiento hasta que encuentra un puntero nulo, entonces renueva
el acceso donde se abandonó en el archivo principal.

Archivos indexados
Fig. 5.4.5 Archivo indexado.

A los registros se accede solo a través de sus índices. No hay restricción en la ubicación de los
registros, al menos un índice contiene un puntero a cada registro y pueden emplearse registros de
longitud variable.

Se suelen utilizar dos tipos de índices, uno exhaustivo que contiene una entrada para cada registro
del archivo principal y se organiza como un archivo secuencial para facilitar la búsqueda, el otro
índice es parcial que contiene entrada a los registros donde esté el campo de interés.

Con registro de longitud variable, algunos registros no contendrán todos los campos y cuando se
añade un registro al archivo principal, todos los archivos de índices deben actualizarse.

Archivos directos o de dispersión

Explotan la capacidad de los discos para acceder directamente a cualquier bloque de dirección
conocida.

Se requiere un campo clave en cada registro.

Los archivos directos son muy usados donde se necesita un acceso muy rápido, donde se usan
registros de longitud fija y donde siempre se accede a los registros de una vez.

Organización física.

Los datos son arreglados por su adyacencia física, es decir, de acuerdo con el dispositivo de
almacenamiento secundario. Los registros son de tamaño fijo o de tamaño variable y pueden
organizarse de varias formas para constituir archivos físicos. 

Cinta magnética.

Fig. 5.4.6 Cintas magnéticas

En este dispositivo el archivo físico está formado por un conjunto de registros físicos, y los bloques
están organizados en forma consecutiva, ya que se asigna en igual forma.

Además tales registros puede contener etiquetas que permitan un mayor control sobre los datos
almacenados, y son las siguientes:

- Etiqueta de volumen.- Contiene información que permite identificar la cinta, el nombre del
propietario y cualquier información general requerida.

- Etiqueta de archivo.- Se utilizan por pares para indicar el inicio y fin del archivo, contiene
información acerca del nombre del archivo, fecha de creación.

- Etiqueta de usuario.- Sirven para guardar información adicional de importancia para el usuario; no
son procesados por el sistema operativo.

Discos Magnéticos.

Fig. 5.4.7 Discos magnéticos

El archivo físico en un disco es una colección de registros físicos de igual tamaño, los cuales
pueden estar organizados en forma consecutiva, ligada o con una tabla de mapeo. 

En la organización contigua, el archivo utiliza registros físicos contiguos, siguiendo la secuencia


normal de direcciones.

La organización encadenada consiste un conjunto de bloques, cada uno de los cuales tiene un
campo destinado para indicar la dirección del siguiente registro, o sea, para lo que se ha llamado
enlace o liga.

Otra forma de organización es la tabla de mapeo que consiste en una tabla de apuntadores a los
registros físicos que forman el archivo.

La organización física de un archivo en el almacenamiento secundario depende de la estrategia de


agrupación y de la estrategia de asignación de archivos.

Para elegir una organización de archivos se deben tener en cuenta ciertos criterios:

Si un archivo va a procesar solamente por lotes, accediendo cada vez a todos los registros,
entonces el acceso rápido para la recuperación de un único registro es una preocupación mínima.
Un archivo almacenado en CD-ROM nunca será actualizado, por lo que la facilidad de
actualización no se considera. Para la economía de almacenamiento, debería existir una mínima
redundancia de los datos, ésta redundancia es el medio fundamental para incrementar la velocidad
de acceso a los datos.

Este tipo de organización muestra a su vez, 2 aspectos importantes: Métodos De Asignación De


Espacio Libre y Asignación De Espacio De Almacenamiento Del Archivo.

METODOS DE ASIGNACION DE ESPACIO LIBRE

Un método de asignación de espacio libre determina la manera en que un Sistema Operativo


controla los lugares del disco que no están siendo ocupados. 
Para el control del espacio libre se puede utilizar como base alguno de los métodos
teóricos: Vector de Bits, Lista Ligada, Por Agrupación y por Contador.

VECTOR DE BITS

Se tiene un arreglo de bits, el número de bits que tiene, representa cada sector del disco, o sea
que si los sectores 10 y 11 están ocupados su representación será:

Fig. 5.4.8 Ejemplo de un vector de bits.

LISTA LIGADA

Existe una cabecera en la que se tiene la dirección del primer sector vacío, ese sector a su vez,
tiene un apuntador al siguiente bloque, y así sucesivamente hasta que se encuentre una marca
indicando que ya no hay espacio libre, tal y como se muestra en la siguiente figura.
Fig. 5.4.9 Ejemplo de una lista ligada

POR AGRUPACION

Es similar a la lista ligada, solo que en este se tiene por cada sector, un grupo de apuntadores a
varios espacios vacíos, al final de cada bloque se tiene un apuntador a otro grupo de apuntadores,
observe la figura.
Fig. 5.4.10 Ejemplo de asignación por agrupación.

POR CONTADOR

Aquí, por cada conjunto de bloques contiguos que estén vacíos, se tiene por cada apuntador, un
número de inicio y el tamaño del grupo de sectores vacíos.
Fig. 5.4.11 Ejemplo de asignación por contador.

MÉTODOS DE ASIGNACIÓN DE ESPACIO EN DISCO.

Un método de asignación de espacio en disco determina la manera en que un Sistema Operativo


controla los lugares del disco ocupados por cada archivo de datos. Se debe controlar básicamente
la identificación del archivo, sector de inicio y sector final.

Para el control del espacio ocupado en disco se puede utilizar como base alguno de los métodos
teóricos: Asignación Contigua, Asignación Ligada, Asignación Indexada. 

ASIGNACIÓN CONTIGUA.

Este método consiste en asignar el espacio en disco de tal manera que las direcciones de todos los
bloques correspondientes a un archivo definen un orden lineal. Por ejemplo: 
Fig. 5.4.12 Ejemplo de asignación contigua. 

DESVENTAJAS
VENTAJAS
- La cabeza de lectura no se mueve - Produce fragmentación externa.
demasiado en la lectura de un archivo.
ASIGNACIÓN LIGADA

En este método, cada archivo es una lista ligada de bloques de disco. En el directorio hay un
apuntador al bloque de inicio y un apuntador al bloque final para cada archivo. En cada uno de los
bloques donde se encuentra un archivo hay un apuntador al siguiente bloque de la lista. Por
ejemplo:
La i-ésima  entrada en el bloque índice apunta al i-ésimo  bloque que conforma el archivo. En el
directorio se controla la dirección del bloque índice de cada archivo, por ejemplo: 

Fig. 5.4.14 Ejemplo de asignación indexada. 

5.5 Mecanismos de acceso a los archivos 


Existen varios mecanismos para acceder los archivos: Directorios, descriptores de archivos,
mecanismos de control de acceso y procedimientos para abrir y cerrar archivos.

Descriptores de archivos.

El descriptor de archivos o bloque de control de archivos es un bloque de control que contiene


información que el sistema necesita para administrar un archivo.

Es una estructura muy dependiente del sistema.

Puede incluir la siguiente información:

 Nombre simbólico del archivo.


 Localización del archivo en el almacenamiento secundario.
 Organización del archivo (método de organización y acceso).
 Tipo de dispositivo.
 Datos de control de acceso.
 Tipo (archivo de datos, programa objeto, programa fuente, etc.).
 Disposición (permanente contra temporal).
 Fecha y tiempo de creación.
 Fecha de destrucción.
 Fecha de la última modificación.
 Suma de las actividades de acceso (número de lecturas, por ejemplo).

Los descriptores de archivos suelen mantenerse en el almacenamiento secundario; se pasan al


almacenamiento primario al abrir el archivo.

El descriptor de archivos es controlado por el sistema de archivos; el usuario puede no hacer


referencia directa a él.

A cada uno de los archivos se le asigna un descriptor el cual contendrá toda la información que
necesitará el sistema de archivos para ejecutar con él los comandos que se le soliciten. El
descriptor se mantendrá en memoria principal desde que el archivo es abierto hasta que sea
cerrado, y debe tener al menos la siguiente información, identificación del archivo, lugar de
almacenamiento, información del modo de acceso.

Identificación del archivo. Consiste de dos partes que es el nombre simbólico que es el que le da el
usuario y un identificador interno que es asignado por el sistema operativo (número). Lugar de
almacenamiento así como el tamaño del archivo. Modo de acceso. Se debe indicar en forma
explícita quien puede accesar el archivo y conque derecho.
Fig. 5.5.1 Ejemplo ilustrativo del control de acceso

Mecanismo de control de acceso.

Control de un sistema de información especializado en detectar los intentos de acceso, permitiendo


el paso de las entidades autorizadas, y denegando el paso a todas las demás. Involucra medios
técnicos y procedimientos operativos.

Mecanismo que en función de la identificación ya autenticada permite acceder a datos o recursos.

Los Directorios son utilizados por el sistema operativo para llevar un registro de los archivos que
incluye el nombre, los atributos y las direcciones en disco donde se almacenan los datos del
archivo referenciado.

Open (abrir): antes de utilizar un archivo, un proceso debe abrirlo. La finalidad es permitir que el
sistema traslade los atributos y la lista de direcciones en disco a la memoria principal para un
rápido acceso en llamadas posteriores.

Close (cerrar): cuando concluyen los accesos, los atributos y direcciones del disco ya no son
necesarios, por lo que el archivo debe cerrarse y liberar la tabla de espacio interno.
5.6 Manejo de espacio en memoria secundaria 

A diferencia de la Memoria Principal la Memoria Secundaria, auxiliar, masiva, externa no es tan


veloz pero tiene gran capacidad para almacenar información en dispositivos tales como discos,
cintas magnéticas, discos ópticos. Frecuentemente los datos y programas se graban en la Memoria
Secundaria, de esta forma, cuando se ejecuta varias veces un programa o se utilicen
repetidamente unos datos, no es necesario darlos de nuevo a través del dispositivo de entrada.

   

Fig. 5.6.1 Ejemplos de Memoria Secundaria

En la Memoria Secundaria un archivo consta de un conjunto de bloques (correspondiente a la


cantidad de información que se transfiere físicamente en cada operación de acceso (lectura o
escritura).

El Sistema Operativo o Sistema de Gestión de Archivos es el encargado de la asignación de


bloques a archivos, de lo que surgen dos cuestiones, en primer lugar, debe asignarle el espacio de
Memoria Secundaria a los archivos y, en segundo lugar, es necesario guardar constancia del
espacio disponible para asignar.

El sistema de archivos se ocupa primordialmente de administrar el espacio de almacenamiento


secundario, sobre todo el espacio en disco. El manejo del espacio libre en disco se lleva a cabo de
la siguiente manera:
· Vector de bits

· Lista ligada (lista libre)

· Por conteo (agrupación)

Vector de bits. El espacio libre en disco es frecuentemente implementado como un mapa de bits,
donde cada block es representado por un bit y si el bloc es libre el bit es cero de lo contrario está
asignado.11000111

Lista ligada. Una lista ligada de todos los blocks libres. Otra implantación se consigue guardando
la dirección del primer block libre y el número de los blocks libres contiguos que le siguen. Cada
entrada de la lista de espacio libre consiste de una dirección de disco y un contador (por conteo).

Fig. 5.6.2 Lista de espacio libre enlazada en el disco.

Por agrupación. Se almacena la dirección en n blocks libres en el primer block libre y el último
contiene la dirección de otro block que contiene la dirección de otros blocks libres.

Para manejar los espacios en disco existen los siguientes métodos:

? Contiguos

? Ligados

? Indexados

? Contiguos. Esta asignación requiere que cada archivo ocupe un conjunto de direcciones
contiguas en el disco, su asignación es definida por la dirección del primer bloc y la longitud del
archivo.

Cuando se crea un archivo se le asigna un único conjunto contiguo de bloques, esta es una
estrategia de asignación previa que emplea secciones de tamaño variable. La tabla de asignación
de archivos necesita solo una entrada por cada archivo y que muestre el bloque de comienzo y la
longitud del archivo. La asignación contigua es la mejor para un archivo secuencial.

La asignación contigua presenta algunos problemas, como la fragmentación externa. Lo que hace
difícil encontrar bloques contiguos de espacio de tamaño suficiente., lo que lleva a ejecutar un
algoritmo de compactación para libera el espacio adicional en el disco.

? Asignación ligada o encadenada. Cada archivo es una lista ligada de blocks y el directorio
contiene un apuntador al primer bloc y al último.

La asignación se hace con bloques individuales, cada bloque contendrá un puntero al siguiente
bloque de la cadena. La tabla de asignación de archivos necesita una sola entrada por cada
archivo que muestre el bloque de comienzo y la longitud del mismo, cualquier bloque puede
añadirse a la cadena. No hay que preocuparse por la fragmentación externa porque solo se
necesita un bloque cada vez.

Una consecuencia del encadenamiento es que no hay cabida para el principio de cercanía, si es
necesario traer varios bloques de un archivo al mismo tiempo, se necesita una serie de accesos a
partes diferentes del disco por lo que se debe ejecutar un algoritmo de compactación para liberar el
espacio adicional en el disco.

? Asignación Indexada. Cada archivo tiene su propio bloc de índice el cual es un arreglo de
direcciones de bloc.

En esta asignación la tabla de asignación de archivos contiene un índice separado de un nivel para
cada archivo: el índice posee una entrada para cada sección asignada al archivo. Normalmente,
los índices no están almacenados físicamente como parte de la tabla de asignación de archivos.
Más exactamente el índice de archivo se guardara en un bloque aparte y la entrada del archivo en
la entrada de asignación apuntara a dicho bloque.

La asignación puede hacerse por bloques de tamaño fijo, O en secciones de tamaño variable. La
asignación por bloques elimina la fragmentación externa, mientras que la asignación por secciones
de tamaño variable mejora la cercanía. En cualquier caso, los archivos pueden concentrarse en
zonas cercanas de cuando en cuando. La concentración reduce el tamaño del índice en el caso de
secciones de tamaño variable, pero no en el caso de asignación por bloques.

La asignación indexada soporta tanto el acceso secuencial como el acceso directo a los archivos y
por ello se ha convertido en la forma más popular de asignación de archivos.

En un sistema de cómputo, los elementos que se declaran para almacenamiento son los File
System. Cuándo existe una solicitud de almacenamiento o manejo de bloc libres en un file system
surge una interrogante ¿cómo atenderlas? esto se lleva a cabo mediante una planificación de
discos y para esto existen las siguientes políticas de planificación. 

a) FCFS

b) SSTF

c) SCAN

d) SCAN de n-pasos

e) C-SCAN

f) Esquema Eschenbach

5.7 Modelo jerárquico 

Directorios

El directorio contiene un conjunto de datos por cada archivo referenciado.


Fig. 5.7.1 Ejemplo de directorio jerárquico

Una posibilidad es que el directorio contenga por cada archivo referenciado:

 El nombre.
 Sus atributos.
 Las direcciones en disco donde se almacenan los datos.

Otra posibilidad es que cada entrada del directorio contenga:

 El nombre del archivo.


 Un apuntador a otra estructura de datos donde se encuentran los atributos y las,
direcciones en disco.

Fig. 5.7.2 Representación gráfica de un directorio jerárquico.

Al abrir un archivo el S. O.:


 Busca en su directorio el nombre del archivo.
 Extrae los atributos y direcciones en disco.
 Graba esta información en una tabla de memoria real.
 Todas las referencias subsecuentes al archivo utilizarán la información de la memoria
principal.

El número y organización de directorios  varía de sistema en sistema:

 Directorio único: el sistema tiene un solo directorio con todos los archivos de todos los
usuarios (ver Figura 5.7.3).
 Un directorio por usuario: el sistema habilita un solo directorio por cada usuario (ver
Figura 5.7.4).

 Un árbol de directorios por usuario: el sistema permite que cada usuario tenga tantos
directorios como necesite, respetando una jerarquía general (ver Figura 5.7.5).

Fig. 5.7.3 Un solo directorio compartido por todos los usuarios

Fig. 5.7.4 Un directorio por usuario


Fig. 5.7.5 Un árbol arbitrario por usuario
5.8 Mecanismo de recuperación en caso de falla 

Recuperación

Los archivos y directorios se mantienen tanto en memoria principal como en disco, y debe tener.
Se cuidado para que los fallos del sistema no provoquen una pérdida de datos o una incoherencia
en los mismos.

Comprobación de coherencia.

Como hemos explicado en la Sección 11.3, parte de la información de directorios se almacena en


la memoria principal (o en caché) para acelerar el acceso. La información de directorios en11a
memoria principal está, generalmente, más actualizada que la correspondiente información en el
disco, porque la información de directorios almacenada en caché no se escribe necesariamente en
el disco nada más producirse la actualización.

Considere, entonces, el posible ejemplo de un fallo de la computadora. El contenido de la caché y


de los búferes, así como de las operaciones de E/S que se estuvieran realizando en ese momento,
pueden perderse, y con él se perderán los cambios realizados en los directorios correspondientes a
los archivos abiertos. Dicho suceso puede dejar el sistema de archivos en un estado incoherente.
El estado real de algunos archivos no será el que se describe en la estructura de directorios.

Con frecuencia, suele ejecutarse un programa especial durante el reinicio para comprobar las
posibles incoherencias del disco y corregidas.

El comprobador de coherencia (un programa del sistema tal como fsck en UNIX o chkdsk en MS-
DOS), compara los datos de la estructura de directorios con los bloques de datos del disco y trata
de corregir todas las incoherencias que detecte. Los algoritmos de asignación y de gestión del
espacio libre dictan los tipos de problemas que el comprobador puede tratar de detectar y dictan
también el grado de éxito que el comprobador puede tener en esta tarea. Por ejemplo, si se utiliza
un sistema de asignación enlazada y existe un enlace entre cada bloque y el siguiente, puede
reconstruirse el archivo completo a partir de los bloques de datos y volver a crear la estructura de
directorios. Por el contrario, la pérdida de una entrada de directorio en un sistema de asignación
indexada puede ser desastrosa, porque los bloques de datos no tienen ningún conocimiento acerca
de los demás bloques de datos del archivo. Por esta razón, UNIX almacena en caché las entradas
de directorio para las lecturas, pero todas las escrituras de datos que provoquen algún cambio en
la asignación de espacio o en algún otro tipo de metadato se realizan síncronamente, antes de
escribir los correspondientes bloques de datos. Por supuesto, también pueden aparecer problemas
si se interrumpe una escritura síncrona debido a un fallo catastrófico.
Fig. 5.8.1 Errores

La pérdida de la información es uno de los factores que se le debe de dar mayor importancia, por la
sencilla razón de que al perder información se puede perder lo que no nos podemos imaginar en
cuanto a la misma y ocasionar perdidas hasta hablar de una gran cantidad de dinero. Para
solucionar este o estos problemas todo sistema operativo cuenta con al menos una herramienta de
software que nos permite recuperar información perdida hasta cierta medida, esto obedece de
acuerdo al daño causado o los daños. Si el sistema no cuenta con la herramienta necesaria,
deberá adquirirse el software apropiado de algún fabricante especializado en el ramo, por ejemplo
Norton.

Es necesario proteger la información alojada en el sistema de archivos, efectuando los resguardos


correspondientes.

De esta manera se evitan las consecuencias generalmente catastróficas de la pérdida de los


sistemas de archivos.

Las pérdidas se pueden deber a problemas de hardware, software, hechos externos, etc.

Manejo de un bloque defectuoso:

Se utilizan soluciones por hardware y por software.

La solución en hardware:

 Consiste en dedicar un sector del disco a la lista de bloques defectuosos.


 Al inicializar el controlador por primera vez:
o Lee la “lista de bloques defectuosos”.
o Elige un bloque (o pista) de reserva para reemplazar los defectuosos.
o Registra la asociación en la lista de bloques defectuosos.
o En lo sucesivo, las solicitudes del bloque defectuoso utilizarán el de repuesto.

La solución en software:
 Requiere que el usuario o el sistema de archivos construyan un archivo con todos los
bloques defectuosos.
 Se los elimina de la “lista de bloques libres”.
 Se crea un “archivo de bloques defectuosos”:
o Está constituido por los bloques defectuosos.
o No debe ser leído ni escrito.
o No se debe intentar obtener copias de respaldo de este archivo.

Respaldos (copias de seguridad o de back-up):

Fig. 5.8.2 Es necesario realizar respaldos para asegurar información

Es muy importante respaldar los archivos con frecuencia.

Los discos magnéticos fallan en ocasiones y es necesario tener cuidado para garantizar que los
datos perdidos debido a esos fallos no se pierdan para siempre. Con este fin, pueden utilizarse
programas del sistema para realizar una copia de seguridad de los datos del disco en otro
dispositivo de almacenamiento, como por ejemplo un disquete, una cinta magnética, un disco
óptico incluso otro disco duro. La recuperación de la pérdida de un archivo individual o de un disco
completo puede ser entonces, simplemente, una cuestión de restaurar los datos a partir de la copia
de seguridad.

Los respaldos pueden consistir en efectuar copias completas del contenido de los discos (flexibles
o rígidos).

Una estrategia de respaldo consiste en dividir los discos en áreas de datos y áreas de respaldo  ,
utilizándolas de a pares:

 Se desperdicia la mitad del almacenamiento de datos en disco para respaldo.


 Cada noche (o en el momento que se establezca), la parte de datos de la unidad 0 se
copia a la parte de respaldo de la unidad 1 y viceversa.
Otra estrategia es el vaciado por incrementos o respaldo incremental :

 Se obtiene una copia de respaldo periódicamente (por ej.: una vez por mes o por semana),
llamada copia total.
 Se obtiene una copia diaria solo de aquellos archivos modificados desde la última copia
total; en estrategias mejoradas, se copian solo aquellos archivos modificados desde la
última vez que dichos archivos fueron copiados.
 Se debe mantener en el disco información de control como una “lista de los tiempos de
copiado”  de cada archivo, la que debe ser actualizada cada vez que se obtienen copias de
los archivos y cada vez que los archivos son modificados.
 Puede requerir una gran cantidad de cintas de respaldo dedicadas a los respaldos diarios
entre respaldos completos.

Para minimizar la cantidad de datos que haya que copiar, podemos utilizar la información contenida
en la entrada de directorio de cada archivo. Por ejemplo, si el programa de copia de seguridad
sabe cuándo se realizó la última copia de seguridad de un archivo y la fecha de última modificación
del archivo contenida en el directorio indica que el archivo no ha cambiado desde esa fecha, no
será necesario volver a copiar el archivo. Así un plan típico de copia de seguridad podría ser el
siguiente:

•  Día 1. Copiar en el soporte de copia de seguridad todos los archivos del disco. Esto se denomina
copia de seguridad completa.

•  Día 2. Copiar en otro soporte físico todos los archivos que se hayan modificado desde el día 1.
Esta es una copia de seguridad incremental.

•  Día 3. Copiar en otro soporte físico todos los archivos que se hayan modificado desde el día 2.

•  Día N. Copiar en otro soporte físico todos los archivos que se hayan modificado desde el día N -
1. Después, volver al día 1.

Podemos escribir las copias de seguridad correspondientes al nuevo ciclo sobre el conjunto
anterior de soportes físicos o en un nuevo conjunto de soportes de copia de seguridad. De esta
forma, podemos restaurar un disco completo comenzando la restauración con la copia de
seguridad completa y continuando con cada una de las copias de seguridad incrementales. Por
supuesto, cuanto mayor sea el valor de N, más cintas o discos habrá que leer para efectuar una
restauración completa. Una ventaja adicional de este ciclo de copia de seguridad es que podemos
restaurar cualquier archivo que haya sido borrado accidentalmente durante ese ciclo, extrayendo el
archivo borrado de la copia de seguridad del día anterior. La longitud del ciclo será un compromiso
entre la cantidad de soportes físicos de copia de seguridad requeridos y el número de días
pasados a partir de los cuales podamos realizar una restauración. Para reducir el número de cintas
que haya que leer para efectuar una restauración, una opción consiste en realizar una copia de
seguridad completa y luego copiar cada día todos los archivos que hayan cambiado desde la última
copia de seguridad completa. De esta forma, puede realizarse la restauración utilizando sólo la
copia de seguridad incremental más reciente y la copia de seguridad completa, no necesitándose
ninguna otra copia de seguridad incremental. El compromiso inherente a este sistema es que el
número de archivos modificado se incrementa a diario, por lo que cada copia de seguridad
incremental sucesiva contiene más archivos y requiere más espacio en el soporte de copia de
seguridad.

Consistencia del sistema de archivos:

Muchos sistemas de archivos leen bloques, los modifican y escriben en ellos después.

Si el sistema falla antes de escribir en los bloques modificados, el sistema de archivos puede
quedar en un “estado inconsistente”.

La inconsistencia es particularmente crítica si alguno de los bloques afectados son:

 Bloques de nodos-i.
 Bloques de directorios.
 Bloques de la lista de bloques libres.

La mayoría de los sistemas dispone de un programa utilitario que verifica la consistencia del
sistema de archivos:

 Se pueden ejecutar al arrancar el sistema o ha pedido.


 Pueden actuar sobre todos o algunos de los discos.
 Pueden efectuar verificaciones a nivel de bloques y a nivel de archivos.
 La consistencia del sistema de archivos no asegura la consistencia interna de cada
archivo, respecto de su contenido.
 Generalmente pueden verificar también el sistema de directorios y / o de bibliotecas.

Generalmente los utilitarios utilizan dos tablas:

 Tabla de bloques en uso.


 Tabla de bloques libres.
 Cada bloque debe estar referenciado en una de ellas.

Si un bloque no aparece en ninguna de las tablas se trata de una falla llamada bloque faltante:

 No produce daños pero desperdicia espacio en disco.


 Se soluciona añadiendo el bloque a la tabla de bloques libres.

También podría detectarse la situación de falla debida a un bloque referenciado dos veces en la
tabla de bloques libres:

 Esta falla no se produce en los sistemas de archivos basados en mapas de bits, sí en los
basados en tablas o listas.
 La solución consiste en depurar la tabla de bloques libres.

Una falla muy grave  es que el mismo bloque de datos aparezca referenciado dos o más veces en
la tabla de bloques en uso:

 Como parte del mismo o de distintos archivos.


 Si uno de los archivos se borra, el bloque aparecería en la tabla de bloques libres y
también en la de bloques en uso.
 Una solución es que el verificador del sistema de archivos:
o Asigne un bloque libre.
o Copie en el bloque libre el contenido del bloque conflictivo.
o Actualice las tablas afectando el bloque copia a alguno de los archivos.
o Agregue el bloque conflictivo a la tabla de bloques libres.
o Informe al usuario para que verifique el daño detectado y la solución dada.

Otro error posible es que un bloque esté en la tabla de bloques en uso y en la tabla de bloques
libres:

 Se soluciona eliminándolo de la tabla de bloques libres.

Las verificaciones de directorios incluyen controles como:

 Número de directorios que apuntan a un nodo-i con los contadores de enlaces


almacenados en los propios nodos-i; en un sistema consistente de archivos deben
coincidir.

Una posible falla es que el contador de enlaces sea mayor que el número de entradas del
directorio:

 Aunque se eliminaran todos los archivos de los directorios el contador sería distinto de cero
y no se podría eliminar el nodo-i.
 No se trata de un error serio pero produce desperdicio de espacio en disco con archivos
que no se encuentran en ningún directorio.
 Se soluciona haciendo que el contador de enlaces en el nodo-i tome el valor correcto; si el
valor correcto es 0, el archivo debe eliminarse.

Otro tipo de error  es potencialmente catastrófico:


 Si dos entradas de un directorio se enlazan a un archivo, pero el nodo-i indica que solo
existe un enlace, entonces, al eliminar cualquiera de estas entradas de directorio, el
contador del nodo-i tomará el valor 0.
 Debido al valor 0 el sistema de archivos lo señala como no utilizado y libera todos sus
bloques.
 Uno de los directorios apunta hacia un nodo-i no utilizado, cuyos bloques se podrían
asignar entonces a otros archivos.
 La solución es forzar que el contador de enlaces del nodo-i sea igual al número de
entradas del directorio.

También se pueden hacer verificaciones heurísticas, por ej.

 Cada nodo-i tiene un modo, pero algunos modos son válidos aunque extraños:
o Ej.: Se prohíbe el acceso al propietario y todo su grupo, pero se permite a los
extraños leer, escribir y ejecutar el archivo.
o La verificación debería detectar e informar de estas situaciones.

Se debería informar como sospechosos aquellos directorios con excesivas entradas, por ej., más
de mil.

También podría gustarte