Post on 24-Jun-2015
description
transcript
Juan Carlos
Pachón
Rodríguez
Universidad
de
Cundinamar
ca
PROCESOS DE
ENTRADA Y S
ALIDA
Que es un proceso
Conjunto de recursos y actividades
interrelacionados que transforman
elementos de entrada en elementos de
salida.
Estado de un proceso
Nuevo: el proceso se está creando.
Ejecución: se están ejecutando
instrucciones en espera.
En Espera: El proceso está esperando que
ocurra un evento (como la terminación de
una operación de E/S o la recepción de una
señal).
Listo: el proceso está en espera de ser
asignado a un procesador.
Terminado: el proceso ha terminado su
ejecución.
Gestión Entrada Salida
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.
E/S Programada
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.
Sistemas de E/S
Hardware Interfaz de E/S de aplicaciones Subsistemas E/S del Kernel Transformación de las solicitudes de E/S en operaciones de hardware Streams rendimiento
HARDWARE
Tipos de entrada y salida
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.
clasifican básicamente en tres categorías
Dispositivos legibles por los humanos
Dispositivos legibles por la maquina
Dispositivos de comunicaciones
Entrada/Salida Estándar
Son aquellos que están diseñados para mantenercomunicación entre la computadora y el usuario.
Dispositivos legibles por los humanos
Son aquellos que mantienen una comunicación con equipos
electrónicos.
Dispositivos legibles por la maquina
Son aquellos que están diseñados exclusivamente paramantenerse en comunicación con otros dispositivos a
largasdistancias.
Dispositivos de comunicaciones
Los ficheros de texto están compuestos de
caracteres legibles, mientras que los binarios pueden
almacenar cualquier tipo de datos (int, float,
boolean,...).
Entrada/Salida ficheros
Cada dispositivo se comunica a través de un cable o del aire
Los dispositivos utilizan un conjunto común de hilos dicha conexión de denomina bus.
Conexión en cascada
Estructura típica de un bus de PC
Controladora: es una colección de componentes eléctricos Que permiten controlar un puerto un bus o un dispositivo
HARDWARE
HARDWARE
Un puerto de E/S esta compuesto típicamente de 4 registros
(1)Registro de entrada: el host lee el registro de entrada de datos para obtener una entrada
(2) Registro de salida: el host escribe en el registro dede datos para enviar la salida
(3) Registro de estado: contiene bits que el host puede leer.estos bits indican estados
(4) Registro de control: puede ser escrito por el host paraIniciar un comando o para cambiar el modo de un dispositivo
HARDWARE
El protocolo completo de interacción entre el host y una controladora que puede ser complejo, pero la negociación Resulta muy simple.
Ejecuta un bucle leyendo una y otra vez el registro de
Muchas arquitecturas informaticas, para sondear unDispositivo basta con tres ciclos de instrucciones de la cpu1. Leer un registro del dispositivo2. Efectuar una operación de and para extraer un bit de estado3. Saltar si ese bit es cero
HARDWARE
sondeo
Mejora la eficiencia del procesamiento Permite al procesador ejecutar otrasinstrucciones mientras una operación deentrada/salida está en marcha Una suspensión del proceso causada por unevento externo al proceso realizado de talmanera que el proceso pueda ser reanudado
HARDWARE
interrupciones
El hardware de la CPU tiene un hilo denominado línea de solicitud de interrupciones que la CPU, comprueba después de ejecutar cada instrucción. Cuando la CPU detecta que la controladora ha activado una señal a través de la línea de solicitud de interrupciones , la CPU guarda el estado actual y salta a La rutina de tratamiento de interrupciones situada en una dirección fija de memoria.
HARDWARE
interrupciones
HARDWARE
* Interrupción no mascarable: eventos como errores de memoria no recuperables
* Inerrupción Mascarable: pueden ser apagada por la CPU antes de la ejecución. no deben ser interrumpidas. Es utilizada por los controladores de dispositivos para solicitar servicio.
Líneas de solicitud de interrupción CPU:
HARDWARE
Ciclos de interrupciones
El procesador comprueba las interrupciones
Si no hay peticiones, busca la siguiente instrucción del programa de usuario
Si hay una interrupción pendiente, suspende la ejecución del programa y ejecuta la RTI
HARDWARE
Ciclos de interrupciones
Programa de control de flujo sin y con interrupciones
Deshabilitar las interrupciones mientras una interrupción está en Proceso
– El procesador ignora cualquier nueva señal de petición de interrupción
HARDWARE
Interrupciones múltiples
Deshabilitar las interrupciones de manera que el procesador pueda completar la tarea
La interrupción queda pendiente hasta que el procesador permite interrupciones
Cuando acaba la rutina de tratamiento de la interrupción (RTI), el procesador comprueba si hay interrupciones pendientes
HARDWARE
Interrupciones múltiplesEn orden secuencial
El procesador es interrumpido cuando un módulo de E/S está listo para intercambiar datos
El procesador queda libre para realizar otras tareas
No requiere tiempos de espera
Consume tiempo de CPU porque cada palabra que se lee o escribe pasa a través del procesador
HARDWARE
E/ S por Interrupciones
HARDWARE
interrupciones
HARDWARE
Acceso directo a la memoria
Transfiere un bloque de datos directamente a o desde la memoria
Se envía una interrupción cuando se completa la Transferencia
El procesador sólo está implicado en el inicio y fin de la transferencia
HARDWARE
Acceso directo a la memoria
Interfaz de E/S
de las aplicaciones
Interfaz de E/S
de las aplicaciones
Las funciones de la interface son almacenar los datos y
realizar las conversiones que se le requieran.
También detecta errores en la transmisión y es capaz de
reiniciar la transacción en casos de error.
Más aún, la interface puede testear, arrancar y detener
el dispositivo según las directivas impartidas por la CPU.
En algunos casos la interface puede consultar a la CPU si
algún dispositivo está requiriendo atención urgente
Interfaz de E/S
de las aplicaciones
Abrir un archivo en un disco sin saber de que tipo de disco
Se trata.
Añadirse nuevos discos y otros dispositivos a una pc
Interfaz de E/S
de las aplicaciones
Estructura de E/S de un Kernel
Interfaz de E/S
de las aplicaciones
Estructura de E/S de un Kernel
Cada tipo de sistema operativo tiene sus propios estándares en cuanto a la interfaz del controlador de dispositivos ejemploWindows xp, Windows me, Windows seven, solaris , etc..
Es por esto que los dispositivos se pueden variar desde muchos puntos de vista como:
Flujo de caracteres o bloqueAcceso secuencial o aleatorioSíncrono a asíncronoCompatible o dedicadoVelocidad de operaciónLectura escritura, solo lectura solo escritura
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.
Interfaz de E/S
de las aplicaciones
Caracteres
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.
Interfaz de E/S
de las aplicaciones
Diferencias Entre las Clases de Dispositivos
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
Dispositivos de red
Tiene una interfaz propia, variando de
los dispositivos de bloque y carácter.
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 cualquier 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.
Interfaz de E/S
de las aplicaciones
Relojes y temporizadores
Esta compuesto de tres funciones básicas
1. Proporciona la hora actual
2. Proporciona el tiempo transcurrido
3. Configurar un temporizador para que provoque la
ejecución de la operación X en el instante
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
Interfaz de E/S
de las aplicaciones
E/S bloqueante y no bloqueante
Bloqueante: se suspende la ejecución de la
aplicación. En ese instante, la aplicación se pasa de
la cola de ejecución del sistema operativo a la cola
de espera
No bloqueante: son algunos procesos de
usuario que necesitan una E/S.
Interfaz de E/S
de las aplicaciones
subsistema de E/S
del Kernel
Subsistemas 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.
Subsistemas de
E/S del Kernel
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.
Planificación de E/S
Subsistemas de
E/S del Kernel
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.
Planificación de E/S
Subsistemas de
E/S del Kernel
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.
Empleo de Buffers
Subsistemas de
E/S del Kernel
Empleo de Buffers
Subsistemas de
E/S del Kernel
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
Subsistemas de
E/S del Kernel
Empleo de caches
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.
Subsistemas de
E/S del Kernel
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
Subsistemas de
E/S del Kernel
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).
Manejo de errores
Subsistemas de
E/S del Kernel
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
Subsistemas de
E/S del Kernel
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.
Manejo de errores
Subsistemas de
E/S del Kernel
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
Subsistemas de
E/S del Kernel
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.
MANEJO DE LAS DE E/S SOLICITUDES
Subsistemas de
E/S del Kernel
Ciclo de vida de una solicitud de E/S
Transform
aciones
de las solicitudes
de E/S en operaciones
hardware
Transformaciones de las solicitudes
de E/S en operaciones hardware
Considerar la lectura de un archivo de disco por unProceso
1. Determinar el dispositivo que contiene el archivo2. Traducir el nombre del archivo al espacio que sele asigno dentro del dispositivo3. Leer físicamente los datos del disco y colocarlosen el buffer4. Poner los datos a la disposición del proceso que los solicito5. Devolverle el control al proceso Ciclo
Ciclo de vida de una
solicitud de E/S
Desempeño
Desempeño
E/S es un factor muy importante en el desempeño delsistema porque:
–Obliga al CPU a ejecutar código de los device drivers, y del kernel de E/S
Las conmutaciones de contexto resultantes de lasInterrupciones
La copia de datos en la memoria
El trafico de red especialmente acentuado
Comunicación entre computadoras
Mejoría del desempeño Reducir el numero de conmutaciones de contexto Reducir la copia de datos en la memoria Reducir las interrupciones usando
– Controladores inteligentes– Transferencias grandes– Escrutinio (polling)
Usar acceso directo a memoria DMA o canales: procesadores de primer plano (font-end) para reducir la carga del CPU
Equilibrar el desempeño entre el CPU, la memoria, los buses, y la E/S
ya que una sobrecarga en cualquiera de ellas causara ociosidad en las otras
Progresión de la funcionalidad De los dispositivos
http://peremarques.pangea.org/presenmultimedia.html#inicio
http://exa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/MonogSO/GESTES02.htm#_PLANIFICACI%C3%93N_DE_DISCO
http://marvin19872007.wordpress.com/2008/06/05/dispositivos-de-entrada-y-salida-sistemas-operativos/
http://www.slideshare.net/leydi_28/dispositivos-de-entrada-y-salida-1394840
Recopilacion de material de Sistemas Operativos
Referencias
GRACIAS