Cuando se codifica un programa, se hace con la
intención de que ese programa pueda interactuar
con los usuarios del mismo, es decir, que el usuario
pueda pedirle que realice cosas y pueda
suministrarle datos con los que se quiere que haga
algo.

Una vez introducidos los datos y las órdenes, se
espera que el programa manipule de alguna forma
esos datos para proporcionarnos una respuesta a lo
solicitado.
Además, en muchas ocasiones interesa que el
programa guarde los datos que se le han
introducido, de forma que si el programa termina los
datos no se pierdan y puedan ser recuperados en
una sesión posterior. La forma más normal de hacer
esto es mediante la utilización de ficheros que se
guardarán en un dispositivo de memoria no volátil
(normalmente un disco).

A todas estas operaciones, que constituyen un flujo
de información del programa con el exterior, se les
conoce como Entrada/Salida (E/S).
Existen dos tipos de E/S;

La E/S estándar, que se realiza con el terminal del
usuario.

La E/S a través de fichero, en la que se trabaja con
ficheros de disco.
La entrada/salida que se comunica con el usuario a
través de la pantalla o de la ventana del terminal.




Los ficheros de texto están compuestos de
caracteres legibles, mientras que los binarios
pueden almacenar cualquier tipo de datos
(int, float, boolean,...).
Los dispositivos externos que tienen que hacer E/S
con          los       computadores           pueden
clasificarse, básicamente en tres categorías.

1. Dispositivos legibles por los humanos
2. Dispositivos legibles por la máquina
3. Dispositivos de comunicaciones
Apropiados para la comunicación con el usuario.
Como ejemplo se tienen los terminales de video, que
constan de un teclado, una pantalla y, quizá, otros
dispositivos como un ratón o una impresora.
Adecuados para comunicarse con equipos
electrónicos,    como     discos,    unidades de
cinta, sensores, controladores e impulsores.
Apropiados para comunicarse con dispositivos
lejanos. Por ejemplo, adaptadores de líneas digitales
y módems.
Los dispositivos de E/S se pueden dividir de
manera general en dos categorías:



•Bloque


•Carácter
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.
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,   interfaz de
comunicación.
La línea de separación no es rígida, hay dispositivos
que pueden ser del tipo bloque (cintas Magnéticas)
aunque son considerados del tipo carácter.
Con esta clasificación, un dispositivo que está fuera
de ellas, el “RELOJ”, no es orientado ni a bloque ni
de carácter. Si es un dispositivo especial, ya que lo
único que hace es generar interrupciones.
Otros aspectos importantes que hacen la diferencia
entre dispositivos son:

Comportamiento: entrada, salida, almacenamiento.

 Tasa de transferencia: tasa de peak de
transferencia entre dispositivos y memoria.
DISPOSITIVO       COMPORTAMIENTO      CLASIFICACION   TASA KB/SEG.

    TECLADO             Entrada            Carácter         0,01

     MOUSE              Entrada            Carácter         0,02

    SCANNER             Entrada            Carácter         400

   VOS (Salida)          Salida            Carácter         0,6

IMPRESORA (Línea)        Salida            Carácter         1,0

IMPRESORA (Láser)        Salida            Carácter         200

     MODEM           Entrada / salida      Carácter        2,0-8,0

    RED LAN          Entrada / salida      Carácter       500-6000

     FLOPPY          Almacenamiento        Bloque           100

       CD            Almacenamiento        Bloque           1000

CINTA MAGNETICA      Almacenamiento        Bloque           2000

DISCO MAGNETICO      Almacenamiento        Bloque        2000-10000
Los CONTROLADORES DE DISPOSITIVOS
(también llamados adaptadores de dispositivos) son
la parte electrónica de los periféricos, el cual puede
tener la forma de una tarjeta o un circuito impreso
integrado a la tarjeta maestra de la computadora.
Por ejemplo, existen controladores de discos que se
venden por separado y que se insertan en una
ranura de la computadora, o existen fabricantes de
computadoras que integran esa funcionalidad en la
misma tarjeta en que viene la unidad central de
procesamiento (tarjeta madre).
Los controladores de dispositivos generalmente
trabajan con voltajes de 5 y 12 volts con el
dispositivo propiamente, y con la computadora a
través de interrupciones. Estas interrupciones viajan
por el 'BUS' de la computadora y son recibidos por el
CPU el cual a su vez pondrá en ejecución algún
programa que sabrá qué hacer con esa señal.
A ese programa se le llama 'MANEJADOR DE
DISPOSITO' (device driver). Algunas veces el
mismo controlador contiene un pequeño programa
en una memoria de solo lectura o en memoria de
acceso aleatoria no volátil y re-escribible que
interactúa con el correspondiente manejador en la
computadora.
La siguiente figura muestra un esquema simple de
dispositivos orientados a bloques y otros a
caracteres.
Existen   tres   técnicas   para     realizar   la
   organización de E/S:

1) E/S programada
2) E/S dirigida por interrupciones
3) Acceso directo a memoria DMA
El procesador emite una orden de E/S de parte de
un proceso a un módulo de E/S; el proceso espera
entonces a que termine la operación, antes de
seguir.
El procesador emite una orden de E/S de parte de un
proceso, continúa la ejecución de las instrucciones
siguientes y es interrumpido por el proceso, continúa la
ejecución de las instrucciones siguientes y es
interrumpido por el módulo de E/S cuando éste ha
completado su trabajo. Las instrucciones siguientes
pueden ser del mismo proceso, si no es necesario para
éste esperar la terminación de la E/S. En otro caso, el
proceso se ve suspendido a la espera de la
interrupción, mientras se realiza otro trabajo.
Un módulo de DMA controla el intercambio de datos
entre la memoria principal y un módulo de E/S. El
procesador envía una petición de transferencia de
un bloque de datos al módulo de DMA y se ve
interrumpido sólo cuando el bloque entero se haya
transferido.
DISCOS
El disco tiene una gran diferencia de velocidad en
comparación con las memorias y los
procesadores, esta razón hace necesaria la
investigación de maneras de mejorar el
rendimiento de los discos.
Cuando la unidad de disco está operando, el disco
gira a una velocidad constante. Para leer o
escribir, la cabeza debe ponerse en la pista
deseada, al comienzo del sector pertinente. Si el
sistema es de cabezas móviles hay que mover la
cabeza para elegir la pista. Si el sistema es de
cabezas      fijas,  habrá     que     seleccionar
electrónicamente una de ellas.
En un sistema de cabezas móviles, el tiempo que se
tarda en ubicar la cabeza en la pista se llama
tiempo de búsqueda. En cualquier caso, una vez
que se ha seleccionado la pista, el controlador del
disco esperará hasta que el sector apropiado se
alinee con la cabeza en su rotación.

El tiempo que tarda el comienzo del sector en llegar
hasta la cabeza se conoce como retardo de giro o
latencia de giro.
La del tiempo de búsqueda y el retardo de giro es el
tiempo de acceso, es decir, el tiempo que se tarda
en llegar a la posición de lectura o escritura. Una vez
que la cabeza está ubicada, se puede llevar a cabo
la operación de lectura o escritura a medida que
el sector se mueve bajo la cabeza; esta es la parte
de transferencia real de datos de la operación.
El objetivo es reducir los tiempos de acceso en la
lectura o escritura de los datos. Además del tiempo
de acceso y del tiempo de transferencia, existen
algunos retrasos en las colas que normalmente
tienen asociada una operación de E/S a disco.
Cuando un proceso emite una solicitud de
E/S, primero debe esperar en una cola a que el
dispositivo esté disponible. En ese momento, el
dispositivo queda asignado al proceso. Si el
dispositivo comparte un único canal de E/S o un
conjunto de canales con otras unidades del
disco, puede producirse una espera adicional hasta
que el canal esté disponible. En ese punto se
realizará la búsqueda con que comienza el acceso al
disco.
En función del demandante

En función del elemento solicitado
NOMBRE           DESCRIPCION                       COMENTARIOS



 RSS         Planificación aleatoria.         Para análisis y simulación.


         Primero en entrar, primero en
 FIFO                                           El mas justo de todos.
                     salir.


                                             El control se lleva fuera de la
 PRI         Prioridad del proceso.
                                             gestión de la cola del disco.


                                             Maximiza uso de recursos y
 LIFO    Último en entrar último en salir.
                                                    cercanías.
NOMBRE            DESCRIPCION                            COMENTARIOS



                                                         Gran aprovechamiento         y     colas
SSTF              Primero el mas corto.
                                                         pequeñas.



SCAN              Recorre el disco de un lado a otro.    Mejor distribución del servicio.



C-SCAN            Recorre el disco en un solo sentido.   Menor variabilidad en el servicio.



SCAN de N-pasos   Scan de N registros a la vez.          Garantía de servicio.


                  Scan de N pasos, con N = longitud
F-SCAN            de la cola al comienzo del ciclo del Sensible a la carga.
                  Scan.
El tiempo que se tarda desde que el Driver de disco
programa al controlador para realizar la lectura de
un sector, hasta que la información de este esta en
la memoria:

T. POSICIONAMIENTO + T. LATENCIA + T.
TRANSFERENCIA    (buffer-controlador) + T.
CHECKSUM + T. TRANSFERENCIA (controlador-
memoria)
Normalmente el tiempo de CHECKSUM es
despreciable. En algunos casos puede existir
tiempos añadidos    si la información del disco esta
cifrada y el algoritmo de cifrado/ descifrado lo
incrementa el controlador, después de realizar el
CHECKSUM el controlador deberá descifrar los
datos.
Mejorar el Tiempo de Acceso.

Tratamiento de Errores.
T. ACCESO =      T. POSICIONAMIENTO + T.
LATENCIA + T. TRANFERENCIA

De estos tres tiempos el mas significativo es el de
posicionamiento. Cuando el driver permite ir
almacenando peticiones pendientes mientras se
trata la actual, se intenta reducir el tiempo medio de
posicionamiento aplicando un algoritmo que decida
que petición de las pendientes atender primero.
Los discos están sometidos a una gran variedad de
errores. Cuando se producen el controlador deberá
avisar al driver para que tome la decisión pertinente.
Los errores mas comunes son:

Errores de programación
Errores de posicionamiento
Errores en el controlador de disco
El driver le indica al controlador que una
pista, cilindro, sector que no existe o una dirección
de memoria invalida. El controlador al detectar el
error lo trasmite al driver. Este avisa al SW E/S
independiente.
Este error se produce por errores mecánicos del
brazo de       lectura / escritura. El controlador de
disco mantiene internamente cual es la posición del
brazo de lectura / escritura en cada momento.
Para mover el brazo a otro cilindro manda un pulso a
un motor por cada cilindro que quiera atravesar.
Cuando llega al cilindro destino, lee el valor del
cilindro actual (se grabo al principio de la pista al
formatear el disco). Si la posición actual no coincide
con la que se esperaba se produce un error de
posicionamiento, este error suele corregirse
recalibrando el brazo (lo manda al cilindro 0).
Esta acción puede realizarla el controlador o, si este
no puede, el driver de disco (comando
RECALIBRABLE)
Puede darse la situación que el controlador se
niegue a aceptar comandos del driver, en este caso
el driver debe recetar el controlador.
http://peremarques.pangea.org/presenmultimedia.ht
                                         ml#inicio

 http://exa.unne.edu.ar/depar/areas/informatica/Siste
 masOperativos/MonogSO/GESTES02.htm#_PLANIFI
                         CACI%C3%93N_DE_DISCO

http://marvin19872007.wordpress.com/2008/06/05/di
  spositivos-de-entrada-y-salida-sistemas-operativos/

Recopilacion de material de Sistemas Operativos

Clase 3 gestion entrada salida

  • 2.
    Cuando se codificaun programa, se hace con la intención de que ese programa pueda interactuar con los usuarios del mismo, es decir, que el usuario pueda pedirle que realice cosas y pueda suministrarle datos con los que se quiere que haga algo. Una vez introducidos los datos y las órdenes, se espera que el programa manipule de alguna forma esos datos para proporcionarnos una respuesta a lo solicitado.
  • 3.
    Además, en muchasocasiones interesa que el programa guarde los datos que se le han introducido, de forma que si el programa termina los datos no se pierdan y puedan ser recuperados en una sesión posterior. La forma más normal de hacer esto es mediante la utilización de ficheros que se guardarán en un dispositivo de memoria no volátil (normalmente un disco). A todas estas operaciones, que constituyen un flujo de información del programa con el exterior, se les conoce como Entrada/Salida (E/S).
  • 4.
    Existen dos tiposde E/S; La E/S estándar, que se realiza con el terminal del usuario. La E/S a través de fichero, en la que se trabaja con ficheros de disco.
  • 5.
    La entrada/salida quese comunica con el usuario a través de la pantalla o de la ventana del terminal. Los ficheros de texto están compuestos de caracteres legibles, mientras que los binarios pueden almacenar cualquier tipo de datos (int, float, boolean,...).
  • 6.
    Los dispositivos externosque tienen que hacer E/S con los computadores pueden clasificarse, básicamente en tres categorías. 1. Dispositivos legibles por los humanos 2. Dispositivos legibles por la máquina 3. Dispositivos de comunicaciones
  • 7.
    Apropiados para lacomunicación con el usuario. Como ejemplo se tienen los terminales de video, que constan de un teclado, una pantalla y, quizá, otros dispositivos como un ratón o una impresora.
  • 9.
    Adecuados para comunicarsecon equipos electrónicos, como discos, unidades de cinta, sensores, controladores e impulsores.
  • 11.
    Apropiados para comunicarsecon dispositivos lejanos. Por ejemplo, adaptadores de líneas digitales y módems.
  • 13.
    Los dispositivos deE/S se pueden dividir de manera general en dos categorías: •Bloque •Carácter
  • 14.
    La información sealmacena 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.
  • 15.
    La información quese 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, interfaz de comunicación.
  • 16.
    La línea deseparación no es rígida, hay dispositivos que pueden ser del tipo bloque (cintas Magnéticas) aunque son considerados del tipo carácter. Con esta clasificación, un dispositivo que está fuera de ellas, el “RELOJ”, no es orientado ni a bloque ni de carácter. Si es un dispositivo especial, ya que lo único que hace es generar interrupciones.
  • 17.
    Otros aspectos importantesque hacen la diferencia entre dispositivos son: Comportamiento: entrada, salida, almacenamiento. Tasa de transferencia: tasa de peak de transferencia entre dispositivos y memoria.
  • 18.
    DISPOSITIVO COMPORTAMIENTO CLASIFICACION TASA KB/SEG. TECLADO Entrada Carácter 0,01 MOUSE Entrada Carácter 0,02 SCANNER Entrada Carácter 400 VOS (Salida) Salida Carácter 0,6 IMPRESORA (Línea) Salida Carácter 1,0 IMPRESORA (Láser) Salida Carácter 200 MODEM Entrada / salida Carácter 2,0-8,0 RED LAN Entrada / salida Carácter 500-6000 FLOPPY Almacenamiento Bloque 100 CD Almacenamiento Bloque 1000 CINTA MAGNETICA Almacenamiento Bloque 2000 DISCO MAGNETICO Almacenamiento Bloque 2000-10000
  • 19.
    Los CONTROLADORES DEDISPOSITIVOS (también llamados adaptadores de dispositivos) son la parte electrónica de los periféricos, el cual puede tener la forma de una tarjeta o un circuito impreso integrado a la tarjeta maestra de la computadora. Por ejemplo, existen controladores de discos que se venden por separado y que se insertan en una ranura de la computadora, o existen fabricantes de computadoras que integran esa funcionalidad en la misma tarjeta en que viene la unidad central de procesamiento (tarjeta madre).
  • 20.
    Los controladores dedispositivos generalmente trabajan con voltajes de 5 y 12 volts con el dispositivo propiamente, y con la computadora a través de interrupciones. Estas interrupciones viajan por el 'BUS' de la computadora y son recibidos por el CPU el cual a su vez pondrá en ejecución algún programa que sabrá qué hacer con esa señal.
  • 21.
    A ese programase le llama 'MANEJADOR DE DISPOSITO' (device driver). Algunas veces el mismo controlador contiene un pequeño programa en una memoria de solo lectura o en memoria de acceso aleatoria no volátil y re-escribible que interactúa con el correspondiente manejador en la computadora.
  • 22.
    La siguiente figuramuestra un esquema simple de dispositivos orientados a bloques y otros a caracteres.
  • 23.
    Existen tres técnicas para realizar la organización de E/S: 1) E/S programada 2) E/S dirigida por interrupciones 3) Acceso directo a memoria DMA
  • 24.
    El procesador emiteuna orden de E/S de parte de un proceso a un módulo de E/S; el proceso espera entonces a que termine la operación, antes de seguir.
  • 25.
    El procesador emiteuna orden de E/S de parte de un proceso, continúa la ejecución de las instrucciones siguientes y es interrumpido por el proceso, continúa la ejecución de las instrucciones siguientes y es interrumpido por el módulo de E/S cuando éste ha completado su trabajo. Las instrucciones siguientes pueden ser del mismo proceso, si no es necesario para éste esperar la terminación de la E/S. En otro caso, el proceso se ve suspendido a la espera de la interrupción, mientras se realiza otro trabajo.
  • 26.
    Un módulo deDMA controla el intercambio de datos entre la memoria principal y un módulo de E/S. El procesador envía una petición de transferencia de un bloque de datos al módulo de DMA y se ve interrumpido sólo cuando el bloque entero se haya transferido.
  • 27.
    DISCOS El disco tieneuna gran diferencia de velocidad en comparación con las memorias y los procesadores, esta razón hace necesaria la investigación de maneras de mejorar el rendimiento de los discos.
  • 28.
    Cuando la unidadde disco está operando, el disco gira a una velocidad constante. Para leer o escribir, la cabeza debe ponerse en la pista deseada, al comienzo del sector pertinente. Si el sistema es de cabezas móviles hay que mover la cabeza para elegir la pista. Si el sistema es de cabezas fijas, habrá que seleccionar electrónicamente una de ellas.
  • 29.
    En un sistemade cabezas móviles, el tiempo que se tarda en ubicar la cabeza en la pista se llama tiempo de búsqueda. En cualquier caso, una vez que se ha seleccionado la pista, el controlador del disco esperará hasta que el sector apropiado se alinee con la cabeza en su rotación. El tiempo que tarda el comienzo del sector en llegar hasta la cabeza se conoce como retardo de giro o latencia de giro.
  • 30.
    La del tiempode búsqueda y el retardo de giro es el tiempo de acceso, es decir, el tiempo que se tarda en llegar a la posición de lectura o escritura. Una vez que la cabeza está ubicada, se puede llevar a cabo la operación de lectura o escritura a medida que el sector se mueve bajo la cabeza; esta es la parte de transferencia real de datos de la operación.
  • 31.
    El objetivo esreducir los tiempos de acceso en la lectura o escritura de los datos. Además del tiempo de acceso y del tiempo de transferencia, existen algunos retrasos en las colas que normalmente tienen asociada una operación de E/S a disco.
  • 32.
    Cuando un procesoemite una solicitud de E/S, primero debe esperar en una cola a que el dispositivo esté disponible. En ese momento, el dispositivo queda asignado al proceso. Si el dispositivo comparte un único canal de E/S o un conjunto de canales con otras unidades del disco, puede producirse una espera adicional hasta que el canal esté disponible. En ese punto se realizará la búsqueda con que comienza el acceso al disco.
  • 33.
    En función deldemandante En función del elemento solicitado
  • 34.
    NOMBRE DESCRIPCION COMENTARIOS RSS Planificación aleatoria. Para análisis y simulación. Primero en entrar, primero en FIFO El mas justo de todos. salir. El control se lleva fuera de la PRI Prioridad del proceso. gestión de la cola del disco. Maximiza uso de recursos y LIFO Último en entrar último en salir. cercanías.
  • 35.
    NOMBRE DESCRIPCION COMENTARIOS Gran aprovechamiento y colas SSTF Primero el mas corto. pequeñas. SCAN Recorre el disco de un lado a otro. Mejor distribución del servicio. C-SCAN Recorre el disco en un solo sentido. Menor variabilidad en el servicio. SCAN de N-pasos Scan de N registros a la vez. Garantía de servicio. Scan de N pasos, con N = longitud F-SCAN de la cola al comienzo del ciclo del Sensible a la carga. Scan.
  • 36.
    El tiempo quese tarda desde que el Driver de disco programa al controlador para realizar la lectura de un sector, hasta que la información de este esta en la memoria: T. POSICIONAMIENTO + T. LATENCIA + T. TRANSFERENCIA (buffer-controlador) + T. CHECKSUM + T. TRANSFERENCIA (controlador- memoria)
  • 37.
    Normalmente el tiempode CHECKSUM es despreciable. En algunos casos puede existir tiempos añadidos si la información del disco esta cifrada y el algoritmo de cifrado/ descifrado lo incrementa el controlador, después de realizar el CHECKSUM el controlador deberá descifrar los datos.
  • 38.
    Mejorar el Tiempode Acceso. Tratamiento de Errores.
  • 39.
    T. ACCESO = T. POSICIONAMIENTO + T. LATENCIA + T. TRANFERENCIA De estos tres tiempos el mas significativo es el de posicionamiento. Cuando el driver permite ir almacenando peticiones pendientes mientras se trata la actual, se intenta reducir el tiempo medio de posicionamiento aplicando un algoritmo que decida que petición de las pendientes atender primero.
  • 40.
    Los discos estánsometidos a una gran variedad de errores. Cuando se producen el controlador deberá avisar al driver para que tome la decisión pertinente. Los errores mas comunes son: Errores de programación Errores de posicionamiento Errores en el controlador de disco
  • 41.
    El driver leindica al controlador que una pista, cilindro, sector que no existe o una dirección de memoria invalida. El controlador al detectar el error lo trasmite al driver. Este avisa al SW E/S independiente.
  • 42.
    Este error seproduce por errores mecánicos del brazo de lectura / escritura. El controlador de disco mantiene internamente cual es la posición del brazo de lectura / escritura en cada momento.
  • 43.
    Para mover elbrazo a otro cilindro manda un pulso a un motor por cada cilindro que quiera atravesar. Cuando llega al cilindro destino, lee el valor del cilindro actual (se grabo al principio de la pista al formatear el disco). Si la posición actual no coincide con la que se esperaba se produce un error de posicionamiento, este error suele corregirse recalibrando el brazo (lo manda al cilindro 0). Esta acción puede realizarla el controlador o, si este no puede, el driver de disco (comando RECALIBRABLE)
  • 44.
    Puede darse lasituación que el controlador se niegue a aceptar comandos del driver, en este caso el driver debe recetar el controlador.
  • 45.
    http://peremarques.pangea.org/presenmultimedia.ht ml#inicio http://exa.unne.edu.ar/depar/areas/informatica/Siste masOperativos/MonogSO/GESTES02.htm#_PLANIFI CACI%C3%93N_DE_DISCO http://marvin19872007.wordpress.com/2008/06/05/di spositivos-de-entrada-y-salida-sistemas-operativos/ Recopilacion de material de Sistemas Operativos