GESTION DE E/S Y PLANIFICACIÓN DE
DISCOS
PRINCIPIO DE SOFTWARE DE DISCO
DMA – ACCESO DIRECTO A MEMORIA
SINCRONIZACION ENTRE CPU Y
PERIFÉRICOS
INTRODUCCIÓN
Analizar el desempeño de un sistema de E/S resulta más complejo que el propio rendimiento del procesador, esto se debe a la gran variedad de dispositivos de E/S que hay y a las aplicaciones de los mismos; haciéndose difícil hallar una solución gral. y consistente.
El tema a desarrollar trata sobre el estudio de los dispositivos de E/S y su organización de acuerdo a su funcionamiento, como base de los S.O.; profundizando ciertos aspectos como el diseño de los mismos, atendiendo a: sus objetivos y la forma de estructurar las funciones de E/S.
Interesan también el uso de BUFFERS (almacenamiento intermedio), utilizado para equiparar las velocidades intermedias del sistema informatico y la de los dispositivos de E/S, HARDWARE afectados y la sincronización de operaciones entre los mismos, todo ello monitoreado por SOFTWARE adecuados.
Por otra parte, se analiza también el impacto de los discos en el rendimiento del sistema y porque es la forma de E/S más importante, se divisara que hay dos métodos mas usados en el rendimiento de E/S a discos, la PLANIFICACIÓN y la CACHE DE DISCO, se comenzara por desarrollar un modelo de rendimiento de E/S de los discos y se examinaran varias técnicas aplicadas para mejorar el rendimiento.
Finalmente, se realiza una comparación de cómo los sistemas vigentes actualmente en el mercado (Windows y unix) manejan sus accesos a la información y que políticas implementan en la organización de sus dispositivos de E/S, en particular los discos.
Las
unidades de E/S constan de dos elementos:
MECÁNICO:
denominado “DISPOSITIVO DE E/S”.
ELECTRÓNICO: denominado “CONTROLADORES”.
Los
dispositivos de E/S que se conectan al ordenador se clasifican en:
BLOQUE:
La
información se almacena en bloques, esos bloques son de tamaño fijo. Donde cada
bloque tiene una dirección que lo identifica. Se puede leer o escribir en un
bloque independiente de los demás.
Por ejemplo:
disquete, CD, DVD, disco duro.
CARÁCTER: La información que se generan o
reciben son flujos de caracteres (no
bloques). Accede a los datos en secuencia: o sea, para acceder a
determinados datos, la lectura y escritura se debe hacer seguido de los datos
anteriores.
Por ejemplo:
teclado, pantalla, cinta, ratones, interfaz de comunicación.
La línea de separación no es rígida, hay
dispositivos que pueden ser del tipo bloque (cintas Magnéticas) aunque son
considerados del tipo carácter.
Con esta clasificación, un
dispositivo que está fuera de ellas, el “RELOJ”, no es orientado ni a bloque ni
de carácter. Si es un dispositivo especial, ya que lo único que hace es generar
interrupciones.
Otros aspectos importantes que
hacen la diferencia entre dispositivos son:
Comportamiento: entrada, salida,
almacenamiento.
Tasa
de transferencia: tasa de peak de transferencia
entre dispositivos y memoria.
El siguiente cuadro hace referencia, a las grandes diferencias entre las clases de dispositivos:
|
DISPOSITIVO |
COMPORTAMIENTO |
CLASIFICACION |
TASA KB/SEG. |
|
TECLADO |
Entrada |
Carácter |
0,01 |
|
MOUSE |
" |
" |
0,02 |
|
SCANNER |
" |
" |
400 |
|
VOS (Salida) |
Salida |
" |
0,6 |
|
IMPRESORA (Línea) |
" |
" |
1,0 |
|
IMPRESORA (Láser) |
" |
" |
200 |
|
MODEM |
Entrada / salida |
" |
2,0-8,0 |
|
RED LAN |
" |
" |
500-6000 |
|
FLOPPY |
Almacenamiento |
Bloque |
100 |
|
CD |
" |
" |
1000 |
|
CINTA MAGNETICA |
" |
" |
2000 |
|
DISCO MAGNETICO |
" |
" |
2000-10000 |
Existen
otros factores que hacen a su distinción:
UNIDADES DE CONTROL
REPRESENTACIÓN DE DATOS
CONDICIÓN DE ERROR
DIRECCIONAMIENTO
El direccionamiento abarca en general:
Es donde el ordenador guarda los datos que esta utilizando en el momento presente, a diferencia de los discos, además estas es mas rápida y se borra al apagar el ordenador. La cantidad necesaria depende del uso que se le dé. Un aumento de RAM aumentara el rendimiento solo si había escasez. La RAM vacía no sirve de nada.
Es el cerebro del ordenador, Es un chip que suele tener forma de cuadrado o rectángulo negro, y van o vienen sobre un elemento llamado zócalo. A veces al micro se le denomina “la CPU”, su velocidad se mide en megahercios.
Un MODEM es un acrónimo de MOdulador-DEModulador; es decir que es un dispositivo que transforma las señales digitales del ordenador, en señal telefónica analógica y viceversa.
La velocidad es el mejor parámetro para definir a un MODEM, las cifras de medición son en bits por segundo.
Al otro lado de la línea debe existir un MODEM que sea de la misma
cantidad de bits por segundo, bps., y además del mismo tipo.
La línea telefónica debe ser de alta calidad.
Es el periférico que el ordenador utiliza para presentar información impresa en papel. Las primeras impresoras nacieron muchos años antes que el PC e incluso antes que los monitores.
La resolución, probablemente sea el parámetro que mejor define a una impresora, esta es la mejor o peor calidad de imagen que se pueda obtener con la impresora, medida en numero de puntos individuales que es capaz de dibujar una impresora.
Es una pequeña cantidad de memoria que tiene todas las impresoras modernas para almacenar parte de la información que les va proporcionando el ordenador.
BIOS: “Basic input-output System”, se encarga de realizar las funciones básicas de manejo y configuración del ordenador.
Las BIOS se implementan en memoria. Pero además debe mantenerse cuando se apague el ordenador; en realidad estas memorias si se borran al faltarles la electricidad.
En las placas base modernas se utilizan los FLASH ROM , porque tiene la gran ventaja de que pueden ser actualizados por el usuario mediante un simple programa software, mientras que los EEPROM(más antiguos), requieren ser retirados e introducidos en un aparato especial para ser reescritos.
Es la forma en que los ordenadores están unidos unos a otros y depende, entre otros factores, de si se trata de una red de cable coaxial o de un par trenzado.
Una red de cable coaxial es una línea, una cadena de ordenadores unidos a un único cable, mediante unas piezas en forma de “T”, que salen de este. Si el cable se rompe se interrumpe la comunicación en toda la red.
Una red de cable de par trenado es una estrella cuyo centro es el hub, del cual parte un cable para cada ordenador. Cuando uno de estos cables se rompe la comunicación solo queda interrumpida entre ese ordenador y la red, no afectando al resto.
Los
CONTROLADORES DE DISPOSITIVOS (también llamados adaptadores de dispositivos)
son la parte electrónica de los periféricos, el cual puede tener la forma de
una tarjeta o un circuito impreso integrado a la tarjeta maestra de la computadora.
Por ejemplo, existen controladores de discos que se venden por separado y que
se insertan en una ranura de la computadora, o existen fabricantes de
computadoras que integran esa funcionalidad en la misma tarjeta en que viene la
unidad central de procesamiento (tarjeta maestra).
Los controladores de dispositivos generalmente trabajan con voltajes de 5 y 12 volts con el dispositivo propiamente, y con la computadora a través de interrupciones. Estas interrupciones viajan por el 'BUS' de la computadora y son recibidos por el CPU el cual a su vez pondrá en ejecución algún programa que sabrá qué hacer con esa señal. A ese programa se le llama 'MANEJADOR DE DISPOSITO' (device driver). Algunas veces el mismo controlador contiene un pequeño programa en una memoria de solo lectura o en memoria de acceso aleatoria no volátil y re-escribible que interactúa con el correspondiente manejador en la computadora. La siguiente figura muestra un esquema simple de dispositivos orientados a bloques y otros a caracteres.

Por
ejemplo, la terminal (CRT) tiene un 'chip' que se encarga de enviar cadenas
de bits por medio de un cable serial que a su vez son recibidos por un controlador
de puerto serial en la computadora. Este 'CHIP' también se encarga de leer
secuencias de bits que agrupa para su despliegue en la pantalla o para ejecutar
algunas funciones de control. Lo importante en todos estos dispositivos es que
se debe ejercer un mecanismo para sincronizar el envío y llegada de datos de
manera concurrente.
Para
intercambiar datos o señales entre la computadora y los controladores, muchas
veces se usan registros o secciones predefinidas de la memoria de la
computadora. A este esquema se le llama 'MANEJO DE ENTRADA - SALIDA
MAPEADO POR MEMORIA' (memory mapped I/O). Por ejemplo, para una
IBM PC se muestran los vectores de interrupción y las direcciones para la
entrada -salida.
CONTROLADOR |
DIRECCIÓN(HEX) |
VECTOR DE INTERRUPCIÓN |
RELOJ |
040 - 043 |
8 |
TECLADO |
060-063 |
9 |
DISCO DURO |
320-32F |
13 |
IMPRESORA |
378-37F |
15 |
MONITOR MONO |
380-3BF |
- |
MONITOR COLOR |
3D0-3DF |
- |
DISCO FLEXIBLE |
3F0-3F7 |
14 |
Los objetivos más importantes del software de E/S son:
Ocultar la complejidad del hardware a los procesos que se
ejecutan por encima del sistema
operativo.
Presentar una interfaz de E/S
sencilla.
Para conseguir estos objetivos se estructura el software de E/S en capas, de forma que las capas inferiores ocultan la complejidad del hardware a las capas superiores y éstos se encargan de conseguir una interfaz sencilla.
|
Soft. de E/S a nivel de usuario |
|
Soft. de E/S independiente del dispositivo |
|
Manejadores de Dispositivos (driver) |
|
Manejadores de Interrupciones |
|
HARDWARE |
Soft. de
E/S
MANEJADORES DE INTERRUPCIONES: Su principal objetivo es que el
usuario no debe darse cuenta de los manejos de bajo nivel para los casos en que
el dispositivo está ocupado y se debe suspender el proceso o sincronizar
algunas tareas.
MANEJADORES DE DISPOSITIVOS: El driver es el software que se
comunica con el hardware de E/S. Existe un driver para cada controlador que
tengamos conectado a la computadora.
El driver:
Es el único software que
conoce las características del dispositivo.
Programa al controlador
imprimiendo en sus registros.
Se encarga de traducir peticiones
del nivel superior
Encola las peticiones que van
llegando para que el driver las trate más tarde.
Por ejemplo, si el sistema tiene tipos diferentes de discos duros, al usuario las diferencias técnicas entre ellos no le deben importar, y los drivers le deben ofrecer el mismo conjunto de rutinas para leer y escribir datos.
SOFTWARE
DE E/S INDEPENDIENTE DEL DISPOSITIVO: En esta capa se agrupa la mayor parte
del software de E/S. Las funciones básicas de este nivel son:
Presentar una
interfaz uniforme a los programas de usuario; la misma operación de
entrada o de salida independientemente del dispositivo al que se desea acceder.
Identificar al
dispositivo a partir del nombre simbólico; asignándoles nombres a los
dispositivos.
Protección de los
dispositivos; debe disponer de un sistema que permita determinar quien
tiene acceso a qué dispositivos.
Tamaño de bloque;
a los dispositivos de bloque los trata como si todos tuvieran el mismo
tamaño de bloque (conocido como bloque lógico). El driver de cada uno de ellos
es el encargado de comprobar si a cada uno de ellos le corresponde 1 o más
sectores del disco.
Almacenamiento
Intermedio; Si se solicita información de un bloque que está cargado en
el caché su lectura no se ordena al driver pero si no está cargado en caché se
ordena la lectura del bloque completo. (lecturas por adelantado).
SOFTWARE
DE E/S EN ESPACIO DE USUARIO: Una porción pequeña del software
de E/S se ejecuta a nivel de usuario. Consiste en bibliotecas que se enlazan
con los programas de usuario. También el sistema de spooling o áreas de trabajo
encolados, permite conseguir una explotación concurrente de dispositivos de
acceso exclusivo, como por ejemplo la impresora.
Cuando la unidad de disco está operando, el disco gira a una velocidad constante. Para leer o escribir, la cabeza debe ponerse en la pista deseada, al comienzo del sector pertinente. Si el sistema es de cabezas móviles hay que mover la cabeza para elegir la pista. Si el sistema es de cabezas fijas, habrá que seleccionar electrónicamente una de ellas.
En un sistema de cabezas móviles, el tiempo que se tarda en ubicar la cabeza en la pista de llama tiempo de búsqueda. En cualquier caso, una vez que se ha seleccionado la pista, el controlador del disco esperará hasta que el sector apropiado se alinee con la cabeza en su rotación. El tiempo que tarda el comienzo del sector en llegar hasta la cabeza se conoce como retardo de giro o latencia de giro. La suma del tiempo de búsqueda y el retardo de giro es el tiempo de acceso, es decir, el tiempo que se tarda en llegar a la posición de lectura o escritura. Una vez que la cabeza está ubicada, se puede llevar a cabo la operación de lectura o escritura a medida que el sector se mueve bajo la cabeza; esta es la parte de transferencia real de datos de la operación.
El objetivo es reducir los tiempos de acceso en la lectura o escritura de los datos. Además del tiempo de acceso y del tiempo de transferencia, existen algunos retrasos en las colas que normalmente tienen asociada una operación de E/S a disco. Cuando un proceso emite una solicitud de E/S, primero debe esperar en una cola a que el dispositivo esté disponible. En ese momento, el dispositivo queda asignado al proceso. Si el dispositivo comparte un único canal de E/S o un conjunto de canales con otras unidades del disco, puede producirse una espera adicional hasta que el canal esté disponible. En ese punto se realizará la búsqueda con que comienza el acceso al disco.
|
NOMBRE |
DESCRIPCION |
COMENTARIOS |
Selección en función del demandante
|
||
|
RSS |
Planificación
aleatoria. |
Para análisis y simulación. |
|
FIFO |
Primero en entrar, primero en salir. |
El mas justo de todos. |
|
PRI |
Prioridad del proceso. |
El control se lleva fuera de la gestión de la cola
del disco. |
|
LIFO |
Último en entrar último en salir. |
Maximiza uso de recursos y cercanías. |
Selección en función del elemento solicitado
|
||
|
SSTF |
Primero
el mas corto. |
Gran aprovechamiento y colas pequeñas. |
|
SCAN |
Recorre el disco de un lado a otro. |
Mejor distribución del servicio. |
|
C-SCAN |
Recorre el disco en un solo sentido. |
Menor variabilidad en el servicio. |
|
SCAN de
N-pasos |
Scan de N registros a la vez. |
Garantía de servicio. |
|
F-SCAN |
Scan de N pasos, con N = longitud de la cola al
comienzo del ciclo del Scan. |
Sensible a la carga. |
Con el uso de múltiples discos,
existen varias formas que se pueden organizar los datos. Dificultando el desarrollo
de esquemas de bases de datos que
se pueden utilizar en múltiples plataformas y S.O. La industria a acordado un sistema estándar
para el diseño de base de datos sobre múltiples discos, llamado RAID (Vector Redundante de Discos Independientes),
este esquema consta de siete niveles que distinguen distintas arquitecturas
de diseño, compartiendo tres características comunes:
RAID es un conjunto de unidades de disco físicos vistas por el
S.O. como una sola unidad lógica.
Los datos están distribuidos a través de las unidades físicas del
vector.
La capacidad del disco redundante se utiliza para almacenar
información de paridad, que garantiza la recuperabilidad de datos en caso de
fallo del disco.
La estrategia RAID reemplaza unidades de disco de gran capacidad por múltiples discos de
menor capacidad y distribuye los datos que luego son accedidos simultáneamente
a ellos por múltiples discos, esto mejora el rendimiento de las E/S y aumenta
su capacidad. Para compensar la disminución de la fiabilidad, RAID hace uso de la información de paridad almacenada,
que permite la recuperación de los datos perdidos como consecuencia de un fallo
del disco.
NIVELES RAID
NIVEL
0: Los usuarios y los datos del sistema están distribuidos a lo largo
de todo el vector de discos, este esta dividido en bandas que pueden ser
bloques físicos, sectores o alguna otra unidad. Al conjunto de bandas consecutivas
lógicamente, se lo denomina franja. Presenta la ventaja de que si una única
solicitud de E/S esta formada por múltiples bandas contiguas; estas podrán
gestionarse en paralelo reduciendo la transferencia de E/S.
NIVEL
1: La redundancia de los datos se consigue duplicando los mismos, los
datos son divididos de la misma forma que en RAID0; pero cada banda se
corresponde con dos disco físicos independientes.
Aspectos
positivos:
Una
solicitud de lectura puede utilizar cualquiera de los dos discos que contienen
los datos solicitados y que suponga menor tiempo sumando el de búsqueda y la
latencia de giro.
Una
solicitud de escritura requiere la actualización de las bandas correspondientes
a ambos discos, solo se puede hacer en paralelo. Cuando se actualiza una sola
banda, el software de gestión del vector de disco primero debe calcular y
actualizar los bits de paridad y luego la banda real.
Cuando
una unidad falla, los datos todavía están disponibles desde la segunda unidad.
Desventaja, su COSTE requiere dos veces el espacio de disco del disco lógico que soporta.
Puede conseguir altas tasas de solicitudes de E/S si las mismas son de lectura, cuyo rendimiento puede ser el doble que en RAID 0, pero si las solicitudes son de escritura su rendimiento talvez no será el mismo.
NIVEL 2: Este utiliza una
técnica de acceso paralelo. Las bandas de este nivel son muy pequeñas,
considerándolo como un único byte o palabra. Se utiliza un código HAMMING para
corregir errores de un solo bit y la detección de errores de dos bit.
Cuando se requiere una solicitud de lectura todos los discos son accedidos simultáneamente, ocurriendo lo mismo con una solicitud de escritura y n este caso también son accedidos todos los discos de paridad.
RAID 2 solo será eficiente cuando se produzcan muchos errores en el disco.
NIVEL 3: Este requiere solo un
disco redundante, emplea acceso paralelo. Cuando ha ocurrido algún error, se
calcula un solo bit de paridad para el conjunto de bits en la misma posición de
todos los discos de datos.
En el caso de un fallo de disco, se accede a la unidad de paridad y se reconstruyen los datos desde los dispositivos restantes.
Debido a que los datos están divididos en pequeñas bandas, RAID 3 puede conseguir una tasa de transferencia de datos muy alta. Cualquier solicitud de E/S involucrara una transferencia de datos en paralelo desde todos los discos de datos solo se puede ejecutar una solicitud de E/S. Disminuyendo el rendimiento en un entornó orientado a transacciones.
NIVEL 4: Utiliza una técnica de
acceso independiente, por lo que se puede satisfacer las solicitudes de E/S
individuales. Son mas apropiados para aplicaciones que requieren tasas altas de
solicitudes de E/S, y son relativamente menos apropiados para aplicaciones que
requieren tasas altas de transferencias de datos
NIVEL 5: Al igual que el RAID 4
se diferencia en la distribución de las bandas de pariedad a través de todos los
discos, por lo tanto evita el potencial cuello de botella en la E/S del sistema
RAID 4 que tiene solo un disco de paridad.
NIVEL 6: Se realizan dos
cálculos distintos de pariedad, y se almacenan en bloques independientes de
diferente discos, la ventaja es la disponibilidad de datos son extremadamente
alta. Por otro lado sufre una importante penalización de escritura, porque cada
escritura afecta a dos bloques de pariedad.
El tiempo que se tarda desde que el Driver de disco programa al controlador para realizar la lectura de un sector, hasta que la información de este esta en la memoria:
T. POSICIONAMIENTO + T. LATENCIA + T.
TRANSFERENCIA (buffer-controlador) + T. CHECKSUM + T. TRANSFERENCIA
(controlador-memoria)
Normalmente el tiempo de CHECKSUM es despreciable. En algunos casos puede existir tiempos añadidos si la información del disco esta cifrada y el algoritmo de cifrado/ descifrado lo incrementa el controlador, después de realizar el CHECKSUM el controlador deberá descifrar los datos.
Características genéricas de los driver de disco son:
A: MEJORA EL TIEMPO DE ACCESO.
B: TRATAMIENTO DE ERRORES.
A:
MEJORA EL TIEMPO DE ACCESO
De estos tres tiempos el mas significativo es el de posicionamiento. Cuando el driver permite ir almacenando peticiones pendientes mientras se trata la actual, se intenta reducir el tiempo medio de posicionamiento aplicando un algoritmo que decida que petición de las pendientes atender primero.
Los discos están sometidos a una gran variedad de errores. Cuando se producen el controlador deberá avisar al driver para que tome la decisión pertinente. Los errores mas comunes son:
Errores
de programación: El driver le indica al controlador que una pista,
cilindro, sector que no existe o una dirección de memoria invalida. El
controlador al detectar el error lo trasmite al driver. Este avisa al SW E/S
independiente.
Errores
de posicionamiento: Este error se produce por errores mecánicos del
brazo de lectura / escritura.
El controlador de disco mantiene internamente cual es la posición del brazo de lectura
/ escritura en cada momento.
Para mover el brazo a otro cilindro manda un pulso a un motor por cada cilindro que quiera atravesar. Cuando llega al cilindro destino, lee el valor del cilindro actual (se grabo al principio de la pista al formatear el disco). Si la posición actual no coincide con la que se esperaba se produce un error de posicionamiento, este error suele corregirse recalibrando el brazo (lo manda al cilindro 0).
Esta acción puede realizarla el controlador o, si este no puede, el driver de disco (comando RECALIBRABLE)
Errores
en el controlador de disco: puede darse la situación que el controlador
se niegue a aceptar comandos del driver, en este caso el driver debe recetar el
controlador.
El acceso directo a memoria se inventó con el propósito de liberar al CPU de la carga de atender a algunos controladores de dispositivos, adecuada para grandes transferencias de datos. El controlador del periférico se comunica directamente con la memoria, sin intervención de al CPU. Se necesita un componente especial que supervise la transferencia, el encargado de esto es el controlador del DMA .
El controlador DMA contiene un registro de dirección, un registro de datos, un contador de palabras y una lógica de control.
REGISTRO DE DIRECCIÓN: especifica la
posición de memoria a usar como fuente o destino del dato a transferir
REGISTRO DE DATOS: contiene el dato que
esta en ruta entre la memoria y los periféricos
CONTADOR DE PALABRAS :
número de palabras de datos que quedan para ser transferidos en la operación de
entrada / salida.
LÓGICA DE CONTROL: se
encarga de solicitar los buses a la CPU o provocar una interrupción. Tanto el
registro de dirección como el contador de palabras se configuran como puertos
de salida configurables tal que puedan ser inicializados por programas
ejecutables en la CPU.
Cuando El periférico solicite o produzca un dato en la interfaz el controlador del DMA activa la línea de petición del DMA, la CPU responde a esta petición dejando los buses libres para que puedan ser usados, el controlador del DMA asume el control de los buses y procede a transferir datos directamente entre periférico y memoria, se ejecuta una rutina de inicialización, el registro de dirección se carga con la dirección de comienzo de la zona de memoria afectada por la transferencia, el registro contador de palabras se carga con el numero de palabras a ser transferidos, se van actualizando los registros según avanza la trasferencia, la cual finaliza cuando el contador de palabras se pone a cero. El controlador DMA indica el fin de la tarea enviando una petición de interrupción a la CPU, la CPU solo interviene al principio y al final de la transferencia
Existen varias formas de realizar el DMA según la estrategia de control de los buses que exista por parte del controlador del DMA, por ráfagas, por robo de ciclo, transparente y por demanda.
POR RÁFAGAS: el
controlador del DMA no libera los
buses hasta que acaba la transferencia de un bloque completo de datos, se obtiene
una alta velocidad en la transferencia, el procesador permanece inactivo largos
periodos de tiempo, pues no pueden obtenerse instrucciones de memoria mientras se produce la
transferencia.
POR ROBO DE CICLO: dispone
de datos a transferir toma el control de los buses durante un ciclo de CPU en
el que transmite una palabra, al transmitir la palabra cede los buses a la CPU
que continua con su actividad normal hasta un nuevo robo, los buses se reparten
entre controlador DMA y CPU, se
alcanza menor velocidad de transferencia, la CPU mantiene su actividad a menor
velocidad evitando periodos largos de tiempo inactiva.
TRANSPARENTE: similar a robo de ciclo
pero el controlador del DMA roba los
buses a la CPU los ciclos en los que esta no los utiliza ( Por ejemplo:
fase de decodificación de una instrucción, no disminuye la velocidad de
procesamiento de la CPU, no llega a alcanzarse una buena velocidad de
transferencia.
POR DEMANDA: cuando el controlador DMA dispone de datos a transferir,
solicita el control de los buses y los mantiene hasta que termina de enviar
toda la información, alta velocidad de transferencia, baja velocidad de
procesamiento de CPU.
SINCRONIZACIÓN ENTRE CPU Y PERIFÉRICOS
E/S DIRECTA
PERIFÉRICOS
PASIVOS
Siempre
preparados
E/S SINCRONIZADA
PERIFÉRICOS
ACTIVOS
No
siempre preparados
MECANISMOS BÁSICOS DE SINCRONIZACIÓN
Interrupciones
Iniciativa
del periférico
Consulta
de estado
Iniciativa
de la CPU
E/S SINCRONIZADA
¿Cómo sabe la CPU si un periférico tiene un dato para transmitir o esta preparado para recibir?
POR
CONSULTA DE ESTADO
La
interfaz de E/S tiene un BIT de estado que indica si el periférico esta
preparado para mandar / recibir datos.
La
CPU debe consultar ese BIT y cuando esta activo transmitir el dato.
Problemas:
Sistema lento y monopoliza la CPU.
POR
INTERRUPCIONES
El
interfaz interrumpirá al procesador cuando el periférico este preparado para
mandar / recibir datos.
CONSULTA DE ESTADO
La iniciativa la lleva la CPU.
La CPU tiene todo el control y realiza todas las acciones.
La CPU no sabe cuando un periférico esta preparado para enviar o
recibir datos, y ejecuta continuamente instrucciones para comprobarlo.
Mientras realiza consultas, la CPU no realiza otro trabajo
El periférico puede estar preparado, y sin embargo debe esperar al
próximo periodo de consulta.
INTERRUPCIONES
El periférico lleva la iniciativa.
Una interrupción de E/S es asíncrona con respecto a la ejecución
de las instrucciones.
No
esta asociada a ninguna instrucción.
El periférico estará conectado a una línea de interrupciones del
procesador.
Se necesita especificar el identificador del periférico que
realizara la interrupción.
Es habitual que haya interrupciones más urgentes que otras, por lo
que se requiere algún sistema de prioridades.
Se requiere hardware especial (causar y detectar interrupción).
Proceso
de Interrupción
Activación,
por parte del periférico, de la línea de interrupción.
Suspensión
de la ejecución del programa en curso:
Termina
la instrucción en curso.
Almacenamiento
del estado del procesador (PC y otros reg.).
Identificación
de la fuente de la interrupción.
Carga
y ejecución de la rutina de interrupción.
Recuperación
del estado anterior a la interrupción.
Reanulación
de la ejecución del programa interrumpido.
INTERRUPCIONES
– CONSULTA DE ESTADO
Consulta
de estado más lenta que interrupciones.
Se
consume tiempo en realizar las consultas.
Los
periféricos deben esperar a que se realice la consulta.
Un
dispositivo puede estar listo para transmitir datos y debe esperarse al próximo
Periodo de consulta.
Consulta
de estado más rápida que interrupciones
No
hay que salvar registros ( o al menos no tantos).
|
|
E/S POR CONSULTA DE ESTADO |
E/S CONTROLADA POR INTERRUPC. |
ACC. A MEMORIA |
|
INICIACIÓN OP. E/S |
CPU |
Periférico |
Periférico |
|
TRANSFERENCIA |
" |
CPU |
CDMA |
|
TERMINACIÓN OP. E/S |
" |
" |
" |
|
COMPLEJIDAD |
La menor |
Baja |
Moderada |
|
VELOCIDAD RESP. A UNA PETICIÓN E/S |
Lenta |
Rápida |
La más rápida |
|
VELOCIDAD DE TRANSF. |
Moderada |
Moderada |
Alta |
Un proceso de
usuario desea leer bloques de datos; serán leídos en un área de datos dentro
del espacio de direcciones del proceso usuario, en una ubicación virtual. La
forma más sencilla de hacerlo sería emitir una orden de E/S y esperar que los datos estén disponibles.
Hay 2 problemas:
1º) El programa se queda colgado esperando que la
operación de E/S termine.
2º) Este método de E/S interfiere en las decisiones de
intercambio.
Además existe el riesgo de interbloqueo con un solo procesador, para evitar la carga e incapacidad conviene transferir la entrada por adelantado a las peticiones y realizar las transferencias de salida un tiempo después de hacer la petición. Esta técnica se conoce con el nombre de almacenamiento intermedio (buffering). Para considerar los distintos esquemas de almacenamiento intermedio es importante hacer una distinción entre dos tipos de dispositivos:
Dispositivos
orientados a bloque
Dispositivos
orientados a flujo.
Los distintos esquemas son:
Memoria
Intermedia Sencilla: Cuando un proceso de usuario realiza una solicitud de
E/S, el S.O. le asigna a la operación un espacio en la parte del sistema en la
memoria principal.
Este método proporciona una mayor velocidad en comparación con la ausencia de almacenamiento intermedio en el sistema (Por ej., para casos en que, el acceso a los datos se realizan en forma secuencial).
Memoria Intermedia Doble: Se
puede realizar una mejora a la memoria intermedia sencilla asignando a la
operación dos almacenes intermedias del sistema. De esta forma, un proceso
puede transferir datos hacia (o desde) una memoria intermedia mientras que el
S.O. vacía (o rellena) el otro.
Memoria
Intermedia Circular: Para un conjunto de memorias intermedias (mas de dos)
se conoce con el nombre de memoria intermedia circular. Cada memoria intermedia
individual constituye una unidad de memoria intermedia circular (Por ej. Se
utiliza cuando el proceso realiza ráfagas de E/S).
S.O Proceso
de usuario
Sin
almacenamiento intermedio


Dispositivo
de E/S Entrar

Almacenamiento
intermedio sencillo
Dispositivo
de E/S
![]()
Entrar
![]()

Almacenamiento
intermedio doble
![]()
![]()
![]()
![]()
Entrar
Mover
![]()
Dispositivo
de E/S
Almacenamiento
intermedio circular
![]()
![]()


![]()
Dispositivo
de E/S ![]()
![]()
Entrar Mover
![]()
En UNIX, cada dispositivo de E/S tiene asociado un archivo especial, gestionado por el sistema de archivos; así se ofrece una interfaz uniforme y bien definida con los usuarios y los procesos. En la Figura 1 se puede observar la estructura lógica del sistema de E/S.
En UNIX hay dos tipos de E/S: amortiguada y no amortiguada. La E/S amortiguada aprovecha los buffers del sistema, mientras que la no amortiguada utiliza DMA, realizando directamente la transferencia entre el módulo de E/S y la zona de E/S del proceso. Con E/S amortiguada se puede usar dos clases de memorias intermedias: sistemas de memoria cache y colas de caracteres.
CACHE
DE BUFFER
La cache de buffer en UNIX es esencialmente una cache de disco. Como la cache de buffer y la zona de E/S del proceso residen ambas en la memoria principal, se usará DMA para llevar a cabo una copia de memoria a memoria. Esta acción no gastará ningún ciclo del procesador, pero consumirá ciclos del bus.
Cuando se hace una referencia a un número de bloque físico de un dispositivo en particular, el sistema operativo comprueba primero si el bloque está en el buffer de la cache. Para minimizar el tiempo de búsqueda, la lista de dispositivos se organiza como una tabla de dispersión.
Después de que se haya asignado un buffer a un bloque de disco, no podrá ser usado por otro bloque hasta que todos los demás buffers se hayan usado.
COLA
DE CARACTERES
El dispositivo de E/S escribe en una cola de caracteres, de la que lee el proceso o, el proceso escribe y el dispositivo lee de ella. De esta manera, las colas de caracteres solo podrán ser leídas una sola vez; a medida que se lee cada carácter, éste es destruido. Este mecanismo es distinto al del buffer de la cache, donde se puede leer varias veces.
E/S
NO AMORTIGUADA
Es el método más rápido de realizar E/S para un proceso. Los procesos que realizan E/S no amortiguada quedan bloqueados en la memoria principal y no pueden ser expulsados al disco. Esta condición reduce las oportunidades de expulsión inmovilizando parte de la memoria principal y reduciendo, por lo tanto, el rendimiento global del sistema. Además, el dispositivo de E/S se paraliza junto al procesador mientras dure la transferencia, quedando inasequible para otros procesos.
DISPOSITIVOS
UNIX
UNIX reconoce cinco clases de dispositivos: Unidades de disco, Unidades de cinta, Terminales, Líneas de comunicación, Impresoras.
El gestor de e/s es el responsable de todas las operaciones e/s para el sistema operativo y ofrece una interfaz uniforme a la que todos los tipos de controladores pueden llamar.
MODULOS BÁSICOS DE E/S.
GESTOR DE CACHE:
Este gestiona por completo el subsistema de E/S y ofrece un servicio de cache
en la memoria principal para todos los sistemas de archivos y componentes de
red. El tamaño de la cache se puede aumentar y disminuir debido a una actividad
especial como la variada cantidad de memoria física disponible.
El gestor de cache ofrece dos servicios para mejorar la manera global del rendimiento:
Escritura retardada: El
sistema actualiza los registros en la cache y no en el disco. Cuando la demanda
del procesador es baja, el gestor del cache escribe los cambio en el disco. Si
un bloque particular de la cache se actualiza mientras tanto, se produce un ahorro en la red.
Confirmación
retardada: en este el sistema de caches toma la información comprometida y después la escribe en el
sistema lógico de archivos para procesos antecedentes.
CONTROLADOR DEL SISTEMA DE ARCHIVOS: El gestor de e/s trata al
controlador del sistema de archivos como otra unidad de dispositivo y encamina
los mensajes para ciertos volúmenes a controladores de software adecuados para
ese adaptador de dispositivo.
CONTROLADORES
DE RED: W2K incluye
una red integrada con capacidad y apoyo para aplicaciones distribuidas.
CONTROLADORES
DE DISPOSITIVOS DE HARDWARE: Estos acceden a los registros hardware de
los dispositivos periféricos a través de puntos de entradas en las bibliotecas
de enlace dinámico del ejecutor de W2K , considerando que el código fuente de
los controladores de los dispositivos de W2K es transferible entre los
distintos tipos de procesadores.
E/S
ASINCRONA Y SINCRONÍA
W2K ofrece dos modos de operación de E/S: ASÍNCRONO Y SINCRONO.
El modo ASÍNCRONO se utiliza para optimizar el rendimiento de una aplicación la cual inicia
una operación de E/S y entonces puede continuar ejecutando mientras la solicitud de E/S se completa.
Con E/S SINCRONÍA, la aplicación se bloquea hasta que finaliza la operación de E/S.
La E/S ASINCRONA es más eficiente porque permite a el hilo continuar su ejecución, mientras el gestor de E/S pone en cola la operación y la realiza mas tarde, mientras que la aplicación que llama operación de E/S asíncrona necesita determinar de algún modo cuando finaliza la operación.
W2K ofrece cuatro técnicas para señalizar la finalización de E/S:
Señalizar un objeto dispositivo del núcleo: se activa un indicador
asociado a un objeto dispositivo cuando una operación sobre ese objeto
finaliza. El hilo que llama a la operación de E/S puede continuar la ejecución
hasta que alcanza un punto donde debe parar hasta que la operación de E/S
termine. En ese punto el hilo puede esperar hasta que termine la operación y
entonces continuar.
Señalizar un objeto suceso del núcleo: esta técnica permite
múltiples solicitudes de E/S simultaneas contra un solo dispositivo o archivo.
El hilo crea un suceso para cada solicitud luego el hilo puede esperar a una
sola de estas solicitudes o a todo el conjunto de solicitudes.
E/S alterable: esta técnica hace uso de una cola asociada a un hilo,
conocida como cola llamada a procedimiento asíncrono, en donde el hilo hace
solicitudes de E/S y el gestor de E/S
sitúa los resultados de estas solicitudes en la cola APC de los hilos
llamadores.
Puertos de finalización de E/S : esta técnica se usa
en w2k para optimizar el uso e hilos,
ósea que hay una reserva de hilos disponibles para su uso , así que no es
necesario crear un
nuevo
hilo para gestionar una nueva
solicitud.
SOFTWARE RAID
W2K soporta dos clases de configuraciones RAID
RAID DE HARDWARE: Disco
físico independiente combinado en uno o ms discos lógicos por medio del
controlador de disco o un hardware de armario de almacenamiento en disco. En este la interfaz del
controlador gestiona la creación y regeneración de la información redundante.
RAID POR
SOFTWARE:
Espacio de disco no contiguo combinado en una o más particiones lógicas por el
conductor de disco del software de tolerancia a fallos. Este implementa la
funcionalidad de RAID como parte del S.O. y se puede usar con cualquier
conjunto de varios discos.
Las principales características del sistema
operativo base de la tecnología.Net Enterprise Server es el siguiente:
FIABILIDAD, ofrece una
fiabilidad del 99.999, es decir menos de 6 minutos de parada al año.
ESCALABILIDAD, permite crear
Clusters de hasta 32 nodos admitiendo hasta 32 procesadores por servidor.
RENDIMIENTO,
la plataforma Windows 2000, junto con la familia de servidores Microsoft
dispone de los mejores registros en el ranking de rendimiento de transacciones
por minuto TPC (Transaction Processing Council).
COSTES,
los costes de las Sistemas informáticos basados en tecnología Microsoft son
mucho más bajos que cualquier otro en todos los aspectos (Personal técnico, hardware
necesario, desarrollo del proyecto, manejabilidad de los sistemas, soporte,
aceptabilidad por parte de los empleados, formación a empleados, tareas de
administración, tareas de actualización,...). Solicite información sobre la
metodología de análisis de viabilidad REJ( Justificación Económica Rápida).
MANEJABILIDAD
Y ACEPTACIÓN, es más fácil de implementar, administrar y usar, y
además tiene mayor grado de aceptación entre los empleados.
|
Requerimientos del Sistema |
|
|
Procesador |
133 MHz o CPU Pentium de mayor capacidad |
|
Memoria |
256 megabytes (MB) de RAM mínimo recomendado [128
MB mínimo soportado; 4 gigabytes (GB) Máximo] |
|
Disco Duro |
2 GB de disco duro con un mínimo de 1.0 GB de espacio
libre. (Se necesita este espacio libre en el disco duro si el sistema se
instala sobre una red) |
|
CPU |
Windows 2000 Server soporta hasta 4 CPUs en una
máquina |
PORTABILIDAD
FLEXIBILIDAD
ESCALABILIDAD
TRANSPARENCIA
PORTABILIDAD
No
deberían existir problemas de portabilidad vinculados a los mappers,
dado que justamente estos realizan conversiones entre formatos estándar. Donde
si existirán problemas relacionados a la portabilidad es en los dispositivos.
La idea claro está, es confinarlos a estos. ¿Cómo lograr este cometido? Nuestra solución se basa en
ver los dispositivos a través de un conjunto de interfaces bien definidas, que
deben ser usadas en el desarrollo de las aplicaciones. De esta forma la
aplicación debería funcionar independientemente de la implementación concreta
del dispositivo; dígase: "Funcionar en forma independiente de los detalles
específicos del ambiente", siempre y cuando existan implementaciones de
los dispositivos, compatibles con los detalles del caso.
FLEXIBILIDAD
Un sistema concebido hasta ahora como un par
de familias ortogonales y fuertemente jerarquizadas, es sin duda una excelente
solución si de crecer estamos hablando. Pensemos en el problema de incluir un
nuevo MAPPER para reconocer formato BMP. Esta tarea se limitaría a
agregar una hoja en el árbol de herencia, implementando los métodos definidos
en la interface correspondiente, sin tener que cuestionarse siquiera la
existencia de otros componentes del sistema.
ESCALABILIDAD.
En complemento resulta cómodo extender
mediante especializaciones la interface establecida en principio. Pensemos en BICOTIDEVICE,
la posibilidad de extender la interface para incluir elementos típicos de
visualización, o la de sobre-extenderlo para destacar características
particulares de la dimensión es un ejemplo del grado de escalabilidad
alcanzable.
TRANSPARENCIA
La posibilidad de resolver
los problemas a través de un pequeño grupo de interfaces abstractas, logra en sí
mismo el objetivo de transparencia.
ÍNDICE
INTRODUCCIÓN
DISPOSITIVOS DE E/S
DIRECCIONAMIENTO
CONTROLADORES
SOFTWARE DE E/S
PLANIFICACIÓN DE DISCO
SOFTWARE RAID
PRINCIPIO DE SOFTWARE DE DISCO
DMA – ACCESO DIRECTO A MEMORIA
SINCRONIZACION ENTRE CPU Y PERIFÉRICOS
ALMACENAMIENTO INTERMEDIO
E/S EN UNIX SVR4
E/S
WINDOWS 2000
EVALUACION I/O
![]()
Número de visitantes actuales disponible desde el 14/07/2002:
Autor: lrmdavid@exa.unne.edu.ar
Ó FACENA - http://exa.unne.edu.ar
Servicios WEB: webmaster@exa.unne.edu.ar