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.
Los ficheros de texto están compuestos de
caracteres legibles, mientras que los binarios
pueden almacenar cualquier tipo de datos (int, float, boolean,...).
La entrada/salida que se comunica con el usuario a
través de la pantalla o de la ventana del terminal.
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.
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 maestra).
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.
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.
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 de 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.
NOMBRE DESCRIPCION COMENTARIOS
RSS Planificación aleatoria. Para análisis y simulación.
FIFOPrimero en entrar, primero en
salir.El mas justo de todos.
PRI Prioridad del proceso.El control se lleva fuera de la
gestión de la cola del disco.
LIFO Último en entrar último en salir.Maximiza uso de recursos y
cercanías.
NOMBRE DESCRIPCION COMENTARIOS
SSTF Primero el mas corto.Gran aprovechamiento y colas
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.
F-SCAN
Scan de N pasos, con N = longitud
de la cola al comienzo del ciclo del
Scan.
Sensible a la carga.
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.
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.html#inicio
http://exa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/MonogSO/GESTES02.htm#_PLANIFI
CACI%C3%93N_DE_DISCO
http://marvin19872007.wordpress.com/2008/06/05/dispositivos-de-entrada-y-salida-sistemas-operativos/
Recopilacion de material de Sistemas Operativos