PROCESO E/S O SISITEMAS DE E/S

Post on 24-Jun-2015

313 views 4 download

description

se explica cada una de las e/s de un proceso en el sistema operativo

Transcript of PROCESO E/S O SISITEMAS DE E/S

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