Dispositivos E/S
ÍNDICE
RESUMEN
El siguiente ensayo se centra en
el estudio del sistema de E/S y se mostrara las principales técnicas utilizadas
y de qué características debe tener el hardware y el software necesario para
gestionar las diferentes maneras de realizar la transferencia de información
entre el computador y el periférico. Todo computador necesita llevar a cabo
intercambio de información con personas u otras máquinas tecnológicas mediante
unos dispositivos denominados dispositivos periféricos. Para hacer una
operación de E/S entre el computador y un periférico, es necesario conectar
estos dispositivos al computador y gestionar de manera efectiva la
transferencia de datos. Para hacerlo, el computador dispone del sistema de entrada/salida
(E/S).
Este sistema de E/S es la
interfaz que tiene el computador con el exterior y el objetivo que tiene es
facilitar las operaciones de E/S entre los periféricos y la memoria o los
registros del procesador. Para gestionar las operaciones de E/S es necesario un
hardware y la ayuda de un software.
CAPÍTULO I
MARCO TEÓRICO
1.1. Dispositivos E/S
Se denominan
dispositivos de E/S tanto las unidades periféricas en sí como aquellas
"intermediarias”, que se encargan de efectuar una transferencia entre la
memoria interna y la memoria externa en los periféricos. (Quiroga, 2010)
En toda transferencia
se utilizan señales de control, dato y dirección, esta vez sobre los buses de
E/S. Las señales de control y tiempo se utilizan para regular la transferencia
elemental, indicando cómo y cuándo debe ocurrir
1.1.1.
Controladores
El término
controlador se utiliza en gran medida para definir cualquier unidad hardware
"que gobierne” a otra.
Un controlador de periférico es un dispositivo
asociado en forma directa al periférico, que puede estar físicamente integrado
a él, o bien separado de éste, y está constituido por:
·
Un buffer interno (memoria RAM),
que permite el almacenamiento de la información que "viaja” desde o hacia
el soporte.
·
Una lógica de control, que
interpreta comandos de periférico, genera señales para su ejecución y gobierna
así la unidad. (Quiroga, 2010)
El trabajo del
controlador es convertir el flujo de bits serial en un bloque de bytes y
realizar cualquier corrección de errores necesaria. Por lo general, primero se
ensambla el bloque de bytes, bit por bit, en un búfer dentro del controlador.
Después de haber verificado su suma de comprobación y de que el bloque se haya
declarado libre de errores, puede copiarse a la memoria principal.
1.1.2.
Adaptadores
Un adaptador provee
una función para conectar y lograr la operación de un componente conectado a un
bus. Un adaptador puede residir en una tarjeta o en la placa del sistema
(integrado en un chip). Por ejemplo, un adaptador gráfico de video se usa para
controlar la operación de un video y su relación con el bus.
Las unidades que
constituyen este adaptador son básicamente el controlador de video (p.ej.,
trazado de rayos), el procesador de video (p.ej., procesa imágenes según estén
codificadas; como rotarlas) y el conversor digital-analógico (p.ej., convierte
la imagen digital a señal analógica y regula la frecuencia de refresco de
pantalla). O sea que todo dispositivo que no cumpla la función por sí solo
necesita su propio adaptador; por ejemplo, un adaptador de red es un
dispositivo que, instalado en una placa principal de una computadora personal,
conecta ésta físicamente a una red que puede ser pública o privada. (Quiroga, 2010)
1.1.3.
Puerto de E/S
Un puerto (port) es
un área de almacenamiento alojada en una interface, que permite la comunicación
de un periférico con la memoria para enviar o recibir una secuencia de bits.
El software de
sistema la identifica con un nombre, por ejemplo, COMI, de la interfaz RS232
(el protocolo de transferencia puede "dar nombre" a la interfaz) al
que nos referimos por su extendido uso, pero actualmente reemplazado por puertos
más evolucionados como el USB. (Quiroga, 2010)
1.2. Modalidades de entrada/salida
El sistema operativo
cuenta con programas que gestionan las transferencias de entrada/salida, pero
esta vez en un nivel superior o, si lo queremos ver de otro modo, un nivel más
abstracto. Estos programas realizan funciones comunes a todos los dispositivos
periféricos, más allá de las particularidades de cada uno de ellos; por
ejemplo, la medida real de un sector de disco no es importante en este nivel,
sino que se asume un tamaño lógico que involucre a uno o varios de ellos como
bloque de información. Desde el punto de vista de un programa de aplicación, un
proceso que ejecuta la CPU actualmente puede ir escribiendo datos en un “área
de almacenamiento” hasta completar el bloque, en este momento recién se llama
al servicio para realizar la transferencia del bloque completo; si seguimos con
el mismo ejemplo, a su vez, este servicio pide la intervención del driver que
gestiona la transferencia de unidades menores (sectores) “a la medida” del
disco que se ha de acceder. (Quiroga, 2010)
La relación entre el
programa de aplicación en estado de ejecución como peticionario del servicio de
transferencia y el hardware de entrada/salida como su proveedor se muestra en
el siguiente ciclo:
Aplicación →Programa de E/S del nivel abstracto →Driver →Hardware
Una transferencia
completa involucra varias transferencias elementales.
Para llevar a cabo la
transferencia completa se pueden identificar modos o métodos los cuales se
muestran a continuación:
·
Transferencia controlada por
programa.
·
Transferencia iniciada por
interrupción.
·
Transferencia con acceso directo a
memoria.
·
Transferencia a través de un
procesador IOP o modo canal
1.2.1.
Transferencia controlada por
programa
Cuando la
transferencia se denomina controlada por programa (en inglés, Program I/O, en
siglas PIO), la que ejecuta el programa de E/S es la CPU, que para comunicarse
utiliza un bloque hardware denominado interfaz. De esta manera, es la CPU la
que controla el acceso a memoria para ubicar el dato, a través de sus propios
registros internos (p. ej., el acumulador) y los de la interfaz (p. ej., un
número de puerto). En esta modalidad la CPU debe verificar el estado de la
interfaz a través del puerto de control en forma continua. (Quiroga, 2010)
Los datos se
intercambian entre el CPU y el módulo de E/S. El CPU ejecuta un programa que
controla directamente la operación de E/S, incluyendo la comprobación del
estado del dispositivo, el envío de la orden de lectura o escritura y la
transferencia del dato. Cuando el CPU envía la orden debe esperar hasta que la
operación de E/S concluya. Si el CPU es más rápido, éste estará ocioso. El CPU
es el responsable de comprobar periódicamente el estado del módulo de E/S hasta
que encuentre que la operación ha finalizado.
Normalmente habrá
muchos dispositivos de E/S conectados al sistema a través de los módulos de
E/S. Cada dispositivo tiene asociado un identificador o dirección. Cuando el
CPU envía una orden de E/S, la orden contiene la dirección del dispositivo
deseado.
1.2.2.
Transferencia iniciada por
interrupción.
Una transferencia
iniciada por interrupción proporciona una mejora al procedimiento anterior, que
implica que la CPU, que es quien solicita la transferencia, no verifique de
manera continua el estado de un dato listo para transferirse desde el
dispositivo externo, sino que la interfaz asociada genere un aviso que indique
que está preparada para transferir. En este caso se expresa que la interfaz
provoca una interrupción y, por supuesto, esto se indica con un bit de estado
denominado bit de interrupción (Interrupt Request Query o IRQ). Por cada ciclo
de ejecución de una instrucción la CPU consulta por interrupciones externas; si
es así, guarda la información suficiente del estado del proceso que va a
interrumpir, para luego poder reanudarlo. (Quiroga, 2010)
Cuando un sistema
operativo admite multiprogramación o multitask (varias tareas compartiendo los
recursos) y se requiere una transferencia de datos desde un dispositivo externo
para continuar con el procesamiento del programa en ejecución, se genera una
llamada al sistema y se coloca el programa en ejecución en estado "en
espera”; así, la CPU sigue con otro proceso. El servicio convocado se coloca en
una cola de ejecución y cuando detecta por interrupción que el dispositivo ya
tiene los datos solicitados y está listo para la transferencia, almacena los
contenidos de los registros de CPU actuales en la memoria (resguardo de
contexto), y ejecuta el servicio de E/S que atiende este tipo de transferencia.
1.2.3.
Transferencia con acceso directo a
memoria.
El acceso directo a
memoria (DMA, del inglés direct memory access) permite a cierto tipo de
componentes de una computadora acceder a la memoria del sistema para leer o
escribir independientemente de la unidad central de procesamiento (CPU). Muchos
sistemas hardware utilizan DMA, incluyendo controladores de unidades de disco,
tarjetas gráficas y tarjetas de sonido. DMA es una característica esencial en
todos los ordenadores modernos, ya que permite a dispositivos de diferentes
velocidades comunicarse sin someter a la CPU a una carga masiva de interrupciones.
Una transferencia DMA
consiste principalmente en copiar un bloque de memoria de un dispositivo a
otro. En lugar de que la CPU inicie la transferencia, la transferencia se lleva
a cabo por el controlador DMA. Un ejemplo típico es mover un bloque de memoria
desde una memoria externa a una interna más rápida. Tal operación no ocupa al
procesador y, por ende, éste puede efectuar otras tareas. Las transferencias
DMA son esenciales para aumentar el rendimiento de aplicaciones que requieran
muchos recursos.
CONCLUSIONES
·
La E/S se implementa mediante
periféricos los cuales permiten la transferencia de información entre la CPU y
el mundo exterior.
·
En
la E/S programada La CPU tiene el control absoluto de la operación de E/S: por
lo cual este inicia y lleva a cabo la transferencia.
·
Los
dispositivos periféricos están conectados al controlador de dispositivo el cual
admite comandos abstractos de la CPU y se encarga de transmitirlos al
dispositivo
RECOMENDACIONES
·
Si se quiere evitar que la CPU sea
la encargada de transferir datos entre la memoria y el periférico es
recomendable utilizar el DMA.
·
Es necesario conocer que al usar
E/S con interrupciones, esta consume mucha CPU ya que cada byte leído/escrito
pasa por la CPU desde/hacia la memoria.
BIBLIOGRAFÍA
Quiroga, P. (2010). Arquitectura de Computadoras.
Buenos Aires: Alfaomega.
Comentarios
Publicar un comentario