Sistema E S

10,417 views
10,125 views

Published on

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

Published in: Business, Technology
1 Comment
1 Like
Statistics
Notes
  • excelente
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
10,417
On SlideShare
0
From Embeds
0
Number of Embeds
50
Actions
Shares
0
Downloads
333
Comments
1
Likes
1
Embeds 0
No embeds

No notes for slide

Sistema E S

  1. 1. SISTEMAS OPERATIVOS UTPL <ul><li>SISTEMAS DE ENTRADA/ </li></ul><ul><li>SALIDA </li></ul>
  2. 2. SISTEMAS DE ENTRADA/SALIDA <ul><li>Generalidades de los Sistemas de E/S </li></ul><ul><li>Hardware de E/S </li></ul><ul><li>Subsistema de E/S </li></ul><ul><li>Técnicas de E/S </li></ul>
  3. 3. 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.
  4. 4. GENERALIDADES DE LOS SISTEMAS DE E/S <ul><li>La tecnología de E/S exhibe dos tendencias que están en conflicto: </li></ul><ul><li>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. </li></ul><ul><li>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. </li></ul><ul><li>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. </li></ul>
  5. 5. 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.
  6. 6. OBJETIVOS DEL SISTEMA DE E/S <ul><li>Proporcionar una interfaz uniforme para el acceso a los dispositivos (independencia del dispositivo) ‏ . </li></ul><ul><li>Proporcionar manejadores (drivers) para los dispositivos concretos. </li></ul><ul><li>Tratar automáticamente los errores más típicos. </li></ul><ul><li>Para los dispositivos de almacenamiento, utilizar cachés. </li></ul><ul><li>Para los discos, planificar de forma óptima las peticiones. </li></ul>
  7. 7. HARDWARE DE E/S Las computadoras operan muchas clases de dispositivos (almacenamiento, transmisión, interfaz). 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 (puerto serial, usb ). Si uno o más dispositivos utilizan un conjunto de cables, la conexión se denomina bus.
  8. 8. Estructura Típica de un bus de PC
  9. 9. HARDWARE DE E/S <ul><li>BUS PCI </li></ul><ul><li>(Peripheral Component Interconnect). Conecta el subsistema de de procesador-memoria a los dispositivos rápidos. </li></ul><ul><li>Define las interconecciones y los protocolos de transferencia utilizados por placas que se conecten a al bus ubicado en la placa madre. </li></ul><ul><li>BUS de Expansión </li></ul><ul><li>Conecta los dispositivos relativamente lentos. </li></ul>
  10. 10. 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.
  11. 11. 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:
  12. 12. 2000-10000 &quot; &quot; DISCO MAGNETICO 2000 &quot; &quot; CINTA MAGNETICA 1000 &quot; &quot; CD 100 Bloque Almacenamiento FLOPPY 2,0-8,0 &quot; Entrada / salida MODEM 200 &quot; &quot; IMPRESORA (Láser) ‏ 1,0 &quot; &quot; IMPRESORA (Línea) ‏ 0,6 &quot; Salida VOZ (Salida) ‏ 400 &quot; &quot; SCANNER 0,02 &quot; &quot; MOUSE 0,01 Carácter Entrada TECLADO TASA KB/SEG. CLASIFICACION COMPORTAMIENTO DISPOSITIVO
  13. 13. HARDWARE DE E/S <ul><li>¿Cómo puede el procesador entregar comandos y datos a un controlador para realizar una transferencia de E/S? </li></ul><ul><li>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. </li></ul><ul><li>Hay dos formas de comunicación: </li></ul><ul><li>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. </li></ul><ul><li>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. </li></ul>
  14. 14. HARDWARE DE E/S Ubicación de puertos de E/S para dispositivos en computadoras compatibles con PC
  15. 15. HARDWARE DE E/S <ul><li>Un puerto de E/S típicamente consta de cuatro regitros: </li></ul><ul><li>Status: Comando actual ya se completo, esta disponible un byte para leer en la data-in o habido un error en el dispositivo. </li></ul><ul><li>Control: comando. </li></ul><ul><li>Data-in: Obtiene entradas. </li></ul><ul><li>Data-out: Envia salidas. </li></ul>
  16. 16. ESCRUTINIO <ul><li>Ejemplo de interacción entre el anfitrión y el controlador </li></ul><ul><li>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. </li></ul><ul><li>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. </li></ul>
  17. 17. <ul><li>Siguiendo con el ejemplo </li></ul><ul><li>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. </li></ul><ul><li>Luego el anfitrión prende el bit write en el registro command y escribre un byte en el registro data-out </li></ul><ul><li>El anfitron prende el bit command-ready </li></ul><ul><li>Cuando el controlador se da cuenta uqe el bit commanda-ready está prendido, prende el bit busy </li></ul><ul><li>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. </li></ul><ul><li>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 </li></ul>ESCRUTINIO
  18. 18. <ul><li>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. </li></ul><ul><li>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). </li></ul>ESCRUTINIO
  19. 19. INTERRUPCIONES <ul><li> Una interrupción es el mecanismo que le permite al controlador de hardware notificar a la CPU cuando un dispositivo esta listo para servicio. </li></ul><ul><li> 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 </li></ul><ul><li>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. </li></ul>
  20. 21. <ul><li>Características para el manejo de interrupciones: </li></ul><ul><li>- Capacidad para diferir el manejo de interrupciones durante un procesamiento crítico. </li></ul><ul><li>- Eficiente manejo de interrupciones para un buen desempeño del sistema (evitar hacer escrutinio). </li></ul><ul><li>- Basado en prioridad. </li></ul><ul><li>Líneas de solicitud de interrupción CPU: </li></ul><ul><li>* Interrupción no mascarable : eventos como errores de memoria no recuperables. </li></ul><ul><li>* 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. </li></ul>INTERRUPCIONES
  21. 22. Tabla de vectores del procesador Pentium de Intel
  22. 23. ACCESO DIRECTO A MEMORIA <ul><li>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). </li></ul><ul><li>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). </li></ul><ul><li>Cuando se quiere iniciar una tranferencia DMA el anfitrión escribe un bloque de comandos DMA en la memoria. </li></ul><ul><li>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. </li></ul><ul><li>Cuando el controlador DMA se apropia del bus la CPU por momento no puede acceder a memoria principal. </li></ul><ul><li>Cuando termina la transferencia el controlador de la DMA interumpe a la CPU </li></ul>
  23. 24. Pasos en una transferencia DMA
  24. 25. INTERFAZ DE E/S DE LAS APLICACIONES <ul><li>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. </li></ul><ul><li>Problemas complejos de ingeniería de software, esto implica una abstracción, encapsulado y desarrollo de capas de software. </li></ul>
  25. 26. Estructura de E/S del kernel
  26. 27. <ul><li>Aspectos de variación en los dispositivos: </li></ul><ul><ul><li>modo de transferencia de datos (flujo de caracteres o bloques) ‏ </li></ul></ul><ul><ul><li>método de acceso (secuencuencial o aleatoreo) ‏ </li></ul></ul><ul><ul><li>plan de transferencia (sincronico o asincronico) ‏ </li></ul></ul><ul><ul><li>compartimiento(compartido o dedicado ) ‏ </li></ul></ul><ul><ul><li>velocidad de dispositivo, </li></ul></ul><ul><ul><li>dirección de E/S (lectura/escritura ) ‏ </li></ul></ul>INTERFAZ DE E/S DE LAS APLICACIONES
  27. 28. Características de los dispositivos de E/S
  28. 29. <ul><li>BLOQUE: </li></ul><ul><li>La información se almacena en bloques de tamaño fijo y cada bloque tiene su propia dirección. </li></ul><ul><li>Se puede leer(read), escribir(write) o buscar(seek) en un bloque de forma independiente de los demás, en cualquier momento </li></ul><ul><li>Acceso secuencial o aleatorio a nivel de bloque. </li></ul><ul><li>Ejemplos: DVD, discos duros, cintas magnéticas </li></ul><ul><li>Operaciones: leer, escribir y buscar </li></ul><ul><li>CARÁCTER </li></ul><ul><li>La información se transfiere o recive como un flujo de caracteres. </li></ul><ul><li>Operaciones: obtener (get) y colocar (put) caracteres. </li></ul><ul><li>Acceso secuencial a nivel de caracteres. </li></ul><ul><li>Ejemplos: tarjetas de audio, teclados, modems, impresora. </li></ul>Dispositivos de Bloque o Carácter
  29. 30. DISPOSITIVOS DE RED <ul><li>Tiene una interfaz propia, variando de los dispositivos de bloque y caracter. </li></ul><ul><li>Interfaz socket disponible en varios SO incluyendo UNIX y Windows NT. </li></ul><ul><li>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. </li></ul><ul><li>Soporta la implementación de servidores con select, eliminando el escrutinio y la espera ocupada. </li></ul>
  30. 31. RELOJES Y TEMPORIZADORES <ul><li>Proporciona: la hora, tiempo transcurrido y el valor de un temporizador para activar la operación X a la hora T (cronómetro) . </li></ul><ul><li>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. </li></ul>
  31. 32. SUBSISTEMA DE E/S DEL KERNEL <ul><li>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. </li></ul><ul><li>Los servicios que ofrece son: </li></ul><ul><ul><li>Planificación de E/S </li></ul></ul><ul><ul><li>Asignación de buffers </li></ul></ul><ul><ul><li>Asignación de caché </li></ul></ul><ul><ul><li>Spooling </li></ul></ul><ul><ul><li>Reservación de dispositivos </li></ul></ul><ul><ul><li>Manejo de errores. </li></ul></ul>
  32. 33. Planificación de E/S <ul><li>Se debe determinar un orden adecuado para la ejecución de las solicitudes. </li></ul><ul><li>Rara vez el orden de las llamada al sistema son la mejor opción. </li></ul><ul><li>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. </li></ul><ul><li>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. </li></ul><ul><li>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). </li></ul><ul><li>Otra forma de mejor la eficiencia es el uso de la memoria principal o disco, mediante el empleo de buffer, caché y spooling. </li></ul>
  33. 34. Empleo de buffers <ul><li>Buffer: área de memoria que almacena datos mientras éstos se transfieren entre dos dispositivos o un dispositivo y una aplicación. </li></ul><ul><li>Razones para el empleo de buffers: </li></ul><ul><li>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. </li></ul>
  34. 36. <ul><li>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). </li></ul><ul><li>3. Soportar semántica de copiado para E/S de aplicaciones. </li></ul>Empleo de buffers
  35. 37. Empleo de Cachés <ul><li>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. </li></ul><ul><li>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. </li></ul><ul><li>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. </li></ul>
  36. 38. Spooling y reservación de dispositivos <ul><li>Spool: es un buffer que contiene la salida para un dispositivo, como una impresora, que no puede aceptar flujos de datos entercalados. </li></ul><ul><li>El spooling es una forma en que los SO pueden coordinar la salida concurrente. </li></ul><ul><li>Reservación de un dispositivo.- proporciona acceso exclusivo a un dispositivo. </li></ul>
  37. 39. Manejo de Errores <ul><li>El SO hace uso de memoria protegida para resguardar contra muchas clases de errores en el hardware y aplicaciones. </li></ul><ul><li>Los dispositivos y las transferencias de E/S pueden fallar en muchas formas, ya sea por razones transitorias o permanente. </li></ul><ul><li>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). </li></ul><ul><li>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. </li></ul><ul><li>El hardware puede proporcionar una información de error con gran detalle, aunque los SO actuales no lo hacen tan detallado. </li></ul>
  38. 40. Manejo de Errores <ul><li>Desafortunadamente, si un componente un componente importante experimenta un fallo, es poco probable que el SO logre recuperarse. </li></ul><ul><li>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. </li></ul><ul><li>El hardware puede proporcionar una información de error con gran detalle, aunque los SO actuales no lo hacen tan detallado. </li></ul>
  39. 41. Estructura de datos del kernel <ul><li>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… </li></ul><ul><li>Algunos SO utilizan métodos orientados a objetos y el paso de mensajes para llevar a cabo la E/S. </li></ul><ul><li>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. </li></ul>
  40. 42. Estructura del Kernel de E/S de UNIX
  41. 43. MANEJO DE LAS SOLICITUDES DE E/S <ul><li>Considere que se esta leyendo un archivo desde el disco para un proceso: </li></ul><ul><li>Determine el dispositivo que pertenece a ese archivo. </li></ul><ul><li>Descifrar el nombre que representa a ese archivo. </li></ul><ul><li>Si los datos no están en el buffer, realizar una E/S física. </li></ul><ul><li>Asignar espacio para recibir datos y planificar E/S. </li></ul><ul><li>Realizar transferencia de datos </li></ul><ul><li>Determinar estado de solicitud </li></ul><ul><li>Retornar el control al proceso. </li></ul>
  42. 44. Ciclo de vida de una solicitud de E/S
  43. 45. Desempeño <ul><li>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 . </li></ul><ul><li>Demandas de la CPU para ejecutar código de manejadores de dispositivos ponen en manifiesto cualquier deficiencia en el manejo de interrupciones del Kernel. </li></ul><ul><li>Podemos aplicar varios principios para mejorar la eficiencia de E/S: </li></ul><ul><li>1. Reducir el número de conmutaciones de contexto. </li></ul><ul><li>2. Reducir el número de datos de copiado. </li></ul><ul><li>3. Reducir la frecuencia de las interrupciones. </li></ul><ul><li>4. Incrementar la concurrencia. </li></ul><ul><li>5. Utilizar DMA. </li></ul><ul><li>6. Equilibrar el desempeño de la CPU, el subsistema de memoria, el bus y el sistema de E/S. </li></ul>
  44. 46. Progresión de la funcionalidad de dispositivos

×