entrada y salida de un s.o

30
Administración de E/S De un S.O Realizado por: K.R. A.P. D.N.

Upload: karina-rivra

Post on 26-Jul-2015

40 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Entrada y Salida de un S.O

Administración de E/SDe un S.O

Realizado por:K.R.A.P.D.N.

Page 2: Entrada y Salida de un S.O

Una de las principales funciones de un sistema operativo es controlar todos los dispositivos de E/S (entrada/salida) del computador.

Comprende tanto la transferencia entre diversos niveles de la memoria como la comunicación con los periféricos.

También debe proporcionar una interfaz sencilla y fácil de usar entre los dispositivos y el resto del sistema.

El SO debe controlar el funcionamiento de todos los dispositivos de E/S para alcanzar los siguientes objetivos:

Facilitar el manejo de los dispositivos periféricos.

Optimizar la E/S del sistema.

Proporcionar dispositivos virtuales que permitan conectar cualquier tipo de dispositivos físicos sin que sea necesario remodelar el sistema de E/S del SO.

Permitir la conexión de dispositivos nuevos de E/S, solventando de forma automática su instalación usando mecanismos del tipo plug & play.

Page 3: Entrada y Salida de un S.O

DispositivosSe denomina periféricos a los aparatos o dispositivos auxiliares e independientes conectados a la unidad central de procesamiento de una computadora.

Se consideran periféricos tanto a las unidades o dispositivos a través de los cuales la computadora se comunica con el mundo exterior, como a los sistemas que almacenan o archivan la información, sirviendo de memoria auxiliar de la memoria principal.

Se pueden clasificar en dos grandes categorías:

Dispositivos de bloques.

Dispositivos de caracteres.

Page 4: Entrada y Salida de un S.O

Dispositivos de bloques Dispositivos de caracteres

• La información se almacena en bloques de tamaño fijo.

• Cada bloque tiene su propia dirección.

• Los tamaños más comunes de los bloques van desde los 128 bytes hasta los 1.024 bytes.

• Se puede leer o escribir en un bloque de forma independiente de los demás, en cualquier momento.

• Un ejemplo típico de dispositivos de bloque son los discos.

• La información se transfiere como un flujo de caracteres, sin sujetarse a una estructura de bloques.

• No se pueden utilizar direcciones.

• No tienen una operación de búsqueda.

• Un ejemplo típico de dispositivos de caracter son las impresoras de línea, terminales, interfaces de una red, ratones, etc.

Page 5: Entrada y Salida de un S.O

De interfaz de usuario

De almacenamiento De comunicaciones

Permiten la comunicación entre los usuarios y la computadora. Dentro de este grupo se incluyen todos los dispositivos que sirven para proporcionar interfaz con el usuario, tanto para entrada como para salida.

Se usan para proporcionar almacenamiento no volátil de datos y memoria. Su función primordial es abastecer de datos y almacenamiento a los programas que se ejecutan en la UCP. Según su capacidad y la inmediatez con que se puede acceder a los datos almacenados en estos dispositivos, se pueden dividir en almacenamiento secundario y terciario.

Permiten conectar a la computadora con otras computadoras a través de una red. Los dos tipos de dispositivos más importantes de esta clase son los módem, para comunicación vía red telefónica, y las tarjetas de interfaz a la red, para conectar la computadora a una red de área local.

Todos los dispositivos de E/S se pueden agrupar en tres grandes grupos:

Page 6: Entrada y Salida de un S.O
Page 7: Entrada y Salida de un S.O

Controladores De Dispositivos

Las unidades de E/S tienen una parte mecánica y otra electrónica.

Un controlador de dispositivo es un programa informático que permite al sistema operativo interactuar con un periférico.

Los modelos más frecuentes de comunicación entre la cpu y los controladores son:

Para la mayoría de las micro y mini computadoras: Modelo de bus del sistema.

Para la mayoría de los mainframes: Modelo de varios buses y computadoras especializadas en e/s llamadas canales de e/s.

La interfaz entre el controlador y el dispositivo es con frecuencia de muy bajo nivel.

Page 8: Entrada y Salida de un S.O

El controlador debe:

Convertir el flujo de bits en serie en un bloque de bytes.

Efectuar cualquier corrección de errores necesaria.

Copiar el bloque en la memoria principal.

Cada controlador posee registros que utiliza para comunicarse con la cpu:

Pueden ser parte del espacio normal de direcciones de la memoria: e/s mapeada a memoria.

Pueden utilizar un espacio de direcciones especial para la e / s, asignando a cada controlador una parte de él.

El S. O. realiza la e/s al escribir comandos en los registros de los controladores; los parámetros de los comandos también se cargan en los registros de los controladores.

Al aceptar el comando, la cpu puede dejar al controlador y dedicarse a otro trabajo.

Al terminar el comando, el controlador provoca una interrupción para permitir que el S. O.:

Obtenga el control de la cpu.

Verifique los resultados de la operación.

Page 9: Entrada y Salida de un S.O

Procesos de usuario

SW independiente del dispositivo

Manejadores de dispositivo

Manejadores de interrupciones

Hardware

Esquema Global de Manejadores de Dispositivos

Petición de E/SRespuesta de E/S

Llamada de E/S, formateo de E/S, spooling

Asignación de nombres y dispositivos, protección, bloqueo, buffering,

Asignación de valores a los registros de dispositivos, comprobación del estado

Reactivación del manejador cuando se completa la E/S

Realización de la E/S

Esquema de Manejadores de Dispositivos

Page 10: Entrada y Salida de un S.O
Page 11: Entrada y Salida de un S.O

Mecanismos y funciones de los manejadores de dispositivos (device drivers)

El controlador es el componente más importante desde el punto de vista del sistema operativo, ya que constituye la interfaz del dispositivo con el bus de la computadora y es el componente que se ve desde la CPU.Hay que recalcar que el controlador al ser una parte crítica del sistema operativo, el fallo de un controlador puede ser más grave que otros errores de software, pudiendo bloquear el ordenador o incluso dañar el hardware. Debido a que el hardware es (necesariamente) indeterminista, encontrar y solucionar un fallo en un controlador es una tarea complicada ya que no sólo hay que monitorizar el programa, sino también el propio dispositivo.

Page 12: Entrada y Salida de un S.O

Técnicas de E/S E/S programada: El

procesador emite una orden de E/S de parte de un proceso a un modulo de E/S; el proceso espera entonces a que termine la operación, antes de seguir.

E/S dirigida por interrupciones: El procesador emite una orden de E/S de parte de un proceso, continua la ejecución de las instrucciones siguientes y el modulo de E/S lo interrumpe cuan do completa su trabajo.

Sin interrupcio-nes

Con interrupcio-nes

Transferen-cia de E/S a memoria a través del procesador

E/S programada

E/S dirigida por interrupciones

Transferen-cia de E/S directa a memoria

Acceso directo a memoria (DMA)

Acceso Directo a la Memoria (DMA): un modulo de DMA controla el intercambio de datos entre la memoria principal y un modulo de E/S. El procesador envía una petición de transferencia de un bloque de datos al modulo DMA y se interrumpe solo cuando se ha transferido el bloque entero.

Page 13: Entrada y Salida de un S.O

A medida que han evolucionado los sistemas informáticos, se ha producido tendencia crecientes en la complejidad y sofisticación de cada componente individual. En ninguno de los puntos es mas evidente que en la función de E/S. la etapa de su evolución puede resumirse como lo siguiente:

1.- El procesador controla directamente los dispositivos periféricos.

2.- Se añade un controlador o modulo de E/S. El procesador utiliza E/S programada sin interrupciones.

3.- Se añade un controlador o modulo. Pero empleándose interrupciones.

4.- El modulo de E/S recibe el control directo de la memoria, a través de DMA, Ahora puede mover un bloque de datos a la memoria o desde la misma sin que intervenga el procesador.

5.- se mejora el modulo de E/S hasta llegar a ser un procesador separado con un conjunto de instrucciones especializadas para E/S.

6.- El modulo de E/S posee su propia memoria local y es, de hecho un computador independiente.

Page 14: Entrada y Salida de un S.O

Funciones de los manejadores de dispositivos

Funciones generalmente realizadas por el software independiente del dispositivo:

Interfaz uniforme para los manejadores de dispositivos.

Nombres de los dispositivos.

Protección del dispositivo.

Proporcionar un tamaño de bloque independiente del dispositivo.

Uso de buffer.

Asignación de espacio en los dispositivos por bloques.

Asignación y liberación de los dispositivos de uso exclusivo.

Informe de errores.

Las funciones básicas del software independiente del dispositivo son:

Efectuar las funciones de e / s comunes a todos los dispositivos.

Proporcionar una interfaz uniforme del software a nivel usuario.

Page 15: Entrada y Salida de un S.O

Este nodo-i contiene el número principal del dispositivo, que se utiliza para localizar el manejador apropiado.

El nodo-i contiene también el número secundario de dispositivo, que se transfiere como parámetro al manejador para determinar la unidad por leer o escribir.

El software independiente del dispositivo debe:

Ocultar a los niveles superiores los diferentes tamaños de sector de los distintos discos.

Proporcionar un tamaño uniforme de los bloques, por ej.: considerar varios sectores físicos como un solo bloque lógico.

Page 16: Entrada y Salida de un S.O

Estructura de datos para manejo de dispositivos

Los sistemas operativos actuales son grandes y complejos, estos deben poseer una ingeniería correcta para su fácil actualización y para que puedan cumplir su función correctamente. La estructura es generalmente modular, cada modulo cumple una función determinada e interactúa con los demás módulos.

Page 17: Entrada y Salida de un S.O

En el manejo de los dispositivos de E/S es necesario, introducir dos nuevos términos:

BUFFERING

SPOOLING

Los procesos de usuario emiten peticiones de entrada/salida al sistema operativo. Cuando un proceso solicita una operación de E/S, el sistema operativo prepara dicha operación y bloquea al proceso hasta que se recibe una interrupción del controlador del dispositivo indicando que la operación está completa.

Page 18: Entrada y Salida de un S.O

BUFFERING (uso de memoria intermedia).

SPOOLING

Trata de mantener ocupados tanto la CPU como los dispositivos de E/S. Los datos se leen y se almacenan en un buffer, una vez que los datos se han leído y la CPU va a iniciar inmediatamente la operación con ellos, el dispositivo de entrada es instruido para iniciar inmediatamente la siguiente lectura. La CPU y el dispositivo de entrada permanecen ocupados. Cuando la CPU esté libre para el siguiente grupo de datos, el dispositivo de entrada habrá terminado de leerlos. La CPU podrá empezar el proceso de los últimos datos leídos, mientras el dispositivo de entrada iniciará la lectura de los datos siguientes.

Esta forma de procesamiento se denomina spooling, utiliza el disco como un buffer muy grande para leer tan por delante como sea posible de los dispositivos de entrada y para almacenar los ficheros hasta que los dispositivos de salida sean capaces de aceptarlos.Es una característica utilizada en la mayoría de los sistemas operativos.

Page 19: Entrada y Salida de un S.O

Tanto en la E/S programada como la basada en interrupciones, la CPU debe encargarse de la transferencia de datos una vez que sabe que hay datos disponibles en el controlador. Una mejora importante para incrementar la concurrencia entre la CPU y la E/S consiste en que el controlador del dispositivo se pueda encargar de efectuar la transferencia de datos. Esta técnica se denomina acceso directo a memoria (DMA, Direct Memory Access).

ACCESO DIRECTO A MEMORIA (DMA)

Este dispositivo permite la transferencia directa de información entre la memoria y los periféricos o viceversa, sin requerir intervención alguna por parte del procesador.

Operaciones de Entrada/Salida

Page 20: Entrada y Salida de un S.O

El DMA necesita: Registro: almacena la dirección de memoria desde donde

se produce la transferencia.

Registro contador: guarda la longitud de bloque a transferir.

Bits: indica si la operación es de lectura o escritura.

Bloque de control: controla el funcionamiento del sistema.

Existen 3 tipos de transferencia para el máximo aprovechamiento del bus: Por ráfagas: el DMA toma el control del bus y no lo suelta

hasta terminar la transferencia.

Por robo de ciclo: el DMA toma el bus durante un ciclo enviando una palabra cada vez.

Transparente: se aprovechan los ciclos en que el procesador no usa el bus.

Page 21: Entrada y Salida de un S.O

OPERACIONES DE E/SExisten varias operaciones, las más importantes son las siguientes:

Lectura: El canal transfiere a memoria principal un bloque de palabras de tamaño especificado en el campo número de palabras, en orden ascendente de direcciones, empezando en la dirección especificada en el campo dirección del dato.

Escritura:El canal transfiere datos de memoria principal al dispositivo. Las palabras se transfieren en el mismo orden que en la operación de lectura.

Control :Se utiliza esta orden para enviar instrucciones específicas al dispositivo de E/S, como rebobinar una cinta magnética, etc.

Bifurcación:Cumple en el programa de canal la misma función que una instrucción de salto en un programa normal.

Page 22: Entrada y Salida de un S.O

 Para que un computador pueda ejecutar un programa debe ser ubicado previamente en la memoria, junto con los datos sobre los que opera, y para ello debe existir una unidad funcional de entrada de información capaz de escribir en la memoria desde el exterior. Análogamente, para conocer los resultados de la ejecución de los programas, los usuarios deberán poder leer el contenido de la memoria a través de otra unidad de salida de datos. La unidad de Entrada/Salida  (E/S) soporta estas funciones, realizando las comunicaciones del computador (memoria) con el mundo exterior (periféricos). Los dispositivos periféricos que se pueden conectar a un computador se suelen clasificar en tres grandes grupos: 

 Dispositivos de presentación de datos. Son dispositivos con los que interactúan los usuarios, portando datos entre éstos y la máquina, por ejemplo, ratón, teclado, pantalla, impresora, etc.

Dispositivos de almacenamiento de datos. Son dispositivos que forman parte de la jerarquía de memoria del computador. Interactúan de forma autónoma con la máquina, aunque también sirven para el intercambio de datos con el usuario, por ejemplo, los discos magnéticos.

Dispositivos de comunicación con otros procesadores. Permiten la comunicación con procesadores remotos a través de redes, por ejemplo, las redes de área local o global.

Dispositivos de adquisición de datos. Permiten la comunicación con sensores y actuadores que operan de forma autónoma en el entorno del computador. Se utilizan en sistemas de control automático de procesos por computador y suelen incorporar conversores de señales A/D y D/A.

Funciones implicadas en las operaciones de entrada/salida

Page 23: Entrada y Salida de un S.O

E/S en LinuxCasi todos los dispositivos de E/S se representan como ficheros especiales:

/dev/hda1 para la primera partición del primer disco IDE

/dev/lp0 para la impresora.

El acceso a estos ficheros especiales es mediante las llamadas al sistema read y write. Para cada fichero especial hay asociado un manejador de dispositivo.

Cada manejador tiene un número de dispositivo principal (mayor) que sirve para identificarlo. Si el manejador sirve a varios dispositivos, cada dispositivo tiene un número de dispositivo secundario (minor) que lo identifica.

Juntos, el no principal y el secundario especifican de forma única cada dispositivo de E/S

Dos tipos de ficheros especiales:

Fichero especial de bloques ⇒ dispositivos de bloques: Incluyen discos y cintas

Direccionamiento directo utilizando bloques

El manejador aisla al resto del sistema de pistas, cilindros, etc

Acceso directo (como en /dev/fd0) o a través del S.F

Memoria caché de buffers

Fichero especial de caracteres ⇒ dispositivos de caracteres: Terminales, impresoras y otros que no usan la caché de buffers

Utilizan también una pequeña memoria intermedia ⇒ listas-C

Page 24: Entrada y Salida de un S.O

La E/S en Linux se implementa como una colección de manejadores, uno por tipo de dispositivo, que aisla al resto del SO de las peculiaridades del HW

Cada manejador se divide en dos partes: La mitad superior se ejecuta en el contexto del

invocador y se comunica con el resto del SO

La mitad inferior se ejecuta en el contexto del kernel e interactúa con el dispositivo

Los manejadores pueden invocar procedimientos del kernel para asignar memoria, administrar temporizadores, controlar DMA, etc.

Page 25: Entrada y Salida de un S.O

Manejadores para dispositivos de caracteres

• Sistema de buffers para caracteres• Se utilizan unas estructuras de datos llamada listas C, formadas por

un bloque de hasta 64 caracteres, un contador y un puntero al siguiente bloque

• Se tienen dos colas: cola directa y cola canónica• El paso de la cola directa (flujo no interpretado de caracteres) a la cola

canónica (flujo interpretado de caracteres) se activa con el retorno de carro

• Si el proceso quiere, puede recoger un carácter cada vez que llega uno nuevo ⇒ acceso directo, no interpretado o crudo

• Entrada de caracteres: Al llegar caracteres se colocan en la cola directa Los caracteres se pasan por un fragmento de código del kernel

llamado disciplina de líneas, que actúa como filtro, aceptando caracteres en modo no interpretado, procesándolos y produciendo lo que se conoce como flujo de cocinado de caracteres

• Salida: Funciona de manera similar: expandiendo tabulaciones a espacios,

añadiendo caracteres de relleno, etc. Las salidas pueden pasar por la disciplina de líneas (modo

interpretado) o evitarla (no interpretado) La salida en modo no interpretado es útil para cuando se quiere

enviar datos binarios a otros ordenadores

Page 26: Entrada y Salida de un S.O

Manejadores para dispositivos de bloques

• Objetivo: reducir al mínimo el no de transferencias reales efectuadas

• Para ello, existe en memoria principal una caché de buffers (disco o bloques) entre el sistema de ficheros y los manejadores de disco

• Cuando se necesita un bloque de disco por cualquier motivo (nodo-i, directorio o datos), primero se verifica si está en el caché de buffers. Si está se toma, evitando un acceso a disco

• Si el bloque no está, se lee del disco, se coloca en la caché y de allí se copia a donde se necesita

• Se utiliza tanto en las lecturas como en las escrituras

• Para las escrituras, un demonio se encarga de realizar la actualización en disco de los bloques modificados de forma periódica

Page 27: Entrada y Salida de un S.O

El objetivo del sistema de E/S de Windows 2000 es proporcionar un marco dentro del cual se maneje con eficiencia una amplia variedad de dispositivos de E/S y sea fácil agregar nuevos dispositivos

El administrador de E/S es el responsable de todas las operaciones de E/S para el sistema operativo:

Es responsable de los sistemas de ficheros, del administrador de caché, de los manejadores de dispositivos y de los manejadores de los protocolos de red

Controla qué sistemas de ficheros están instalados y cargados

Maneja los buffers para las peticiones de E/S

Trabaja con el manejador de memoria virtual para proporcionar E/S de ficheros mapeados en memoria

El administrador de E/S colabora de forma estrecha con el administrador de Plug and Play que detecta qué dispositivos están conectados, asigna recursos hardware (como niveles de interrupción), localiza los manejadores apropiados y los carga en memoria. También está relacionado con el administrador de consumo eléctrico, encargado del encendido y apagado de los dispositivos que permiten gestionar el bajo consumo

E/S en Windows 2000

Page 28: Entrada y Salida de un S.O

Está el administrador de caché. Este proporciona una caché centralizada que puede ser usada por todos los componentes que están bajo el control del administrador de E/S. En especial, la caché la usan los sistemas de ficheros y los componentes de red.

Windows 2000 realiza un manejo de la E/S síncrona o asíncrona

En la E/S asíncrona un subproceso puede iniciar una operación y luego seguir ejecutándose en paralelo con la E/S. Los subprocesos cuentan con varias formas de averiguar si ya finalizó la E/S:

Esperar en un handle. El núcleo activa un indicador asociado a un handle cuando una operación sobre ese handle termina. El subproceso puede esperar en el handle para averiguar cuándo termina la operación de E/S

Esperar en un objeto evento. Permite múltiples solicitudes simultáneas sobre un mismo dispositivo o fichero. El hilo crea un evento por cada solicitud de E/S que realice. A posteriori puede esperar en uno o varios eventos para averiguar cuándo terminan las solicitudes

E/S extendida o alertable. Hace uso de una cola conocida como Llamada a Procedimiento Asíncrono. El hilo realiza una solicitud de E/S indicando que cuando finalice se invoque a una rutina que permitirá el tratamiento de los datos recibidos. Dicha rutina se almacena en la cola anterior

Puertos de finalización de E/S. Un puerto es un objeto al que se asocian un conjunto de handles e hilos. Al terminar una operación de E/S sobre uno de los handles se despierta a uno de los hilos para atenderlo

Implementación de E/S en Windows 2000:

La estructura básica del sistema de E/S en Windows está formada por un conjunto de procedimientos independientes del dispositivo, que se encargan de ciertos aspectos de la E/S, y un conjunto de manejadores de dispositivos, que se cargan en memoria para comunicarse con los dispositivos

Para un funcionamiento correcto, los manejadores de dispositivo deben ajustarse al modelo de manejadores de Windows (Windows Driver Model, WDM) que define Windows 2000.

Windows 2000 proporciona un conjunto de herramientas, llamado Driver Development Kit (DDK), que ayuda a producir manejadores de dispositivo que se ajustan al modelo anterior

Page 29: Entrada y Salida de un S.O

Los manejadores que se ajusten al modelo de manejadores de Windows deberán cumplir los siguientes requisitos:

1.-Manejar solicitudes de E/S con un formato estándar. Las solicitudes de E/S tienen el formato de un paquete estandarizado llamado paquete de solicitud de E/S (IRP; I/O Request Paquet). Los manejadores deberán aceptarlos y procesarlos

2.-Estar basados en objetos, en el sentido de reconocer una lista específica de métodos que puede invocar el resto del sistema, así como poder interactuar con otros objetos

3.-Permitir que se añadan o quiten dispositivos Plug-and-Play dinámicamente. Si el dispositivo se añade o quita de repente al sistema, el manejador debe estar preparado para aceptar esta información y actuar en concordancia

4.-Permitir la administración de consumo eléctrico, en su caso. Si el sistema cambia a modo de hibernación con bajo consumo, los dispositivos capaces de efectuar el cambio deberán hacerlo para ahorrar energía, así como despertar cuando se les indique

5.-Ser configurables desde el punto de vista del uso de los recursos, e.d., no incluir valores fijos de IRQ’s o puertos de E/S

6.-Ser reentrantes para usarse en multiprocesadores. El manejador debe funcionar de forma correcta aunque esté siendo ejecutado al mismo tiempo por 2 o más CPU’s. Por tanto, el acceso a las estructuras de datos delicadas debe hacerse de forma restringida

Page 30: Entrada y Salida de un S.O

Windows detecta de forma automática los dispositivos e invoca al administrador de Plug and Play

El administrador de Plug and Play sondea el dispositivo para averiguar el fabricante y el número de modelo. Con estos datos comprueba si tiene un manejador para ese dispositivo

Si encuentra el manejador lo carga en memoria

Si no lo encuentra, pide al usuario que le indique dónde (disquete o CD-ROM) puede encontrarlo

Entre los procedimientos que debe soportar un manejador de dispositivo están:

DriverEntry: asigna valores iniciales al manejador y se invoca inmediatamente después de cargarlo. Podría realizar la inicialización de estructuras de datos del manejador, pero no se comunica con el dispositivo

AddDevice: se invoca una vez por cada dispositivo que va a añadirse (lo llama el administrador de Plug and Play)

A continuación se invoca al manejador con el primer paquete IRP que establece el vector de interrupción y asigna valores iniciales al hardware

Otros procedimientos son el de servicio de interrupción, procedimientos para administrar temporizadores, control de DMA, etc.

Un manejador puede realizar todo el trabajo él solo, pero también es posible apilar manejadores.

En caso de tener manejadores apilados, la solicitud podría pasar por una serie de manejadores, cada uno de los cuales realiza una parte del trabajo:

Un uso común de manejadores apilados, sería para separar el manejo del bus del dispositivo en sí

Otra posibilidad es tener la capacidad de insertar manejadores filtro, que aplicarían alguna transformación a los datos como, por ejemplo, comprimir o cifrar los datos