Tema del día: Entrada / Salida
Objetivos En esta clase trataremos de: Comprender las problemáticas asociadas a la gestión de dispositivos de entrada/salida. Analizar las estrategias adoptadas por los sistemas operativos para paliar las problemáticas anteriormente mencionadas. Poder caracterizar los distintos dispositivos de entrada/salida y, a partir de estas características,  determinar las estrategias apropiadas para cada uno de ellos.
Repaso... Cómo está constituida una computadora? Bus de Direcciones Bus de Datos Arquitectura Von Neumann
Jerarquía de Memoria Registros Memoria RAM Discos Rígidos Lectoras CD/DVD, Cintas < 50 x 10 -3  seg. > 100 x 10 -3  seg. < 100 x 10 -9  seg. < 10 x 10 -9  seg.
Dispositivos de E/S Qué dispositivos de E/S conoce? Dispositivos de interfaz usuario-computador. Dispositivos de almacenamiento. Dispositivos de comunicaciones. Qué tienen en común? Qué tienen de diferente?
Dispositivos de E/S Cómo se comunican con la CPU? Un mouse o un teclado? Un disco rígido o una lectora de DVD? Una placa de video? Un módem o una placa de Red?
Dispositivos de E/S El  modelo  de un  dispositivo de E/S está formado por dos partes: El periférico o dispositivo en sí. Controladoras o unidades de E/S.
Controladoras Las controladoras: Son muy variadas, casi tanto como los dispositivos de E/S. Algunas incluyen su propia CPU y memoria. Muchas pueden controlar múltiples dispositivos e incluso de diferentes tipos. Tratan de proporcionar una interfaz estándar. Respecto a E/S, son el componente más importante desde el punto de vista del S.O.
Controladoras Cómo accede la CPU a la controladora? A través de una interfaz de programación de bajo nivel que permite acceder a los registros de la controladora. Hay tres tipos de registros importantes: Registros de  Datos . Registros de  Control . Registros de  Estado .
Conexión de Dispositivos Controladora Estado Control Datos
Controladoras Qué necesita saber el S.O. para poder acceder y utilizar la controladora? Dónde está el dispositivo? Cómo accedo a sus registros? Qué información manejan los dispositivos de esa controladora y cómo la manejan?  Qué características tiene la interacción entre la CPU y la controladora?
Direccionamiento Cómo acceder a registros de la controladora? Hay dos modelos (enfoques): Usando direcciones  especiales  llamadas puertos para las operaciones de E/S. Cada controladora tiene un puerto de E/S, una interrupción Hw y un vector de interrupciones. Es necesario conocer la dirección de E/S y programar las interrupciones de E/S.  Usando direcciones de la memoria principal (modelo proyectado en memoria).
Manejo de Datos En qué idioma (datos) habla la controladora? Podemos generalizar dos enfoques: Transferencia de bloques de bytes. Los bloques manejados tienen un tamaño fijo. Los bloques se direccionan de manera independiente uno de otro. Se utiliza en hardware que requiere accesos de un tamaño determinado.  Transferencia de flujos de caracteres de texto.
Interacción Cómo interactuán CPU y la controladora? La CPU se encarga de solicitar la operación y esperar a que la controladora la realice. (E/S programada, también llamada E/S con sondeo o polling) La CPU solicita la operación y luego comienza a ejecutar otro código. La controladora es la responsable de notificar a la CPU cuando la operación finalice. (E/S dirigida por interrupciones)
Aspectos Distintivos Características relevantes para el S.O.: Direccionamiento Modelo de Puertos. Modelo Proyectado en Memoria. Tipo y Unidad de Transferencia Dispositivos de Bloques. Dispositivos de Caracteres. Interacción CPU – Controladora E/S Programada. E/S Dirigida por Interrupciones.
Prestaciones Existen algunos problemas que afectan la performance de las operaciones de E/S... Cuántas veces tiene que intervenir la CPU para transferir 500 bloques de un disco IDE a la memoria principal? (con interrupciones)  Qué parte de la operación de lectura de un bloque de disco requiere más tiempo? Si tengo dos discos en la controladora, qué hace la controladora mientras uno de los discos está efectuando una búsqueda?
Arquitectura de E/S El sistema de E/S de un sistema operativo: Está constituido por un conjunto de manejadores , cada uno de los cuales está asociado a uno o más dispositivos de E/S. Ofrece servicios genéricos para manejar los objetos de entrada / salida. Estos elementos se organizan siguiendo una estructura por capas.
Estructura
Software de E/S Hardware Software Modo Usuario Modo Núcleo Sw de E/S ind.  de dispositivo Sw de E/S dep.  de dispositivo
Interfaz de Aplicaciones Cómo acceden los procesos al sistema de entrada / salida? A través de los servicios del sistema operativo (llamadas al sistema). A través de utilidades que hacen las llamadas al sistema en representación del usuario. Bibliotecas (libc.so, kernel32.dll) Demonios del sistema (spoolers, inet.d)
Interfaz de Aplicaciones Problemas del programador de aplicaciones: Necesito modificar mi programa cada vez que necesita acceder a un dispositivo distinto? Es posible que mi aplicación pueda seguir haciendo otras actividades mientras se está esperando el resultado de una E/S? Existe alguna manera de evitar que otros programas accedan al recurso que actualmente estoy usando? Cómo sé si la operación falló y el por qué? Es posible generar código que se pueda portar a otros sistemas operativos sin cambiar mi código?
Lo que queda por ver... Aún queda por delante: Almacenamiento Secundario. Almacenamiento Terciario. El Terminal. El Reloj. Los dispositivos de comunicaciones. Servicios de E/S POSIX y Win32.
Bibliografía Esta clase  debe  ser ampliada leyendo: Carretero (S.O. Visión Aplicada): 7.2 Caracterización de los dispositivos de E/S. 7.3 Arquitectura del sistema de E/S. 7.4 Interfaz de Aplicaciones. Nutt (Sistemas Operativos): 5.2 Estrategias de E/S. 5.5 Características de las clases de Dispositivos. Tanenbaum (S.O. Modernos): 5.4 Discos.
Gracias !   Ing. Gabriel E. Arellano [email_address] http://www.gabriel-arellano.com.ar/so/ (2008) Gabriel E. Arellano Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. The GNU Free Documentation License as applicable to this document can be found at:  http://www.gnu.org/copyleft/fdl.html

Introducción a Entrada/Salida

  • 1.
    Tema del día:Entrada / Salida
  • 2.
    Objetivos En estaclase trataremos de: Comprender las problemáticas asociadas a la gestión de dispositivos de entrada/salida. Analizar las estrategias adoptadas por los sistemas operativos para paliar las problemáticas anteriormente mencionadas. Poder caracterizar los distintos dispositivos de entrada/salida y, a partir de estas características, determinar las estrategias apropiadas para cada uno de ellos.
  • 3.
    Repaso... Cómo estáconstituida una computadora? Bus de Direcciones Bus de Datos Arquitectura Von Neumann
  • 4.
    Jerarquía de MemoriaRegistros Memoria RAM Discos Rígidos Lectoras CD/DVD, Cintas < 50 x 10 -3 seg. > 100 x 10 -3 seg. < 100 x 10 -9 seg. < 10 x 10 -9 seg.
  • 5.
    Dispositivos de E/SQué dispositivos de E/S conoce? Dispositivos de interfaz usuario-computador. Dispositivos de almacenamiento. Dispositivos de comunicaciones. Qué tienen en común? Qué tienen de diferente?
  • 6.
    Dispositivos de E/SCómo se comunican con la CPU? Un mouse o un teclado? Un disco rígido o una lectora de DVD? Una placa de video? Un módem o una placa de Red?
  • 7.
    Dispositivos de E/SEl modelo de un dispositivo de E/S está formado por dos partes: El periférico o dispositivo en sí. Controladoras o unidades de E/S.
  • 8.
    Controladoras Las controladoras:Son muy variadas, casi tanto como los dispositivos de E/S. Algunas incluyen su propia CPU y memoria. Muchas pueden controlar múltiples dispositivos e incluso de diferentes tipos. Tratan de proporcionar una interfaz estándar. Respecto a E/S, son el componente más importante desde el punto de vista del S.O.
  • 9.
    Controladoras Cómo accedela CPU a la controladora? A través de una interfaz de programación de bajo nivel que permite acceder a los registros de la controladora. Hay tres tipos de registros importantes: Registros de Datos . Registros de Control . Registros de Estado .
  • 10.
    Conexión de DispositivosControladora Estado Control Datos
  • 11.
    Controladoras Qué necesitasaber el S.O. para poder acceder y utilizar la controladora? Dónde está el dispositivo? Cómo accedo a sus registros? Qué información manejan los dispositivos de esa controladora y cómo la manejan? Qué características tiene la interacción entre la CPU y la controladora?
  • 12.
    Direccionamiento Cómo accedera registros de la controladora? Hay dos modelos (enfoques): Usando direcciones especiales llamadas puertos para las operaciones de E/S. Cada controladora tiene un puerto de E/S, una interrupción Hw y un vector de interrupciones. Es necesario conocer la dirección de E/S y programar las interrupciones de E/S. Usando direcciones de la memoria principal (modelo proyectado en memoria).
  • 13.
    Manejo de DatosEn qué idioma (datos) habla la controladora? Podemos generalizar dos enfoques: Transferencia de bloques de bytes. Los bloques manejados tienen un tamaño fijo. Los bloques se direccionan de manera independiente uno de otro. Se utiliza en hardware que requiere accesos de un tamaño determinado. Transferencia de flujos de caracteres de texto.
  • 14.
    Interacción Cómo interactuánCPU y la controladora? La CPU se encarga de solicitar la operación y esperar a que la controladora la realice. (E/S programada, también llamada E/S con sondeo o polling) La CPU solicita la operación y luego comienza a ejecutar otro código. La controladora es la responsable de notificar a la CPU cuando la operación finalice. (E/S dirigida por interrupciones)
  • 15.
    Aspectos Distintivos Característicasrelevantes para el S.O.: Direccionamiento Modelo de Puertos. Modelo Proyectado en Memoria. Tipo y Unidad de Transferencia Dispositivos de Bloques. Dispositivos de Caracteres. Interacción CPU – Controladora E/S Programada. E/S Dirigida por Interrupciones.
  • 16.
    Prestaciones Existen algunosproblemas que afectan la performance de las operaciones de E/S... Cuántas veces tiene que intervenir la CPU para transferir 500 bloques de un disco IDE a la memoria principal? (con interrupciones) Qué parte de la operación de lectura de un bloque de disco requiere más tiempo? Si tengo dos discos en la controladora, qué hace la controladora mientras uno de los discos está efectuando una búsqueda?
  • 17.
    Arquitectura de E/SEl sistema de E/S de un sistema operativo: Está constituido por un conjunto de manejadores , cada uno de los cuales está asociado a uno o más dispositivos de E/S. Ofrece servicios genéricos para manejar los objetos de entrada / salida. Estos elementos se organizan siguiendo una estructura por capas.
  • 18.
  • 19.
    Software de E/SHardware Software Modo Usuario Modo Núcleo Sw de E/S ind. de dispositivo Sw de E/S dep. de dispositivo
  • 20.
    Interfaz de AplicacionesCómo acceden los procesos al sistema de entrada / salida? A través de los servicios del sistema operativo (llamadas al sistema). A través de utilidades que hacen las llamadas al sistema en representación del usuario. Bibliotecas (libc.so, kernel32.dll) Demonios del sistema (spoolers, inet.d)
  • 21.
    Interfaz de AplicacionesProblemas del programador de aplicaciones: Necesito modificar mi programa cada vez que necesita acceder a un dispositivo distinto? Es posible que mi aplicación pueda seguir haciendo otras actividades mientras se está esperando el resultado de una E/S? Existe alguna manera de evitar que otros programas accedan al recurso que actualmente estoy usando? Cómo sé si la operación falló y el por qué? Es posible generar código que se pueda portar a otros sistemas operativos sin cambiar mi código?
  • 22.
    Lo que quedapor ver... Aún queda por delante: Almacenamiento Secundario. Almacenamiento Terciario. El Terminal. El Reloj. Los dispositivos de comunicaciones. Servicios de E/S POSIX y Win32.
  • 23.
    Bibliografía Esta clase debe ser ampliada leyendo: Carretero (S.O. Visión Aplicada): 7.2 Caracterización de los dispositivos de E/S. 7.3 Arquitectura del sistema de E/S. 7.4 Interfaz de Aplicaciones. Nutt (Sistemas Operativos): 5.2 Estrategias de E/S. 5.5 Características de las clases de Dispositivos. Tanenbaum (S.O. Modernos): 5.4 Discos.
  • 24.
    Gracias ! Ing. Gabriel E. Arellano [email_address] http://www.gabriel-arellano.com.ar/so/ (2008) Gabriel E. Arellano Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. The GNU Free Documentation License as applicable to this document can be found at: http://www.gnu.org/copyleft/fdl.html