Vous êtes sur la page 1sur 10

Sistemas Operativos I

Estructuras de datos para el manejo de dispositivos,


operaciones de E/S.

Prof. Ing. Vctor Hugo Garca Huerta

FUENTES BETANCOURT FERNANDO

Ingeniera en Tecnologas de la Informacin y


Comunicaciones

6to Semestre

Vespertino

NDICE

Qu es una estructura?

Estructura simple o Sistema monoltico

Estructura por capas (layers)

Buffering

Spooling

Manejadores de interrupcin

6
6

Manejadores de dispositivos

7
Software de E/S independiente del dispositivo
8
Operaciones de E/S
10
Bibliografa

QU ES UNA ESTRUCTURA?
Los sistemas operativos actuales son grandes y complejos, estos deben poseer una
ingeniera correcta para su fcil actualizacin y para que puedan cumplir su funcin
correctamente. La estructura es generalmente modular, cada mdulo cumple una funcin
determinada e interacta con los dems mdulos.
ESTRUCTURA SIMPLE O SISTEMA MONOLTICO
El sistema MS-DOS es, sin duda, el mejor sistema operativo para microcomputadoras. Sin
embargo, sus interfaces y niveles de funcionalidad no estn bien definidos. Los
programas de aplicacin pueden acceder a operaciones bsicas de entrada / salida para
escribir directamente en pantalla o discos. Este libre acceso, hace que el sistema sea
vulnerable, ya que un programa de aplicacin puede eliminar por completo un disco rgido
por alguna falla. Adems este sistema, tambin est limitado al hardware sobre el que
corre.
Otra estructura simple es la utilizada por la versin original de UNIX, esta consiste de dos
partes separadas, el kernel y los programas de sistemas. El kernel fue posteriormente
separado en manejadores (drivers) de dispositivos y una serie de interfaces. El kernel
provee el sistema de archivos, la programacin de CPU, el administrador de memoria y
otras funciones del sistema operativo que responden a las llamadas del sistema
enunciadas anteriormente.

Es una forma de relacion entre el kernel y el software los sistemas operativos que usaron
este sistema fueron freedbsd, unix y linux.
ESTRUCTURA POR CAPAS (LAYERS)
Las nuevas versiones de UNIX se disearon para hardware ms avanzado. Para dar
mayor soporte al hardware, los sistemas operativos se dividieron en pequeas partes.
Ahora los sistemas operativos tienen mayor control sobre el hardware y las aplicaciones
que se ejecutan sobre este.
La modularizacin de un sistema se puede presentar de varias formas, la ms utilizada es
la de capas, la cual consiste en dividir al sistema operativo en un nmero de capas. La
capa de menor nivel es el hardware y la de mayor nivel es la interfaz con el usuario.
3

La principal ventaja es que cada capa cumple con una serie de funciones y servicios que
brinda a las otras capas, esto permite una mejor organizacin del sistema operativo y una
depuracin ms fcil de este.

Es una estructura organizada jerrquicamente cada una construidas de menor a mayor.


Cada capa se implementa solo utilizando las operaciones provistas por la capa de nivel
inferior. Una capa no necesita saber cmo se implementan estas funciones, solo necesita
saber que operaciones puede realizar.
Los procesos de usuario emiten peticiones de E/S al sistema operativo. Cuando un
proceso solicita una operacin de E/S, el sistema operativo prepara dicha operacin y
bloquea al proceso hasta que se recibe una interrupcin del controlador del dispositivo
indicando que la operacin est completa.
En el manejo de los dispositivos de E/S es necesario, introducir dos nuevos trminos:
BUFFERING (uso de memoria interna)
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 ledo y la CPU va a iniciar
inmediatamente la operacin con ellos, el dispositivo de entrada es introducido para iniciar
inmediatamente la siguiente lectura.
La CPU y el dispositivo de entrada permanecen ocupados. Cuando la CPU este 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 ledos, mientras el dispositivo de entrada
iniciara la lectura de los datos siguientes.

SPOOLING
Esta forma de procesamiento de denomina spooling, utiliza el disco como un buffer muy
grade 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 caracterstica utilizada en la mayora de los sistemas operativos.

Los procesos de usuario emiten peticiones de entrada/salida al sistema operativo. Cuando


un proceso solicita una operacin de E/S, el sistema operativo prepara dicha operacin y
bloquea al proceso hasta que se recibe una interrupcin del controlador del dispositivo
indicando que la operacin est completa. Las peticiones se procesan de forma
estructurada en las siguientes capas:

Manejadores de interrupcin.
Manejadores de dispositivos o drivers.
Software de E/S independiente de los dispositivos. Este software est
formado por la parte de alto nivel de los manejadores, el gestor de cache, el
gestor de bloques y el servidor de archivos.
Interfaz del sistema operativo. Llamadas al sistema que usan las
aplicaciones de usuario.

El sistema operativo estructura el software de gestin de E/S de esta forma para ofrecer a
los usuarios una serie de servicios de E/S independientes de los dispositivos. Esta
independencia implica que deben emplearse los mismos servicios y operaciones de E/S
para leer datos de un disquete, de un disco duro, de un CD-ROM o de un teclado.

MANEJADORES DE INTERRUPCIN
Los manejadores de interrupcin se encargan de tratar las interrupciones que generan los
controla dores de dispositivos una vez que stos estn listos para la transferencia de
datos o bien han ledo o escrito los datos de memoria principal en caso de acceso directo
a memoria. Para tratar dicha interrupcin se ejecuta el correspondiente manejador de
interrupcin cuyo efecto es el de salvar los registros, comunicar el evento al manejador
del dispositivo y restaurar la ejecucin de un proceso (que no tiene por qu ser el
interrumpido).
Los manejadores de interrupcin suelen hacer algo ms que comunicar el evento al
manejador de dispositivo. Cuando una interrupcin ocurre muy frecuentemente, caso del
reloj, o cuando la cantidad de informacin a transferir es muy pequea, caso del teclado,
sera muy costoso comunicar siempre el evento al manejador de dispositivo asociado. En
estos casos, el propio manejador de interrupcin registra la ocurrencia del evento, bien
mediante el incremento de una variable global para el reloj o la acumulacin de caracteres
en un buffer del teclado. La notificacin al manejador se hace nicamente cada cierto
nmero de ocurrencias del evento, en el caso del reloj, o activando unflag que indica que
hay datos en el buffer del teclado.
MANEJADORES DE DISPOSITIVOS
Cada dispositivo de E/S, o cada clase de dispositivos, tiene un manejador asociado en el
sistema operativo.
Dicho manejador incluye: cdigo independiente del dispositivo para proporcionar al nivel
superior del sistema operativo una interfaz de alto nivel y el cdigo dependiente del
dispositivo necesario para programar el controlador del dispositivo a travs de sus
registros y datos. La tarea de un manejador de dispositivo es aceptar peticiones en
formato abstracto, de la parte del cdigo de E/S independiente del dispositivo, traducir
dichas peticiones a trminos que entienda el controlador, enviar al mismo las rdenes
adecuadas en la secuencia correcta y esperar a que se cumplan. La siguiente figura
muestra un diagrama de flujo con las operaciones de un manejador.
Todos los manejadores tienen una lista de peticiones pendientes por dispositivo donde se
encolan las peticiones que llegan de niveles superiores. El manejador explora la lista de
peticiones, extrae una peticin pendiente y ordena su ejecucin. La poltica de extraccin
de peticiones de la lista es dependiente de manejador y puede ser FIFO. Una vez enviada
la peticin al controlador, el manejador se bloquea o no, dependiendo de la velocidad del
dispositivo. Para los lentos (discos) se bloquea esperando una interrupcin. Para los
rpidos (pantalla, discos RAM, etctera) responde inmediatamente. Despus de recibir el
fin de operacin, controla la existencia de errores y devuelve al nivel superior el estado de
terminacin de la operacin. Si tiene operaciones pendientes en la cola de peticiones,

atiende a la siguiente, en caso de que le toque ejecutar despus de la operacin de E/S.


En caso contrario se bloquea.
SOFTWARE DE E/S INDEPENDIENTE DEL DISPOSITIVO
La mayor parte del sistema de E/S es software independiente de dispositivo. Este nivel
incluye el sistema de archivos y el de gestin de red, el gestor de bloques, la cache de
bloques y una parte de los manejadores de dispositivo. La principal funcin de esta capa
de software es ejecutar las funciones de E/S que son comunes a todos los dispositivos a
travs de una interfaz uniforme. Internamente, en este nivel se proporciona acceso a
nivel de bloques o caracteres, almacenamiento intermedio, gestin de los dispositivos,
planificacin de la E/S y control de errores.
El tamao de acceso a nivel de bloques se hace usando tamaos de bloque de acceso
comunes para todo un sistema de archivos, lo que permite ocultar que cada dispositivo
puede tener distinto tamao de sector y distinta geometra. Estos detalles quedan ocultos
por la capa de software in dependiente de dispositivo que ofrece una interfaz sobre la
base de bloques lgicos del sistema de archivos. Lo mismo ocurre con los dispositivos de
caracteres, algunos de los cuales trabajan con un carcter cada vez, como el teclado,
mientras otros trabajan con flujos de caracteres, como el modem o las redes.
Para optimizar la E/S y para armonizar las peticiones de usuario, que pueden ser de
cualquier tamao, con los bloques que maneja el sistema de archivos, el software de E/S
proporciona almacenamiento intermedio en memoria del sistema operativo. Esta facilidad
se usa para tres cosas:

Optimizar la E/S evitando accesos a los dispositivos.


Ocultar las diferencias de velocidad con que cada dispositivo y usuario
manejan los datos.
Facilitar la implementacin de la semntica de comparticin, al existir una copia
nica de los datos en memoria.

El sistema de E/S mantiene buffers en distintos componentes. Por ejemplo, en la parte del
manejador del teclado independiente del dispositivo existe un buffer para almacenar los
caracteres que teclea el usuario hasta que se pueden entregar a los niveles superiores. Si
se usa una lnea serie para leer datos de un sistema remoto y almacenarlos en el disco,
se puede usar un buffer para guardar temporalmente los datos hasta que tengan una
cierta entidad y sea rentable escribirlos a disco. Si se est leyendo o escribiendo un
archivo, se guardan copias de los bloques en memoria para no tener que acceder al disco
si se vuelven a leer.
La gestin de los dispositivos agrupa a su vez tres servicios: nombrado, proteccin y
control de acceso.

OPERACIONES DE E/S
Tanto en la E/S programada como la basada en interrupciones, la UCP 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 UCP y la
E/S consiste en que el controlador del dispositivo se pueda encargar de efectuar la
transferencia de datos, liberando de este trabajo a la UCP, e interrumpir a la UCP slo
cuando haya terminado la operacin completa de EIS. Esta tcnica se denomina acceso
directo a memoria (DMA, Direct Memory Access).
Cuando se utiliza acceso directo a memoria, es el controlador el que se encarga
directamente de transferir los datos entre el perifrico y la memoria principal, sin requerir
intervencin alguna por parte del procesador. Esta tcnica funciona de la siguiente
manera: cuando el procesador desea que se imprima un bloque de datos, enva una
orden al controlador indicndole la siguiente informacin:
Tipo de operacin: lectura o escritura.
Perifrico involucrado en la operacin.
La direccin de memoria desde la que se va a leer o a la que va a escribir

directamente con el controlador de dispositivo (direccin).


El nmero de bytes a transferir (contador).

Donde el campo Operacin corresponde al cdigo de operacin de las instrucciones


mquina normal. Especifica la operacin que debe realizar la CCW. La unidad de control
decodifica este campo y enva las seales adecuadas de control al dispositivo. Existen
varias operaciones, las ms importantes son las siguientes:
Lectura: el canal transfiere a memoria principal un bloque de palabras de tamao
especificado en el campo n de palabras, en orden ascendente de direcciones,
empezando en la direccin especificada en el campo direccin del dato.
Escritura: el canal transfiere datos de memoria principal al dispositivo. Las palabras se
transfieren en el mismo orden que en la operacin de lectura.
Control: se utiliza esta orden para enviar instrucciones especficas al dispositivo de E/S,
como rebobinar una cinta magntica, etc.
Bifurcacin: cumple en el programa de canal la misma funcin que una instruccin de
salto en un programa normal. El canal ejecuta las CCW en secuencia, salvo cuando
aparece una CCW de este tipo, que utiliza el campo direccin del dato como la direccin
de la siguiente CCW a ejecutar.
8

Los pasos a seguir en una operacin de E/S con DMA son los siguientes:
1. Programacin de la operacin de E/S. Se indica al controlador la operacin, los
datos a transferir y la direccin de memoria sobre la que se efectuar la operacin.
2. El controlador contesta aceptando la peticin de E/S.
3. El controlador le ordena al dispositivo que lea (para operacin de lectura) una
cierta cantidad de datos desde una posicin determinada del dispositivo a su
memoria interna.
4. Cuando los datos estn listos, el controlador los copia a la posicin de memoria
que tiene en sus registros, incrementa dicha posicin de memoria y decrementa el
contador de datospendientes de transferir.
5. Los pasos 3 y 4 se repiten hasta que no quedan ms datos por leer.
6. Cuando el registro de contador est a cero, el controlador interrumpe a la UCP
para in dicar que la operacin de DMA ha terminado.

INICIO Y CONTROL DE LOS PROGRAMAS DE CANAL


Hemos visto como se utilizan los programas de canal para realizar operaciones de E/S.
Estos programas residen en la memoria principal del computador y se ejecutan en el
canal. Vamos a examinar ahora la forma en que la CPU inicia y supervisa las operaciones
de E/S, es decir, el programa de canal. En el IBM S/370 existen cuatro instrucciones
mquina que la CPU puede utilizar para estos fines. Son las siguientes:

START I/O Inicia una operacin de E/S. El campo de direccin de la instruccin se


emplea para especificar el canal y el dispositivo de E/S que participa en la
operacin.
HALT I/O Finaliza la operacin del canal.
TEST CHANNEL Prueba el estado del canal.
TEST I/O Prueba el estado del canal, el subcanal y el dispositivo de E/S.

Una operacin de E/S se inicia con la instruccin START I/O. La ubicacin del programa
de canal en la memoria principal viene definida en la palabra de direccin de canal (CAW:
Channel Address word), que siempre est almacenada en la posicin 72 de la memoria
principal.

BIBLIOGRAFA

http://sistemas-operativos-itssmo.blogspot.mx/
http://sistemasoperativos.angelfire.com/html/4.3.html
https://sites.google.com/site/materiasisoperativo/unidad-4-administracion-deentrada-salida/4-3-estructuras-de-datos-para-manejo-de-dispositivos
http://admin-entradaysalidadedispositivos.blogspot.mx/2009/11/43.html
http://sistemasoperativosyeraldi.blogspot.mx/2009/11/43-estructura-de-datos-paramanejo-de.html
http://sistemasoperativos.angelfire.com/html/4.4.html
http://admin-entradaysalidadedispositivos.blogspot.mx/2009/11/44-operaciones-deentrada-salida.html

10