sistema e s
DESCRIPTION
DIAPOSITIVAS CORRESPONDITES A SISTEMAS OPERATIVOS... SOBRE SISTEMAS DE ENTRADA - SALIDATRANSCRIPT
SISTEMAS OPERATIVOSUTPL
SISTEMAS DE ENTRADA/SALIDA
SISTEMAS DE ENTRADA/SALIDA
Generalidades de los Sistemas de E/S Hardware de E/S Subsistema de E/S Técnicas de 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.
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.
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.
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
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.
Estructura Típica de un bus de PC
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.
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.
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:
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
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
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.
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.
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
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
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.
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
Tabla de vectores del procesador Pentium de Intel
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
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.
Estructura de E/S del kernel
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
Características de los dispositivos de 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
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.
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.
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.
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.
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.
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
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 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.
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.
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.
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