Sistema E S

46
SISTEMAS OPERATIVOS UTPL SISTEMAS DE ENTRADA/ SALIDA

description

DIAPOSITIVAS CORRESPONDITES A SISTEMAS OPERATIVOS... SOBRE SISTEMAS DE ENTRADA - SALIDA

Transcript of Sistema E S

Page 1: Sistema E S

SISTEMAS OPERATIVOSUTPL

SISTEMAS DE ENTRADA/SALIDA

Page 2: Sistema E S

SISTEMAS DE ENTRADA/SALIDA

Generalidades de los Sistemas de E/S Hardware de E/S Subsistema de E/S Técnicas de E/S

Page 3: Sistema E S

GENERALIDADES DE LOS SISTEMAS DE E/S

Las operaciones de E/S y el procesamiento son las dos tareas principales de un computador.

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.

Page 4: Sistema E S

GENERALIDADES DE LOS SISTEMAS 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.

• 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.

Page 5: Sistema E S

GENERALIDADES DE LOS SISTEMAS DE E/S

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.

Page 6: Sistema E S

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.

Page 7: Sistema E S

HARDWARE DE E/S

Las computadoras operan muchas clases de Las computadoras operan muchas clases de dispositivos (almacenamiento, transmisión, interfaz).dispositivos (almacenamiento, transmisión, interfaz).

Un dispositivo se comunica con un sistema de cómputo Un dispositivo se comunica con un sistema de cómputo enviando señales a través de un cable o enviando señales a través de un cable o inclusoincluso a través a través de aire. de aire.

El dispositivo se comunica con la máquina mediante un El dispositivo se comunica con la máquina mediante un punto de conexión llamado punto de conexión llamado puerto puerto (puerto serial, usb(puerto serial, usb).).

Si uno o más dispositivos utilizan un conjunto de cables, la conexión se denomina bus.

Page 8: Sistema E S

Estructura Típica de un bus de PC

Page 9: Sistema E S

HARDWARE DE E/S

BUS PCI•(Peripheral Component Interconnect). Conecta el subsistema de de procesador-memoria a los dispositivos rápidos.•Define las interconecciones y los protocolos de transferencia utilizados por placas que se conecten a al bus ubicado en la placa madre.

BUS de Expansión •Conecta los dispositivos relativamente lentos.

Page 10: Sistema E S

HARDWARE DE E/SUn Un controladorcontrolador es 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.

Page 11: Sistema E S

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, ratones.

A continuación un cuadro comparativo de diferentes dispositivos:

Page 12: Sistema E S

2000-10000""DISCO MAGNETICO

2000""CINTA MAGNETICA

1000""CD

100BloqueAlmacenamientoFLOPPY

2,0-8,0"Entrada / salidaMODEM

200""IMPRESORA (Láser)

1,0""IMPRESORA(Línea)

0,6"SalidaVOZ (Salida)

400""SCANNER

0,02""MOUSE

0,01CarácterEntradaTECLADO

TASA KB/SEG.

CLASIFICACIONCOMPORTAMIENTO

DISPOSITIVO

Page 13: Sistema E S

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.

Page 14: Sistema E S

HARDWARE DE E/S Ubicación de puertos de E/S para dispositivos en computadoras

compatibles con PC

Page 15: Sistema E S

HARDWARE DE E/S

Un puerto de E/S típicamente consta de cuatro regitros:

• Status: Comando actual ya se completo, esta disponible un byte para leer en la data-in o habido un error en el dispositivo.

• Control: comando.• Data-in: Obtiene entradas. • Data-out: Envia salidas.

Page 16: Sistema E S

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 (controlador y el anfitrión). El controlador indica su estado mediante el bit busy (1) en el registro status. El controlador prende el bit busy (1) cuando está ocupado trabajando y lo apaga (0) 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.

Page 17: Sistema E S

Siguiendo con el ejemplo El anfitrión lee repetidamente el bit busy hasta que dicho bit

se apaga, entonces 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, el controlador y el dispositivo deben de ser rápidos o se perderá los datos que se encuentran en el buffer del controlador.

Luego el anfitrión prende el bit write en el registro command y escribre un byte en el registro data-out

El anfitron prende el bit command-ready Cuando el controlador se da cuenta uqe el bit commanda-

ready está prendido, prende el bit busy El controlador lee el registro de comando y ve el comando de

escritura. lee el registro data-out y realiza la operación de E/S.

El controlador apaga el bit de command-ready, apaga el bit de error en el registro de estado para indicar que ha tenido éxito la E/S al dispositivo y apaga el bit busy para indicar que ha terminado

ESCRUTINIO

Page 18: Sistema E S

El dispositivo debe dar servicio rápidamente o se perderan datos, ya que el pequeño buffer en el controlador tendra un sobreflujo y perderá datos si el anfitrión espera demasiado tiempo antes de regresar a leer los bytes.

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. En tales casos, es más eficiente hacer que el controlador dle hardware notifique a la CPU cuando el dispositivo esta listo (Interrupción).

ESCRUTINIO

Page 19: Sistema E S

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

El hardware de la CPU tiene un cable llamado línea de

solicitud de interrupción que la CPU revisa después de ejecudar cada instrución.

Page 20: Sistema E S
Page 21: Sistema E S

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. Es utilizada por los controladores de dispositivos para solicitar servicio.

INTERRUPCIONES

Page 22: Sistema E S

Tabla de vectores del procesador Pentium de Intel

Page 23: Sistema E S

ACCESO DIRECTO A MEMORIA• Es costoso utilizar un procesador de propósito

general para vigilar los bits de estado y para alimentar datos a un registro de controlados (E/S programada PIO).

• Muchas computadoras evitan sobrecargas en la CPU principal con el PIO transfiriendo parte de este trabajo a un procesador de propósto especifico denominado controlador de acceso directo a memoria (DMA).

• Cuando se quiere iniciar una tranferencia DMA el anfitrión escribe un bloque de comandos DMA en la memoria.

• La CPU escribe este bloque en el contralador de la DMA y luego sigue con su trabajo. El controlador de DMA opera directamente el bus de la memoria colocando direcciones para realizar transferencias sin ayuda de la CPU principal.

• Cuando el controlador DMA se apropia del bus la CPU por momento no puede acceder a memoria principal.

• Cuando termina la transferencia el controlador de la DMA interumpe a la CPU

Page 24: Sistema E S

Pasos en una transferencia DMA

Page 25: Sistema E S

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.

Page 26: Sistema E S

Estructura de E/S del kernel

Page 27: Sistema E S

Aspectos de variación en los dispositivos: modo de transferencia de datos (flujo de

caracteres o bloques) método de acceso (secuencuencial o aleatoreo) plan de transferencia (sincronico o asincronico) compartimiento(compartido o dedicado ) velocidad de dispositivo, dirección de E/S (lectura/escritura)

INTERFAZ DE E/S DE LAS APLICACIONES

Page 28: Sistema E S

Características de los dispositivos de E/S

Page 29: Sistema E S

BLOQUE:• La información se almacena en bloques de tamaño fijo y

cada bloque tiene su propia dirección.• Se puede leer(read), escribir(write) o buscar(seek) en un

bloque de forma independiente de los demás, en cualquier momento

• Acceso secuencial o aleatorio a nivel de bloque.• Ejemplos: DVD, discos duros, cintas magnéticas• Operaciones: leer, escribir y buscar

CARÁCTER• La información se transfiere o recive como un flujo de

caracteres.• Operaciones: obtener (get) y colocar (put) caracteres.• Acceso secuencial a nivel de caracteres.• Ejemplos: tarjetas de audio, teclados, modems,

impresora.

Dispositivos de Bloque o Carácter

Page 30: Sistema E S

DISPOSITIVOS DE RED

Tiene una interfaz propia, variando de los dispositivos de bloque y caracter.

Interfaz socket disponible en varios SO incluyendo UNIX y Windows NT.

Permiten crear un socket, conectar uno local a una dirección remota, detectar cuando caulquier aplicación remota se conecta en el local, y enviar y recibir paquetes a través de la conexión.

Soporta la implementación de servidores con select, eliminando el escrutinio y la espera ocupada.

Page 31: Sistema E S

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.

Page 32: Sistema E S

SUBSISTEMA DE E/S DEL KERNEL• El subsistema de E/S kernel ofrece varios

servicios relacionados con la E/S y se apoya en el hardware y en la infraestructura de manejadores de dispositivo.

• Los servicios que ofrece son:• Planificación de E/S• Asignación de buffers • Asignación de caché• Spooling• Reservación de dispositivos • Manejo de errores.

Page 33: Sistema E S

Planificación de E/S

- Se debe determinar un orden adecuado para la ejecución de las solicitudes.

- Rara vez el orden de las llamada al sistema son la mejor opción.

- La planificación 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. En esta cola el planificador reacomoda la cola para mejorar la eficiencia global del sistemas y el tiempo de respuesta sea más corto.

- Además el sistema operativo debe ser justo de tal forma que se presente un buen servicio, dando prioridades a las solicitudes sensibles a demora (memoria virtual).

- Otra forma de mejor la eficiencia es el uso de la memoria principal o disco, mediante el empleo de buffer, caché y spooling.

Page 34: Sistema E S

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. Ejemplo: la transferencia de datos entre un módem y un disco duro.

Page 35: Sistema E S
Page 36: Sistema E S

2. Lograr una adaptación entre dispositivos que tienen diferentes tamaños de transferencia de datos (fragmentación y re-ensamblaje de paquetes en la red).

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

Empleo de buffers

Page 37: Sistema E S

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.

Page 38: Sistema E S

Spooling y reservación de dispositivos• Spool: es un buffer que contiene 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.

Page 39: Sistema E S

Manejo de Errores

El SO hace uso de memoria protegida para resguardar contra muchas clases de errores en el hardware y aplicaciones.

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, como por ejemplo una falla al leer (read) el disco da por resultado una nuevo intento de lectura y un error al enviar (send) datos por la red da por resultado un nuevo envió (resend).

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.

Page 40: Sistema E S

Manejo de Errores

Desafortunadamente, si un componente un componente importante experimenta un fallo, es poco probable que el SO logre recuperarse.

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.

Page 41: Sistema E S

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.

Page 42: Sistema E S

Estructura del Kernel de E/S de UNIX

Page 43: Sistema E S

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.

Page 44: Sistema E S

Ciclo de vida de una solicitud de E/S

Page 45: Sistema 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.

Page 46: Sistema E S

Progresión de la funcionalidad de dispositivos