Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Cap. IV. - Entrada-Salida PDF

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 36

SISTEMAS DE ENTRADA/SALIDA

Generalidades de los Sistemas de E/S


Hardware de E/S
Subsistema de E/S
Técnicas de E/S
SISTEMAS DE ENTRADA/SALIDA
• Analizar la estructura del subsistema de E/S de un sistema
operativo.
•Explorar los principios en que se basa el hardware de E/S y los
aspectos relativos a su complejidad.
GENERALIDADES DE LOS SISTEMAS DE E/S

Para los diseñadores de SO, el control de los dispositivos conectados a la


computadora es de primordial interés, debido a que cada dispositivo
cambia sus funciones y velocidad por lo cual se requiere variedad de métodos
para controlarlos.

Estos métodos de E/S forman el subsistema de E/S del kernel, el cual


aisla al resto del kernel de la complejidad de la administración de los
dispositivos de E/S.

La tecnología de E/S exhibe dos tendencias que están en conflicto:


* Creciente estandarización de las interfases de SW y HW con los cual se
ayuda a incorporar en las computadoras y SO generaciones mejoradas
de dispositivos.
GENERALIDADES DE LOS SISTEMAS DE E/S

Nuevos dispositivos que son tan diferentes los anteriores que se son
difíciles de incorporar en las computadoras y SO; por lo que se convierte
en un reto esta incorporación a través de combinación de técnicas de
HW y SW.

Los detalles y peculiaridades de los diferentes dispositivos se encapsulan


en módulos de manejadores de dispositivos (interfaz uniforme de
acceso a dispositivos con el subsistema de E/S). Para lo cual se
estructura al kernel del sistema operativo para que use estos módulos.
OBJETIVOS DEL SISTEMA DE E/S

•Proporcionar una interfaz uniforme para el acceso a los dispositivos


(independencia del dispositivo).
•Proporcionar manejadores (drivers) para los dispositivos concretos
•Tratar automáticamente los errores más típicos.
•Para los dispositivos de almacenamiento, utilizar cachés.
•Para los discos, planificar de forma óptima las peticiones.
HARDWARE DE E/S
Un dispositivo se comunica con un sistema de cómputo enviando señales a
través de un cable o incluso a través de aire.
El dispositivo se comunica:
•Con la máquina mediante un punto de conexión llamado puerto.
•Si uno o más dispositivos utilizan un conjunto de cables, la conexión se
denomina bus.
HARDWARE DE E/S
Un controlador es un conjunto de componentes electrónicos que pueden operar un puerto, un bus
o un dispositivo.

Los controladores pueden ser sencillos (controlador de puerto serial) o complejos (controlador de
bus SCSI).

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.
HARDWARE DE E/S
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.
A continuación un cuadro comparativo de diferentes dispositivos:
HARDWARE DE E/S
¿Cómo puede el procesador entregar comandos y datos a un
controlador para realizar una transferencia de E/S?

• El controlador tienen uno o más registros para datos y señales de


control.
• El procesador se comunica con el controlador leyendo y escribiendo
patrones de bits en estos registros.

Hay dos formas de comunicación:

1) Mediante el uso de interrupciones especiales de E/S que especifican la


transferencia de un byte o palabra a la dirección de un puerto de E/S.
2) El controlador de dispositivo puede soportar E/S con mapeo en memoria;
en este caso los registros de control del dispositivo se mapean en el
espacio de direcciones del procesador.
HARDWARE DE E/S
Ubicación de puertos de E/S para dispositivos en computadoras
compatibles con PC
ESCRUTINIO
Ejemplo de interacción entre el anfitrión y el controlador

Suponemos que se usan 2 bits para coordinar la relación productor-


consumidor entre el controlador y el anfitrión.
 El controlador indica su estado mediante el bit busy en el registro
status.
 El controlador prende el bit busy cuando está ocupado trabajando y
lo apaga cuando está listo para aceptar el siguiente comando.
 El anfitrión señala sus deseos mediante el bit command-ready en el
registro command.
 El anfitrión prende el bit command-ready cuando está disponible un
comando para que el controlador lo ejecute.
Siguiendo con el ejemplo:
El anfitrión lee repetidamente el bit busy hasta que dicho bit se apaga.

El anfitrión está en espera ocupada o en escrutinio: está en un ciclo, leyendo


el registro status una y otra vez hasta que el bit busy se apaga. Para que
funcione este método, controlador y el dispositivo deben de ser rápidos o se
perderá los datos que se encuentran en el buffer del controlador.
En Muchas arquitecturas de computadoras, son suficientes tres ciclos de
instrucción a la CPU para escrutar un dispositivo: leer (read) un registro de
dispositivo, realizar un operación de “y lógico”(logical--and) para extraer el bit
de estado y proceder a una ramificación (branch) si no es cero.
La operación básica de escrutinio es eficiente; pero se vuelve ineficiente
cuando se intenta repetidamente y pocas veces encuentra un dispositivo listo
para servicio, mientras que otras actividades útiles de procesamiento
permanecen sin realizarse.
INTERRUPCIONES

Una interrupción es el
mecanismo que le permite al
controlador de hardware
notificar a la CPU cuando un
dispositivo esta listo para
servicio.

El mecanismo básico de
interrupción habilita a la CPU
para responder a un evento
asíncrono, el cual puede ser
que el controlador de
dispositivo quede listo para
dar servicio
Características para el manejo de interrupciones:
- Capacidad para diferir el manejo de interrupciones
durante un procesamiento crítico.
- Eficiente manejo de interrupciones para un buen
desempeño del sistema (evitar hacer escrutinio).
- Basado en prioridad.

Líneas de solicitud de interrupción CPU:


* Interrupción no mascarable: eventos como errores de
memoria no recuperables.
* Inerrupción Mascarable: pueder ser apagada por la
CPU antes de la ejecución de secuencias críticas que no
deben ser interrumpidas.
Tabla de vectores del procesador
Pentium de Intel
ACCESO DIRECTO A MEMORIA

• Evitar usar el proceso de E/S programada cuando se


transfieren datos grandes para no sobrecargar la CPU.
• Transferir parte del trabajo a un procesador de propósito
especial denominado controlador de acceso directo a memoria
(DMA).
• Cuando la CPU escribe la dirección del bloque de comandos
en el controlador de DMA, luego sigue con otro trabajo y el
controlador de DMA opera directamente el bus de la
memoria colocando direcciones para realizar transferencias
sin ayuda de la CPU principal.
• Algunas arquitecturas utilizan direcciones de memoria física
para DMA, pero otras efectúan un acceso directo a memoria
virtual, utilizando direcciones virtuales que se traducirán a
direcciones de memoria física.
Pasos en una transferencia
DMA
INTERFAZ DE E/S DE LAS
APLICACIONES
Examinaremos técnicas de estructuración y las interfaces para el
sistema operativo que permiten tratar a los dispositivos de E/S en
una forma estándar y uniforme.

Problemas complejos de ingeniería de software, esto implica una


abstracción, encapsulado y desarrollo de capas de software.

Aspectos de variación: modo de transferencia de datos, método de acceso,


plan de transferencia, compartimiento, velocidad de dispositivo, dirección de
E/S
INTERFAZ DE E/S DE LAS
APLICACIONES

Flujo de caracteres o bloque: Un dispositivo transfiere los bytes uno a


uno, mientras que un dispositivo de bloque transfiere un bloque de bytes
como una sola unidad.
Acceso Secuencial o aleatorio: Un dispositivo secuencial transfiere los
datos en un orden fijo determinado por el dispositivo, mientras que el
usuario de un dispositivo de acceso aleatorio puede instruir al dispositivo
para que se posicione en cualquiera de las ubicaciones disponibles de
almacenamiento de bits.
Síncrono o asíncrono: Un dispositivo síncrono realiza transferencias de
datos con tiempos de respuesta predecibles. Un dispositivo asíncrono
exhibe unos tiempos de respuesta irregulares o no predecibles.
INTERFAZ DE E/S DE LAS APLICACIONES

Compartible o dedicado: Un dispositivo compartible puede ser usado de


forma concurrente por varios procesos o hebras; un dispositivo dedicado
no puede ser compartido de esta forma.
Velocidad de operación: Las velocidades de los dispositivos van desde
unos pocos bytes por segundo a unos cuantos gigabytes por segundo.
Lectura-escritura; sólo lectura o sólo escritura: Algunos dispositivos
realizan tanto entrada como salida, pero otros sólo soportan una única
dirección de transferencia de los datos..
RELOJES Y TEMPORIZADORES

• Proporciona: la hora, tiempo transcurrido y el valor de un


temporizador para activar la operación X a la hora T (cronómetro).

• El hardware para medir el tiempo transcurrido y activar operaciones


se denomina temporizador de intervalos programable y se lo
usa para fijar una cantidad de tiempo y genere una interrupción,
realice operaciones periódicas.
E/S CON BLOQUEO Y SIN BLOQUEO

• Con Bloqueo: se suspende la ejecución de dicha aplicación. La


mayoría de SO la utilizan, puesto que es más fácil de
entender y aplicar.
• Implementación multihilos.
• Algunos procesos a nivel de usuario necesitan E/S sin
bloqueo, ya que no detiene la ejecución de la aplicación por
mucho tiempo, regresando rápidamente con un valor de
retorno que indica cuántos bytes fueron transferidos.
• Asíncrono: llamada que regresa inmediatamente, sin esperar a
que se complete la operación E/S. (difícil de usar)
SUBSISTEMA DE E/S DEL KERNEL

* El subsistema de E/S kernel ofrece varios servicios y se apoya en el


hardware y se apoya en la infraestructura de manejadores de dispositivo.

* Los servicios son la planificación de E/S, la Asignación de buffers, la


asignación de caché, el spooling, la reservación de dispositivos y el manejo
de errores.
SUBSISTEMA DE E/S DEL KERNEL
PLANIFICACIÓN DE E/S
- Se debe determinar un orden adecuado para la ejecución de las
solicitudes.

- Mejora el desempeño global del sistema, así como compartir


equitativamente el acceso a dispositivos entre los procesos y
reducir el tiempo de espera promedio para la terminación de E/S.

- Los diseñadores de SO implementan la planificación manteniendo


una cola de solicitudes para cada dispositivo, puede darle prioridad
a las solicitudes sensibles a demoras (memeria virtual).
Empleo de buffers

º buffer: área de memoria que


almacena datos mientras éstos
se transfieren entre dos
dispositivos o un dispositivo
y una aplicación.

º Razones para el empleo de


buffers:
1. Hacer frente a la falta de
correspondencia en velocidad
entre el productor y el
consumidor de un flujo de
datos.
2. Lograr una adaptación entre dispositivos que tienen
diferentes tamaños de transferencia de datos
(fragmentación y reensamblaje de paquetes en la red).

3. Soportar semántica de copiado para E/S de


aplicaciones.
Empleo de Cachés
- Caché: Región de memoria rápida que contiene copias de datos. El
acceso a la caché es más eficiente que el acceso a la original.

- Diferencia entre buffer y caché es que el primero puede contener la


única copia existente de un elemento de datos y una caché sólo
contiene en almacenamiento más rápido una copia de un elemento
que reside en alguna otra parte.

- El empleo de cachés y de buffers son dos funciones distintas, aunque


en ocasiones se puede utilizar una región de memoria para ambos
propósitos.
Spooling y reservación de
dispositivos

• Spool: es un buffer que contien la salida para un dispositivo, como una


impresora, que no puede aceptar flujos de datos entercalados.

• El spooling es una forma en que los SO pueden coordinar la salida


concurrente.

• Reservación de un dispositivo.- proporciona acceso exclusivo a un dispositivo.


Manejo de Errores
Los dispositivos y las transferencias de E/S pueden fallar en
muchas formas, ya sea por razones transitorias o permanente.

Los SO pueden a menudo compensar eficazmente las fallas


transitorias.

Una llamada al sistema de E/S devolverá 1 bit de información


acerca del estado de la llamada, indicando ya sea un éxito o
fracaso.
El hardware puede proporcionar una información de error
con gran detalle, aunque los SO actuales no lo hacen tan
detallado.
ESTRUCTURA DE DATOS DEL
KERNEL
El Kernel necesita mantener información de estado acerca del
uso de los componentes de E/S lo que realiza mediante tabla
de archivos abiertos, conexiones de red, estado de
dispositivos de carácter, etc…

Algunos SO utilizan métodos orientados a objetos y el paso


de mensajes para llevar a cabo la E/S.

El subsistema de E/S coordina una extensa colección de


servicios, que están disponibles para las aplicaciones y para
otras partes del kernel.
Estructura del Kernel de E/S de
UNIX
MANEJO DE LAS SOLICITUDES
DE E/S

Considere que se esta leyendo un archivo desde el disco para un


proceso:

Determine el dispositivo que pertenece a ese archivo.


Descifrar el nombre que representa a ese archivo.
Si los datos no están en el buffer, realizar una E/S física.
Asignar espacio para recibir datos y planificar E/S.
 Realizar transferencia de datos
Determinar estado de solicitud
Retornar el control al proceso.
Ciclo de vida de una solicitud de
E/S
Desempeño

 La actividad de E/S es un factor importante en el desempeño del sistema, por lo que


pone de manifiesto cualquier deficiencia en los mecanismos de manejo de
interrupciones en el kernel.

 Demandas de la CPU para ejecutar código de manejadores de dispositivos ponen en


manifiesto cualquier deficiencia en el manejo de interrupciones del Kernel.

 Podemos aplicar varios principios para mejorar la eficiencia de E/S:

1. Reducir el número de conmutaciones de contexto.


2. Reducir el número de datos de copiado.
3. Reducir la frecuencia de las interrupciones.
4. Incrementar la concurrencia.
5. Utilizar DMA.
6. Equilibrar el desempeño de la CPU, el subsistema de memoria, el bus y el sistema de
E/S.
Progresión de la funcionalidad de
dispositivos

También podría gustarte