Informática


Hardware de entrada y salida


PRINCIPIOS DEL HARDWARE DE ENTRADA Y SALIDA (E/S)

Distintas personas analizan de varias maneras el hardware de Entrada y Salida. Los ingenieros eléctricos lo hacen en términos de chips, cables, fuentes de poder, etc. Los programadores se fijan en la interfaz que se presenta al software (los comandos que acepta el hardware, las funciones que realiza y los errores que puede informar. En este trabajo nos interesaremos por la programación de los dispositivos de entrada y salida no por su diseño, construcción o mantenimiento, así nuestro interés estará restringido a la forma de programar el hardware y no su funcionamiento interno. Sin embargo es frecuente que la programación de muchos dispositivos de entrada y salida este íntimamente ligada con su operación interna.

DISPOSITIVOS DE ENTRADA Y SALIDA

Los dispositivos de entrada y saluda se pueden dividir de manera general en dos categorías: dispositivos de bloque y dispositivos de carácter.

Dispositivo de Bloque: Es aquel que almacena la información en bloques de tamaño fijo, cada uno con su propia dirección. Los tamaños comunes de los bloques van desde 128 bytes hasta 1024 bytes. La propiedad esencial de un dispositivo de bloque es la posibilidad de leer o escribir en un bloque de forma independiente de los demás, es decir, el programa puede leer o escribir en cualquiera de los bloques.

Entre los dispositivos de bloque se pueden encontrar:

  • CD - ROM: Acrónimo de Compact Disc-Read Only Memory. Estándar de almacenamiento de archivos informáticos en disco compacto. Se caracteriza por ser de sólo lectura. Otros estándares son el CD-R o WORM (permite grabar la información una sola vez), el CD-DA (permite reproducir sonido), el CD-I (define una plataforma multimedia) y el PhotoCD (permite visualizar imágenes estáticas).

  • Disco Duro: Los discos duros proporcionan un acceso más rápido a los datos que los discos flexibles y pueden almacenar mucha más información. Al ser las láminas rígidas, pueden superponerse unas sobre otras, de modo que una unidad de disco duro puede tener acceso a más de una de ellas. La mayoría de los discos duros tienen de dos a ocho láminas. Un disco duro normal gira a una velocidad de 3.600 revoluciones por minuto y las cabezas de lectura y escritura se mueven en la superficie del disco sobre una burbuja de aire de una profundidad de 10 a 25 millonésimas de pulgada. El disco duro va sellado para evitar la interferencia de partículas en la mínima distancia que existe entre las cabezas y el disco.

  • Disquete o Disco flexible: Es un elemento plano de mylar recubierto con óxido de hierro que contiene partículas minúsculas capaces de mantener un campo magnético, y encapsulado en una carcasa o funda protectora de plástico. La información se almacena en el disquete mediante la cabeza de lectura y escritura de la unidad de disco, que altera la orientación magnética de las partículas. La orientación en una dirección representa el valor binario 1, y la orientación en otra el valor binario 0. Dependiendo de su capacidad, un disco de este tipo puede contener desde algunos cientos de miles de bytes de información hasta casi tres millones (2,88 Mb). Un disco de 3y pulgadas encerrado en plástico rígido se denomina normalmente disquete pero puede llamarse también disco flexible.

  • Dispositivo de Carácter: Es aquel que envía o recibe un flujo de caracteres, sin sujetarse a una estructura de bloques. No se pueden utilizar direcciones ni tienen una operación de búsqueda.

    Entre los dispositivos de carácter se pueden mencionar:

  • Mouse: Es el segundo dispositivo de entrada más utilizado. El mouse o ratón es arrastrado a lo largo de una superficie para maniobrar un apuntador en la pantalla del monitor. Fue inventado por Douglas Engelbart y su nombre se deriva por su forma la cual se asemeja a la de un ratón.

  • Monitores: El monitor ó pantalla de vídeo, es el dispositivo de salida más común. Hay algunos que forman parte del cuerpo de la computadora y otros están separados de la misma. Existen muchas formas de clasificar los monitores, la básica es en término de sus capacidades de color, pueden ser: Monocromáticos, despliegan sólo 2 colores, uno para el fondo y otro para la superficie. Los colores pueden ser blanco y negro, verde y negro ó ámbar y negro. Escala de Grises, un monitor a escala de grises es un tipo especial de monitor monocromático capaz de desplegar diferentes tonos de grises. Color: Los monitores de color pueden desplegar de 4 hasta 1 millón de colores diferentes

  • Impresoras de Línea: de línea: Son rápidas y ruidosas. Tienen la desventaja de estar limitadas a la impresión de caracteres, por lo que no son apropiadas para aplicaciones donde los gráficos son un ingrediente esencial del producto acabado. imprimen una línea de puntos a la vez. Se alinean martillos similares a agujas sobre el ancho del papel.

  • Tarjetas Perforadas: Habían, sido inventada en los años de la revolución industrial (finales del siglo XVIII) por el francés Jacquard y perfeccionado por el estadounidense Hermand Hollerith en 1890. Se usaron para acumular y procesar automáticamente gran cantidad de datos. Durante décadas, desde mediados de los cincuentas la tecnología de las tarjetas perforadas se perfeccionó con la implantación de más dispositivos con capacidades más complejas. Dado que cada tarjeta contenía en general un registro (Un nombre, dirección, etc.) el procesamiento de la tarjeta perforada se conoció también como procesamiento de registro unitario.

  • CONTROLADOR DE DISPOSITIVOS

    Las unidades de entrada y salida constan por lo general de un componente mecánico y otro electrónico. El componente electrónico se llama controlador de dispositivo de adaptador.

    La tarjeta controladora tiene por lo general un conector, en el que se puede conectar el cable que va al dispositivo en sí. Muchos controladores pueden manejar dos, cuatro y hasta ocho dispositivos idénticos. Si la interfaz entre el controlador y el dispositivo es estándar, ya sea un estándar oficial, de tipo ANSI, IEEE o ISO, o bien un estándar de hecho, entonces las compañías pueden fabricar controladores o dispositivos que se ajusten a esa interfaz.

    Mencionamos esa distinción entre controlado y dispositivo por que el sistema operativo casi siempre trabaja con el controlador y no con el dispositivo. Casi todas las micro y mini computadoras utilizan el modelo de un bus para la comunicación entre la CPU y los controladores. Los grandes mainframes utilizan con frecuencia otro modelo, con varios buses y computadoras especializadas en Entrada y Salida llamadas canales de entrada y salida que toman cierta carga de entrada y salida fuera de la CPU principal.

    La labor del controlador es convertir el flujo de bits en serie en un bloque de bytes y llevar a cabo cualquier corrección de errores necesaria. Lo común es que el bloque de bytes ensamble, bit a bit, en un buffer dentro del controlador. Después a verificar la suma y declarar al bloque libre de errores, se le puede copiar en la memoria principal.

    El controlador de una terminal CRT también funciona como un dispositivo de bits en un nivel igual de bajo. Lee bytes que contienen caracteres a exhibir en la memoria y genera las señales utilizadas para modular la luz CRT para que esta se escriba en la pantalla. El controlador también genera las señales para que la luz CRT vuelva a realizar un trazo horizontal después de terminar una línea de rastreo, así como las señales para que se vuelva a hacer un trazo vertical después de rastrear en toda la pantalla. De no ser por el controlador CRT, el programador del sistema operativo tendría que programar en forma explicita el rastreo análogo del tubo de rayos catódicos. Con el controlador, el sistema operativo inicializa éste con pocos parámetros, tales como el número de caracteres por línea y el número de líneas en la pantalla, para dejar que el controlador se encargue de dirigir en realidad el rayo de luz.

    Cada controlador tiene unos cuantos registros que se utiliza para la comunicación con la CPU. En ciertas computadoras, estos registros son parte del espacio normal de direcciones de la memoria.

    El sistema operativo realiza la entrada y salida al escribir comandos en los registros de los controladores. Muchos de los comandos tienen parámetros, los cuales también se cargan de los registros del controlador. Al aceptar un comando, la CPU puede dejar al controlador y dedicarse a otro trabajo. Al terminar el comando, el controlador provoca la interrupción para permitir que el sistema operativo obtenga el control de la CPU y verifique los resultados de la operación. La CPU obtiene los resultados y el estado del dispositivo al leer uno o más bytes de información de los registros del controlador.

    ACCESO DIRECTO A MEMORIA

    Muchos controladores, en particular los correspondientes a los dispositivos de bloque, permiten el acceso directo a memoria o DMA. Para explicar el funcionamiento del DMA, analicemos primero la forma en que se lee el disco si no se utiliza este:

    En primer lugar, el controlador lee en serie el bloque (uno o mas sectores) de la unidad bit por bit, hasta que todo el bloque se encuentre en el buffer interno del controlador. A continuación calcula la suma de verificación para corroborar que no existen errores de lectura. Entonces el controlador provoca una interrupción. Cuando el sistema operativo empieza su ejecución, puede leer el bloque del disco por medio del buffer del controlador, un byte o una palabra a la vez, en un ciclo, en el que durante cada iteración se lee un byte o una palabra del registro del controlador y se almacena en la memoria.

    Es claro que un ciclo programado en la CPU para la lectura de bytes desde el computador, uno a la vez, desperdicia el tiempo de la CPU. DMA se ideó para liberar a la CPU de este trabajo de bajo nivel. Al utilizarlo, la CPU le proporciona al controlador dos elementos de la información, además de la dirección del bloque en el disco: la dirección en memoria adonde debe ir el bloque y el numero de bytes por transferir.

    Después de que el controlador ha leído todo el bloque del dispositivo a su buffer y ha corroborado la suma de verificación, copia el primer byte o palabra a la memoria principal, en la dirección especificada por medio de la dirección de la memoria DMA. Entonces incrementa la dirección DMA y decrementa el contador DMA en el numero de bytes que acaba de transferir. Este proceso se repite hasta que el contador se anula, momento en el cual el contador provoca una interrupción. Al iniciar su ejecución el sistema operativo, no tiene que copiar el bloque en la memoria, ya se encuentra allí.

    El controlador no almacena los bytes en la memoria principal tan pronto llegan al disco, la razón consiste en que una vez iniciada la transferencia del disco los bits siguen llegando al disco constantemente, sin importar si el controlador esta listo o no para recibirlos. Si el controlador intentara escribir los datos en la memoria de forma directa, tendría que recurrir al bus del sistema para cada una de las palabras transferidas. Si el bus estuviera ocupado debido a que lo utilizara otro dispositivo, entonces el controlador debería esperar. Si la siguiente palabra llegase antes de que la anterior hubiera sido almacenada, el controlador tendría que almacenar en alguna parte. Si el bus estuviese demasiado ocupado, el controlador terminaría por almacenar unas cuantas palabras y con gran tarea de administración al mismo tiempo. Cuando el bloque se guarda en un buffer interno, el bus no se necesita sino hasta que el DMA comienza; por ello, el diseño del controlador es más sencillo, puesto que la transferencia DMA a la memoria ya no es un aspecto critico del tiempo. (Sin embargo, algunos controladores si transfieren en forma directa a la memoria, con una pequeña proporción de almacenamiento en buffers internos, pero si el bus esta demasiado ocupado, se debe terminar una transferencia con un error de sobre ejecución).

    El proceso de dos etapas de almacenamiento en un buffer interno descrito arriba tiene importantes consecuencias en el rendimiento de las entradas y salidas. Aunque los datos se transfieren del controlador a la memoria, ya sea mediante la CPU o mediante el propio controlador, el siguiente sector pasará debajo de la cabeza del disco y los bits llegarán al controlador. Los controladores simples no pueden enfrentarse a las entradas y salidas simultáneas, de forma, que mientras se lleva a cabo una transferencia en la memoria, el sector que pasa debajo de la cabeza del disco se pierde.

    Como resultado el controlador solo podrá leer hasta el siguiente bloque. La lectura de una pista completa se realizará entonces n dos rotaciones completas, una para los bloques nones y otra para los bloques pares. Si el tiempo necesario para una transferencia de un bloque del controlador a la memoria por medio del bus es mayor que el tiempo necesario para leer un bloque del disco, podría ser necesario leer un bloque y después saltar dos (o más) bloques.

    El salto de bloques, que se ejecuta para darle tiempo al controlador para la transferencia de datos a la memoria se llama separación. Al dar formato al disco, los bloques se numeran tomando en cuenta el factor de separación.

    La idea de numerar los bloques de esta menara es permitir al sistema operativo que lea los bloques con numeración consecutiva y conserve la máxima velocidad posible del hardware. Si los bloques estuvieran numerados como en la figura “a”, pero el controlador solo pudiera leer bloques alternados, un sistema operativo que asignara bloques consecutivos, a un archivo de ocho bloques necesitaría ocho rotaciones de disco para leer los bloques cero a siete en orden. (Por supuesto, si el sistema operativo supiera del problema y acomodara los bloques de otra manera, podría resolver el problema en software, pero es mejor que el controlador se preocupe por la separación).

    Instituto Universitario Tecnológico

    De Tecnología Industrial

    Rodolfo Loero Arismendi

    I.U.T.I.R.L.A

    Realizado Por:

    Sistemas Operativos

    Informática_I3NJ

    Barcelona, Noviembre de 2002

    CPU

    Memoria

    Controlador de Disco

    Controlador de Impresora

    Otros Controladores

    Bus del sistema

    Un modelo para conexión del CPU, memoria, controladores y dispositivos

    Unidades de Disco

    Interfaz controlador de dispositivo

    Impresora

    CPU Memoria Controlador

    Del Disco

    Contador

    Unidad

    Buffer

    Registros del DMA

    Dirección de Memoria

    Contador

    Un contador realiza completamente una transferencia DMA

    7 0

    1

    2

    4 3

    6

    5

    3

    6

    2 5

    4

    1

    7 0

    2

    7

    4 1

    3

    6

    5 0

    (a) Sin separación (b) Separación Simple (c) Separación Doble




    Descargar
    Enviado por:Cadaveria
    Idioma: castellano
    País: Venezuela

    Te va a interesar