9.Almacenamiento Secundario

Anuncio
ISI – Sistemas Operativos – Resumen Capitulo 9
9.Almacenamiento Secundario
Estructura del Disco: La superficie del disco se divide lógicamente en pistas, donde la
información es grabada o leída por medio de cabezas de lecto-escritura; el conjunto de pistas a
las que se puede acceder sin mover las cabezas dentro de una unidad es denominado cilindro.
Existen discos de cabeza fija (una por cada pista) y de cabeza móvil, que posee una sola cabeza
que se desplaza hacia adentro y hacia afuera para acceder a las distintas pistas. El hard para un
sistema de disco puede dividirse en:
• La parte mecánica (motor, las cabezas y la lógica relacionada)
• La parte controladora del disco, que determina la interacción lógica con la computadora.
Para hacer referencia a la información en disco se emplea una dirección compuesta por varias
partes: unidad, superficie, pista y sector. Un sector es la menor unidad de información que
puede leerse o escribirse. El tamaño de los sectores, la cantidad de sectores por pista y la
cantidad de pistas por superficie varía de acuerdo a la unidad de disco en cuestión. Para
acceder a un sector, las cabezas deben moverse a la pista correcta (tiempo de posicionamiento)
y esperar a que el sector solicitado pase por debajo de la cabeza (tiempo de latencia). Luego
comienza el tiempo de transferencia.
Si
k: número del sector
s: cantidad de sectores por pista
j: numero de superficie
i: numero de cilindro
p: cantidad de pistas por cilindro
Podemos convertir una dirección a un número de bloque unidimensional b, de la siguiente
manera:
b=k+s*(j+i*p)
Directorio del dispositivo: En él se encuentra la información de los archivos que se encuentran
en el disco (ubicación, longitud, tipo, propietario, fecha y hora de creación, fecha y hora del
último acceso, protecciones, etc.).
Administración del Espacio Libre: El sistema mantiene una lista de espacio libre, donde se
registran los bloques que no están asignados a un archivo.
• Vector de bits: Se puede implementar como un vector de bits, donde cada bloque se
representa con un bit. Si el bloque está libre (0), y si está ocupado (1). No resulta eficiente si
en la mayoría de los accesos el vector no esta en memoria principal.
• Lista ligada: Consiste en enlazar todos los bloques libres del disco, manteniendo un puntero
al primer bloque libre. No es eficiente, pues para recorrer la lista, tenemos que leer cada uno
de los bloques, lo que representa un tiempo considerable de E/S.
• Agrupamiento: Se almacena en el 1er bloque las direcciones de n bloques libres. Los
primeros n-1 bloques están libres y el último contiene la dirección en disco de otro bloque
que contiene las direcciones de otros n bloques libres. Con este método pueden encontrarse
con rapidez las direcciones de una gran cantidad de bloques libres.
• Recuento: Consiste en aprovechar que, en general, varios bloques contiguos se pueden
asignar o liberar simultáneamente, especialmente en asignación contigua. Así podemos tener
la dirección del primer bloque libre y los n bloques libres contiguos que le siguen. La lista
sería más pequeña, siempre y cuando el recuento sea generalmente mayor que uno.
Métodos de Asignación:
„ Asignación contigua: Requiere que cada archivo ocupe un conjunto de direcciones
contiguas en el disco. En el directorio se guarda la dirección del bloque inicial y el área del
archivo. El inconveniente consiste en encontrar espacio contiguo disponible para un nuevo
archivo a partir de una lista de huecos libres, generalmente se utilizan las estrategias del 1er
ajuste, el mejor ajuste y el peor ajuste. Surge el problema de la fragmentación externa,
ISI – Sistemas Operativos – Resumen Capitulo 9
cuando para atender una solicitud hay suficiente espacio libre en disco para satisfacerla, pero
éste no es contiguo. Otro problema que se nos presenta es el poder determinar cuánto espacio
se necesita para un archivo. Solo un acceso a disco.
„ Asignación enlazada: consiste en una lista enlazada de bloques de archivo y estos pueden
hallarse en cualquier parte del disco (se necesitan n accesos para llegar al bloque n). Con este
tipo de asignación no tenemos fragmentación externa. El inconveniente con este tipo de
asignación es que sólo puede aplicarse eficazmente al acceso secuencial. Cada acceso a un
puntero implica una lectura al disco, por lo que es poco eficiente para el acceso directo para
archivos. Otro inconveniente es el espacio requerido por el puntero, que nos quita espacio
para los datos, requiriendo entonces c/archivo un poco más de espacio. El problema más
serio es la confiabilidad. Un error en el software del SO o un problema en el hardware, puede
provocar que se elija un puntero incorrecto, enlazando el archivo a la lista de espacio libre o
a otro archivo (se necesita leer los índices y luego buscar los datos).
„ Asignación indexada: Reúne todos los punteros en el bloque de índices. Cada archivo tiene
su propio bloque de índices. Permite el acceso directo sin el problema de la fragmentación
externa. El desperdicio de espacio puede ser mayor que en la asignación enlazada.
• Esquema enlazado: se enlazan varios bloques de índices.
• Esquema multinivel: se tiene un bloque de índices que apunta a los bloques de índices,
que a su vez apuntan a los bloques de archivo.
• Esquema combinado: se tiene en el directorio algunos punteros del bloque de índices.
Los primeros apuntan a bloques directos y los otros hacen referencia a bloques
indirectos..
Planificación del Disco: La unidad de disco tiene una cola de procesos pendientes. Cada vez
que un proceso necesita E/S del disco, emite una llamada al SO, esta solicitud especifica la
siguiente información necesaria:
• Si se trata de una operación de E o de S.
• Cuál es la dirección en disco (unidad, cilindro, superficie, bloque).
• Cuál es la dirección en mem.
• Cuánta información se transferirá (número de bytes o palabras).
Existen diversas planificaciones:
Planificación FCFS: el primero que entra es el primer atendido. No ofrece el mejor tiempo
promedio de servicio.
Planificación SSTF: Selecciona la solicitud con menor tiempo de posicionamiento a partir de la
actual posición de la cabeza. El inconveniente con esta planificación es que se puede tener un
bloqueo indefinido para algunas solicitudes. En un sistema real, permanentemente están
llegando solicitudes, y en teoría, podría llegar una serie continua de solicitudes próximas entre
sí, ocasionado que algunas solicitudes sean postergadas indefinidamente. Aunque mejora
notablemente al FCFS, no es óptimo.
Planificación SCAN: La cabeza barre el disco de un extremo al otro atendiendo las solicitudes
al llegar a cada pista. Luego invierte la dirección del movimiento de la cabeza y continúa el
servicio, rastreando continuamente el disco de un extremo al otro. Tiene el problema de hacer
esperar a algunas solicitudes demasiado, ya que cuando invierte el recorrido pasa por pistas
atendidas recientemente.
Planificación C-SCAN: Barre el disco pero al llegar al final, regresa de inmediato al inicio sin
servir ninguna solicitud en el camino.
Planificación LOOK y C-LOOK: (comportamiento análogo al de SCAN) la cabeza se mueve
hasta la última solicitud en cada dirección. Cuando no hay demandas invierte el movimiento y
en el caso de C-LOOK se va hasta la otra punta.
Mejoras en el rendimiento y la confiabilidad: La memoria caché y el controlador ayudan a
mejorar el rendimiento, que aún depende de la velocidad y confiabilidad de los discos. Una
mejora técnica es la idea de varios discos que trabajan cooperativamente y logran transferir sus
subbloques en paralelo RAID (redundant arrays of inexpensive disks).
ISI – Sistemas Operativos – Resumen Capitulo 9
Jerarquía de Almacenamiento:
1) Registros.
2) Memoria Caché.
3) Memoria Principal.
4) Almacenamiento Auxiliar.
5) Unidades de Disco.
6) Cinta Magnética.
Descargar