Está en la página 1de 4

2º ITI Gestión - Ampliación de Sistemas Operativos

Departamento de Informática (ATC, CCIA, LSI)


Universidad de Valladolid

Importante
Éste es un material de apoyo para el seguimiento del temario de la parte teórica de la
asignatura Ampliación de Sistemas Operativos.
Su lectura y estudio se debe complementar con la consulta de las correspondientes
referencias bibliográficas y la resolución de problemas.
En cualquier caso, téngase presente que posiblemente contenga erratas e imprecisiones.

6 Estructura del Almacenamiento Secundario


6.1 Estructura de Discos
• Descripción física: [cilindro, superficie, sector]
• En las modernas unidades de disco los cilindros
exteriores tienen más sectores que los interiores, con lo
que se aumenta la capacidad.

6.2 Planificación de Discos


• Medir el tiempo de acceso: (búsqueda, latencia,
transferencia).
• De las tres magnitudes, el tiempo más grande es el de
búsqueda.
o Mover la cabeza de lectura/escritura lo menos
posible minimiza el tiempo de acceso.
• Los procesos hacen peticiones de E/S sobre un disco, especificando el número de bloque Æ (cilindro,
superficie, sector).
• En sistemas multiprogramados las peticiones se encolan hasta que el dispositivo esté libre.
• Como el factor principal es la amplitud del movimiento para cambiar de cilindro, sólo nos fijaremos
en el número de cilindro de cada petición.

6.2.1 Planificación FCFS


• Planificación por orden de llegada.
• Sencillo.
• No es óptimo, salvo en el caso de sistemas monoprogramados, donde sólo hay como máximo una
petición pendiente en la cola de disco.

6.2.2 Planificación SSTF


• Shortest Seek Time First (primero el trabajo con menor tiempo de búsqueda).
• Conocido el cilindro de la posición original de la cabeza, se sirve aquella petición que esté más
cercana, que será la que garantice el menor desplazamiento y por lo tanto, tiempo de búsqueda
menor.
• A pesar de lo que parece, no es óptimo.
• Tiene el problema de la inanición: si llegan constantemente peticiones sobre una determinada zona
del disco y las estamos sirviendo, lo tendremos oportunidad de servir las peticiones lejanas que
hubieran llegado antes.

6.2.3 Planificación SCAN


• También se le conoce como algoritmo del ascensor.

  Página 1 de 4  05/05/2008 12:01  
2º ITI Gestión - Ampliación de Sistemas Operativos
Departamento de Informática (ATC, CCIA, LSI)
Universidad de Valladolid

• La cabeza hace un movimiento de barrido desde los cilindros interiores a los exteriores, sirviendo las
peticiones que va encontrando según va pasando sobre el correspondiente cilindro. Cuando llega a
un extremo, da la vuelta volviendo a servir las peticiones que se encuentra.
• Para aplicarlo, necesitamos conocer el cilindro en que se encuentra la cabeza y la dirección de
movimiento.

6.2.4 Planificación C-SCAN


• Es igual que el SCAN, salvo que sólo sirve peticiones cuando avanza en un sentido (por ejemplo, de
fuera hacia dentro), volviendo de nuevo a la posición inicial (exterior) sin servir peticiones.
• Evita el efecto de la acumulación en los extremos.

6.2.5 Planificación LOOK


• Es como SCAN y C-SCAN, salvo que no debe llegar hasta el último cilindro del disco (o el primero),
si no que sólo avanza hasta la petición más alejada que deba servir, ahorrándose el tramo restante.

6.2.6 Selección del Algoritmo de Planificación


• Depende de la carga del sistema (número y tipo de las peticiones).
o Si siempre habrá como máximo un proceso esperando en la cola de disco, todos los
algoritmos se comportan como FIFO.
• Depende del método de asignación de espacio a los archivos:
x Recordar ejemplo de operación con un fichero UNIX: 1- leer directorio, 2- crear
descriptor, 3- leer i-nodo, 4- leer bloque de datos (posiblemente también leer bloques
de índices indirectos).
o Asignación contigua Æ pocos movimientos de la cabeza.
o Asignación enlazada e indexada muchos movimientos de la cabeza.
• Depende de dónde se sitúen estructuras de datos como directorios, i-nodos... Si todo está cerca entre
sí, menor movimiento.
o P.Ej.: colocar i-nodos y directorios en los cilindros centrales del disco.
• A veces el SO no conoce cuál es la ubicación física verdadera de los bloques que lee o escribe. Es el
hardware del controlador (IDE, SCSI...) el encargado de localizar cada bloque en el disco. En estos
casos, el SO no tiene nada que hacer con respecto a la planificación.

6.3 Administración de Discos


6.3.1 Formateo de discos
• Formateo a bajo nivel. Creación de marcas para ayudar al manejo del disco.
o Estructuración en cilindros/sectores.
o Definición de sector con [cabecera, datos, cola]. En la cabecera se identifica [cilindro,
superficie, sector] donde está situado, con lo que se le ayuda al controlador a localizar los
sectores.
o Uso del ECC (Error Correcting Code) para determinar si hay o no errores en la información
leída. Cada vez que se escribe se calcula y añade el ECC en la cabecera. Cada vez que se lee
se recalcula y compara.
• Formateo a alto nivel. Básicamente consiste en la creación de las estructuras de gestión de espacio
del disco, y el directorio raíz.

6.3.2 Sector de Arranque


• Un pequeño programa en ROM busca en el sector 0 del disco el programa de arranque que inicializa
registros y memoria, busca el núcleo del sistema operativo, lo carga, y comienza su ejecución.

  Página 2 de 4  05/05/2008 12:01  
2º ITI Gestión - Ampliación de Sistemas Operativos
Departamento de Informática (ATC, CCIA, LSI)
Universidad de Valladolid

• Cambiar el sistema operativo con el que se arranca consistiría en cambiar únicamente el contenido
del sector 0, para que localizara el nuevo núcleo.

6.3.3 Bloques Defectuosos


• Ej. El programa format de MSDOS cuando detecta un sector defectuoso, lo marca en la FAT de
manera que no se use.
• Otros sistemas más sofisticados pueden efectuar la sustitución o el desplazamiento de los sectores
defectuosos.
o Ej.: Se dispone de un conjunto reservado de cilindros/sectores para su uso en caso de errores.
Si el sector 287 está dañado, se le sustituye por otro que se hubiera reservado, p.ej.: el 768.
Si se da la orden de escribir en el 287, el controlador realmente escribe en el 768.
o En este caso la planificación de disco basada en minimizar el movimiento de la cabeza
queda invalidada, pues ya no hay una correspondencia Número de Bloque Æ
[cilindro, superficie, sector].

6.4 Administración del espacio de intercambio


6.4.1 Uso del espacio de intercambio
• Cuando una página es reemplazada se copia en el área de intercambio.
• En la correspondiente entrada de la TP se debe indicar que es una página no válida, y guardar el
número de bloque que almacena la página en el disco para poder recuperarla más tarde.

6.4.2 Ubicación del Espacio de Intercambio


• En una partición específica.
o Tamaño fijo que se define al particionar el disco.
o Rápido Æ las llamadas de leer/escribir no se hacen a través de ficheros / directorios.
• Sobre un sistema de archivos.
o Tamaño variable Æ es un fichero que crece o disminuye según las necesidades, en principio
usa almacenamiento contiguo para ser más rápido.
o Lento Æ las escrituras / lecturas de las páginas se hacen a través de llamadas al sistemas de
archivos.

6.4.3 Administración del Espacio de Intercambio


• En principio lo único que se gestiona es qué bloques de disco están libres a través del mapa de
intercambio.
• Preasignación de espacio de intercambio. Cuando se admite un proceso, toda la imagen del proceso
se almacena (copia) en el área de intercambio.
o Evita la sorpresa de que cuando se vayan a descargar páginas de un proceso no haya espacio
en el área de intercambio y obligue a abortar su ejecución.

6.5 Confiabilidad de los discos


• El disco es un hardware sujeto a una alta probabilidad de fallos.
• Política de copias de seguridad.
• Uso de múltiples discos Æ RAID (Redundant Array of Inexpensive / Independent Disks).
Dependiendo de cómo se organicen se tienen los siguientes niveles RAID:
o RAID0 – no redundante, pero sí paralelo.
o RAID1 – mirroring (en espejo) Æ copia duplicada. Costoso, pero duplica el flujo de lectura,
puesto que se pueden servir dos peticiones en paralelo.
o RAID2 – redundante por código Hamming.

  Página 3 de 4  05/05/2008 12:01  
2º ITI Gestión - Ampliación de Sistemas Operativos
Departamento de Informática (ATC, CCIA, LSI)
Universidad de Valladolid

o RAID3 – paridad por intercalación de bits.


Un bloque de datos que se escribe se reparte
entre todos los discos. Hay un disco
reservado a almacenar la paridad.
o RAID4 – paridad por intercalación de
bloques. Cada bloque se almacena en un
único disco. Hay un disco reservado para
paridad. La escritura de un bloque en uno de
los discos, obliga a recalcular la paridad, con
lo que hay que leer todos los bloques de la
misma banda.
o RAID5 – paridad por intercalación
distribuida de bloques. Igual que RAID4
pero no asigna un disco específico para
guardar la paridad, sino que la reparte por
todos los discos, a fin de no sobrecargar el
sistema.
o RAID6 – redundancia dual.

6.6 Implementación del


Almacenamiento Estable
• Cuando se trabaja con un fichero, se abre (lee
directorio, copia i-nodo, se consigue descriptor...), se
lee/escribe, modificando mapas de bits y contenido
de bloques, y se cierra.
o En el momento de cerrar se actualizan las
estructuras de datos en el disco.
• Pueden ocurrir fallos y que las estructuras queden en un estado inconsistente.
• Se duplica el hardware. Al escribir un bloque, se escribe en dos unidades de disco (físico) distintas
en dos operaciones consecutivas. Cada una de estas operaciones registra si ha finalizado
correctamente.
• Si durante el transcurso de estas operaciones se produce un fallo en la corriente, al re-arrancar el
sistema y realizar el chequeo de consistencia del sistema de archivos tenemos las siguientes
posibilidades:
o El contenido de los dos bloques es igual Æ o bien no se llegó a hacer la escritura en ambos,
o bien dio tiempo a hacerla en ambos Æ El sistema de archivos está en estado consistente.
o Que sean diferentes. Quiere decir que puede que no le diera tiempo a completar la operación
de escritura:
x Si la primera operación se completó, y no la segunda, se reemplaza el contenido del
segundo bloque por el del primero.
x Si la primera operación se inició pero no se completó (asume que la segunda
operación no se llegó a iniciar), se copia el segundo bloque en el primero.
De este modo se garantiza que una operación de escritura en el almacenamiento estable, o
bien tiene éxito, o bien no cambia nada.

Bibliografía
• Silberschaz-Galvin, “Sistemas Operativos, 5ª Edición”, Ed. Pearson.
• William Stallings, “Sistemas Operativos, 4ª Edición”, Prentice Hall.

  Página 4 de 4  05/05/2008 12:01  

También podría gustarte