jueves, 10 de diciembre de 2009

UNIDAD 5

ADMINISTRACIÓN DE ENTRADA/SALIDA



5.1 PRINCIPIOS DE HARDWARE




Entenderemos por hardware de E/S como la programación de los dispositivos de entrada y salida.
Los dispositivos de E/S se dividen en dos categorías: dispositivos de bloque y dispositivos de caracteres. Los dispositivos de bloque transfieren la información en bloques direccionables de tamaño fijo. Los dispositivos de caracteres aceptan o entregan un flujo de caracteres sin importar la estructura.

5.1.1 DISPOSITIVOS DE I/O.

Podemos reunir en tres grandes grupos:
· Dispositivos de almacenamiento.
· Terminales.
· Comunicaciones.
A su vez los dispositivos se pueden clasificar, atendiendo al tipo de información que manejan y como lo hacen, los siguientes grupos:
Dirigidos a bloques. -Tratan la información en bloques de tamaño fijo. Su característica principal es que se puede leer cada bloque como una unidad independiente de las demás (por ejemplo los discos).
Dirigidos al carácter. - Entregan o aceptan cadenas de caracteres sin tener en cuenta ninguna estructura prefijada. No son direccionables ni pueden realizar operaciones de búsqueda (por ejemplo un terminal).
Dispositivos de almacenamiento.
Los dispositivos de almacenamiento son todos aquellos elementos informáticos que se utilizan para almcenar datos del ordenador de una manera temporal o permanente. Estos dispositivos graban la información en en cantidades fijas y con cierto formato conocido como: bloques de control, los cuales tienen una dirección única que identifica a cada bloque, razón por la cual son también llamados como dispositivos de bloque base

5.2 PRINCIPIOS DEL SOFTWARE


Un concepto importante es el de independencia del dispositivo.
Esto quiere decir que los archivos deben utilizarse de la misma manera independientemente de si están en un disco duro o en un disco flexible.

5.2.2 MANEJADOR DE INTERRUPCIONES

Aunque la entrada y salida programada a veces es útil en la mayoría de las operaciones de e/s las interrupciones son inevitables por lo molestas que sean, lo mejor es ocultarlas en las profundidades del sistema operativo, de modo que la parte de este ultimo que tiene conocimiento de ellas sea lo mas reducible posible. La mejor manera de manejar las interrupciones es hacer que el controlador que inicia una operación de E y salida se bloque hasta que la entrada y salida haya terminado y se presente la interrupción. Dicho controlador puede bloquearse ejecutando Down con un semáforo White con la variable de condición o reserve con un mensaje o algo similar.

5.2.3 MANEJADOR DE DISPOSITIVOS

Cada controlador tiene algunos registros que sirven para enviarle comandos al dispositivo o para indicar el estado de este o en ambas cosas.

5.2.4 SOFTWARE DE E/S INDEPENDIENTE DEL DISPOSITIVO

El proceso del sistema de archivo de minix contiene todo el código de E/S independiente del dispositivo.
La frontera exacta entre los controladores y el software independiente del dispositivo depende del sistema (y del dispositivo) porque algunas funciones que podrían efectuarse con la independencia del dispositivo en realidad podrían ejecutarse en controladores
Funciones que muestran la independencia:
· Interfaz uniforme para controladores de dispositivo
· Manejo de búferes
· Informe de errores
· Asignar y liberar dispositivos dedicados

Proveer un tamaño de bloqueo independiente de dispositivos

5.2.5 ESPACIO DEL USUARIO PARA SOFTWARE

La mayoría del software de e / s está dentro del S. O.
Una pequeña parte consta de bibliotecas ligadas entre sí con los programas del usuario. La biblioteca estándar de e / s contiene varios procedimientos relacionados con e / s y todos se ejecutan como parte de los programas del usuario. Otra categoría importante de software de e / s a nivel usuario es el sistema de spooling.
El spooling es una forma de trabajar con los dispositivos de e /s de uso exclusivo en un sistema de multiprogramación:
El ejemplo típico lo constituye la impresora de líneas.
Los procesos de usuario no abren el archivo correspondiente a la impresora.
Se crea un proceso especial, llamado demonio en algunos sistemas.
Se crea un directorio de spooling.

El spooling es una forma de trabajar con los dispositivos de e /s de uso exclusivo en un sistema de multiprogramación:

  • El ejemplo típico lo constituye la impresora de líneas.
  • Los procesos de usuario no abren el archivo correspondiente a la impresora.
  • Se crea un proceso especial, llamado demonio en algunos sistemas.
    Se crea un directorio de spooling.

5.3 DISCO RAM


La idea que ostenta un disco de RAM es simple. Un dispositivo de bloque es un medio de almacenamiento con dos comandos: la escritura de un bloque y la lectura de un bloque.
Al colocar el directorio raíz en al disco RAM, el único disco flexible puede montarse y desmontarse a voluntad, permitiendo que haya medios removibles. Al tener el dispositivo raíz en el disco de RAM el sistema se vuelve altamente flexible: cualquier combinación de discos flexibles y duros puede montarse en él.
Un disco RAM o unidad RAM es una unidad de disco que usa una zona de memoria RAM del sistema como almacenamiento secundario en lugar de un medio magnético (como los discos duros y las disqueteras) o memoria flash, implementada como un controlador de dispositivo más. El tiempo de acceso mejora drásticamente, debido a que la memoria RAM es varios órdenes de magnitud más rápida que las unidades de disco reales. Sin embargo, la volatilidad de la memoria RAM implica que los datos almacenados en un disco RAM se perderán si falla la alimentación (por ejemplo, cuando el ordenador se apaga). Los discos RAM suelen usarse para almacenar datos temporales o para guardar programas descomprimidos durante cortos periodos

5.4 DISCOS DUROS


El disco duro es un dispositivo de almacenamiento no volátil, es decir conserva la información que le ha sido almacenada de forma correcta aun con la perdida de energía, emplea un sistema de grabación magnética digital, es donde en la mayoría de los casos se encuentra almacenado el sistema operativo de la computadora. En este tipo de disco se encuentra dentro de la carcasa una serie de platos metálicos apilados girando a gran velocidad. Sobre estos platos se sitúan los cabezales encargados de leer o escribir los impulsos magnéticos. Hay distintos estándares a la hora de comunicar un disco duro con la computadora. Existen distintos tipos de interfaces las más comunes son: Integrated Drive Electronics (IDE, también llamado ATA) , SCSI generalmente usado en servidores, SATA, este último estandarizado en el año 2004 y FC exclusivo para servidores.

5.4.1 HARDWARE PARA DISCOS

Todos los discos reales están organizados en cilindros, donde cada uno contiene tantas pistas como haya cabezas apiladas verticalmente. Las pistas se dividen en sectores, donde el número de sectores en torno a la circunferencia en comúnmente de 8 a 32. Todos los sectores contienen el mismo número de bytes. Los parámetros de un disco flexible de la IBM PC se muestran en la tabla siguiente.
Número de cilindros 40 Tiempo de localización (cilindros adyacentes) 6ms
Pistas por cilindro 2 Tiempo de localización (caso promedio) 77ms
Sectores por pista 9 Tiempo de rotación 200ms
Sectores por disquete 720 Tiempo de arranque/detención del motor 250ms
Bytes por sector 512 Tiempo para transferir un sector 22ms
Bytes por disquete 368640

5.4.2 SOFTWARE PARA DISCOS

El tiempo requerido se determina por tres factores:
1. El tiempo de búsqueda (el tiempo que toma mover el brazo al cilindro correcto)
2. El retraso rotacional el tiempo que tarda el sector correcto hasta quedar bajo la cabeza)
3. El tiempo real de transferencia de datos.
Los dispositivos de disco duro son propensos a errores. Siempre se graba junto con los datos de cada sector de un disco algún tipo de verificación de errores, una suma de verificación o una verificación de redundancia cíclica. Incluso las direcciones registradas cuando se formatea un disco cuanta con datos de verificación. El controlador en hardware de un disco flexible puede informar cuando se detecta un error, pero es software debe decidir que se hará al respecto. Los controladores en hardware de los discos duros con frecuencia asumen gran parte de esta carga.
El los discos duros, el tiempo de transferencia de sectores consecutivos dentro de la misma pista puede ser muy rápido. Por ello la lectura de mas datos de los que se solicitan y su almacenamiento en un caché de la memoria puede ser una estrategia muy eficaz para acelerar el acceso a disco.

5.5 RELOJES


Los relojes o cronómetros son esenciales para la operación de sistemas de tiempo compartido.
Los relojes controlan la hora del día y evitan que algún proceso monopolice a la CPU, entre otras cosas.
Los relojes más sencillos trabajan con la línea de corriente eléctrica de 110 o 220 voltios y provocan una interrupción por cada ciclo de voltaje, a 50 o 60 hz.
Otro tipo de relojes consta de tres componentes:
Un oscilador de cristal, un contador y un registro.
Una pieza de cristal de cuarzo se monta en una estructura bajo tensión:
Genera una señal periódica de muy alta precisión, generalmente entre 5 y 100 mhz.
La señal se alimenta en el contador para que cuente en forma descendente hasta cero.
Cuando el contador llega a cero, provoca una interrupción de la cpu.

5.5.1 HARDWARE DE DISCOS

Los relojes programables tienen varios modos de operación:
Modo de una instancia:
Cuando el reloj se inicializa, copia el valor del registro en el contador.
Decrementa el contador en cada pulso del cristal.
Cuando el contador llega a cero provoca una interrupción y se detiene hasta ser nuevamente inicializado por el software.
Modo de onda cuadrada:
Luego de llegar a cero y provocar la interrupción, el registro se copia de manera automática en el contador.
Todo el programa se repite en forma indefinida.
Las interrupciones periódicas se llaman marcas del reloj.
La ventaja del reloj programable es que su frecuencia de interrupción puede ser controlada por el software.

5.5.2 SOFTWARE DE RELOJ

El software para reloj toma generalmente la forma de un manejador de dispositivo, aunque no es un dispositivo de bloque ni de caracter.
Las principales funciones del software manejador del reloj son:
Mantener la hora del día o tiempo real.
Evitar que los procesos se ejecuten durante más tiempo del permitido.
Mantener un registro del uso de la cpu.
Controlar llamadas al sistema tipo “alarm” por parte de los procesos del usuario.
Proporcionar cronómetros guardianes de partes del propio sistema.
Realizar resúmenes, monitoreo y recolección de estadísticas.
El software manejador del reloj puede tener que simular varios relojes virtuales con un único reloj físico

5.5.3 MANEJADOR DE RELOJ

El manejador acepta cuatro tipos de mensajes como sigue:
SET_ALARM permite a un proceso fijar un cronómetro que se agote en un número especificado de pulsaciones de reloj. También lo utilizan las tareas para los cronómetros guardianes.
GET_TIME produce el tiempo real corriente con el número de segundos que han transcurrido desde el 1 de enero de 1970 a las 12:00 a.m. SET_TIME fija el tiempo real.
CLOCK_TICK es el mensaje que se envía al manejador cuando ocurre una interrupción de reloj.

5.6 TERMINALES


Las terminales tienen gran número de formas distintas
El manejador de la terminal debe ocultar estas diferencias.
La parte independiente del dispositivo en el S. O. y los programas del usuario no se tienen que reescribir para cada tipo de terminal.
Desde el punto de vista del S. O. se las puede clasificar en:
Interfaz RS-232:
Hardcopy (terminales de impresión).
TTY “de vidrio” (terminales de video).
Inteligente (computadoras con cpu y memoria).
Interfaz mapeada a memoria:
Orientada a caracteres.
Orientada a bits.
Las terminales RS-232 poseen un teclado y un monitor que se comunican mediante una interfaz serial, un bit a la vez; las conversiones de bits a bytes y viceversa las efectúan los chips uart (transmisores - receptores asíncronos universales).
Las terminales mapeadas a memoria:
No se comunican mediante una línea serial.
Poseen una interfaz mediante una memoria especial llamada video RAM:
Forma parte del espacio de direcciones de la computadora.
La cpu se dirige a ella como al resto de la memoria.
En la tarjeta de video RAM hay un chip llamado controlador de video:
Extrae bytes del video RAM y genera la señal de video utilizada para manejar la pantalla.
El monitor genera un rayo de electrones que recorre la pantalla pintando líneas.
Cada línea está constituida por un cierto número de puntos o pixeles.
La señal del controlador de video modula el rayo de electrones y determina si un pixel debe estar o no iluminado.
Los monitores de color poseen tres rayos (rojo, verde y azul) que se modulan independientemente.
En las pantallas mapeadas a caracteres:
Cada caracter en la pantalla equivale a dos caracteres de RAM:
Uno aloja al código (ASCII) del caracter por exhibir.
Otro es el byte de atributo, necesario para determinar el color, el video inverso, el parpadeo, etc.
En las terminales mapeadas a bits:
Se utiliza el mismo principio.
Cada bit en el video RAM controla en forma directa un solo pixel de la pantalla.
Permite una completa flexibilidad en los tipos y tamaños de caracteres, varias ventanas y gráficos arbitrarios.
Con las pantallas mapeadas a memoria, el teclado se desacopla totalmente de la pantalla:
El teclado dispone de su propio manejador.
El manejador del teclado puede operar en modo caracter o en modo línea.
Las terminales pueden operar con una estructura central de buffers o con buffers exclusivos para cada terminal.

5.6.1 HARDWARE DE TERMINALES


Las terminales pueden dividirse en tres categorías amplias con base a que el sistema operativo se comunica con ellas. La primera consiste en terminales con mapa en la memoria, que consiste en un teclado y una pantalla, ambas conectadas directamente a la computadora. La segunda consiste en terminales que se conectan a través de una línea de comunicación en serie empleando el estándar RS-232 casi siempre usando un modem. La tercera consiste en terminales que se conectan a la computadora a través de una red.
Terminales RS-232
Constan de teclado y pantalla que transmiten bit a bit en serie. La velocidad de transmisión de estos bits viene dada en baudios, siendo valores utilizados: 300, 1,200,2,400, 4,800, 9,600. Estas terminales se conectan a la computadora a través de un cable físico, este cable en su entrada a la computadora termina en una tarjeta hardware o interfaz que a su vez se conecta a un bus de dicha computadora.
Se conocen, generalmente, con el nombre genérico TTY.
Terminales mapeados en memoria.
No necesitan línea de conexión a la computadora ya que están directamente conectados al bus del mismo. -En estos terminales el teclado se conecta directamente al bus y es independiente de la pantalla.

5.6.2 MANEJADORES


El manejador de la terminal es el archivo más grande de MINIX. Este acepta cinco mensajes:
1. Lectura de caracteres desde la terminal (del sistema de archivo a la mitad de un proceso de usuario).
2. Escritura de caracteres en la terminal (del sistema de archivo a la mitad de un proceso de usuario).
3. Fijación de los parámetros de la terminal para ioctl (del sistema de archivo a la mitad de un proceso de usuario).
4. Carácter disponible (del proceso de interrupción).
5. Cancelación de la solicitud de lectura anterior (del sistema de archivo cuando ocurra una señal).
Frecuentemente los manejadores de terminales soportan operaciones tales como:
Mover el cursor hacia arriba, abajo, a la izquierda o a la derecha una posición.
Mover el cursor a x y.
Insertar un carácter o una línea en el cursor.
Eliminar un carácter o una línea en el cursor.
Recorrer la pantalla hacia arriba o hacia abajo “n” líneas.
Limpiar la pantalla desde el cursor hacia el final de la línea o hasta el final de la pantalla.
Trabajar en modo de video inverso, subrayado, parpadeo o normal.
Crear, construir, mover o controlar las ventanas.