Araos S.O Unidad 4

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 19

Araos Cortés Edgar

Contenido
4.1 Dispositivos y manejadores de dispositivos:...................................................................2
Device drivers....................................................................................................................2
Dispositivos de interfaz de usuario................................................................................4
Dispositivos de almacenamiento...................................................................................5
Dispositivos de comunicaciones....................................................................................5
Controladores de Dispositivos.......................................................................................6
4.2. Mecanismos Funciones Manejadores Dispositivos......................................................10
Controlador..................................................................................................................... 10
Estructura........................................................................................................................10
Funciones generalmente realizadas por el software independiente del dispositivo:......10
Las funciones básicas del software independiente del dispositivo son:..........................11
4.3. Estructuras de datos para manejo de...........................................................................12
Dispositivos..................................................................................................................... 12
Sistemas monolíticos:..................................................................................................12
Sistemas por capas:.....................................................................................................13
BUFFERING (uso de memoria interna):.......................................................................14
SPOOLING:...................................................................................................................14
Manejadores de interrupción:.........................................................................................14
Máquinas virtuales:.........................................................................................................15
Modelo cliente-servidor:.................................................................................................15
Microkernels:.................................................................................................................. 15
Exokernels:...................................................................................................................... 15
4.4 Operaciones de Entrada/Salida.....................................................................................17
Inicio y control de los programas de canal......................................................................20
Fuentes bibliográficas:........................................................................................................ 21

Sistemas Operativos I
Araos Cortés Edgar

4.1 Dispositivos y manejadores de dispositivos:


Device drivers
El sistema de Entrada/Salida es la parte del sistema operativo que se ocupa de
facilitar el manejo de los dispositivos de Entrada/Salida ofreciendo una visión
lógica simplificada de los mismos que pueda ser usada por otros componentes del
sistema operativo (como el sistema de archivos) o incluso por el usuario. Mediante
esta visión lógica se ofrece a los usuarios un mecanismo de abstracción que
oculta todos los detalles relacionados con los dispositivos físicos, así como del
funcionamiento real de los mismos.
El sistema operativo debe controlar el funcionamiento de todos los dispositivos de
Entrada/Salida para alcanzar los siguientes objetivos:
Facilitar el manejo de los dispositivos de Entrada/Salida. Para ello debe ofrecer
una interfaz entre los dispositivos y el resto del sistema que sea sencilla y fácil de
utilizar.
Optimizar la Entrada/Salida del sistema, proporcionando mecanismos de
incremento de prestaciones donde sea necesario.
Proporcionar dispositivos virtuales que permitan conectar cualquier tipo de
dispositivo físico sin que sea necesario remodelar el sistema de Entrada/Salida del
sistema operativo.
Permitir la conexión de dispositivos nuevos de Entrada/Salida, solventando de
forma automática su instalación usando mecanismos del tipo plug&play.
Conexión de un dispositivo de Entrada/Salida a una computadora En la siguiente
figura se muestra el esquema general de conexión de periféricos a una
computadora. En el modelo de un periférico se distinguen dos elementos:
Periféricos o dispositivos de Entrada/Salida. Elementos que se conectan a la
unidad central de proceso a través de las unidades de entrada/salida. Son el
componente mecánico que se conecta a la computadora.
Controladores de dispositivos o unidades de Entrada/Salida. Se encargan de
hacer la transferencia de información entre la memoria principal y los periféricos.

Sistemas Operativos I
Araos Cortés Edgar

Son el componente electrónico a través del cual se conecta el dispositivo de


Entrada/Salida. Tienen una conexión al bus de la computadora y otra para el
dispositivo (generalmente mediante cables internos o externos).
Una de las funciones principales de un S. O. es el control de todos los dispositivos
de e / s de la computadora.
Las principales funciones relacionadas son:
Enviar comandos a los dispositivos.
Detectar las interrupciones.
Controlar los errores.
Proporcionar una interfaz entre los dispositivos y el resto del sistema:
El código de e / s representa una fracción significativa del S. O.
El uso inapropiado de los dispositivos de e/s frecuentemente genera ineficiencias
del sistema, lo que afecta al performance global.
Principios del Hardware de Entrada/Salida
El enfoque que se considerará tiene que ver con la interfaz que desde el hardware
se presenta al software
Comandos que acepta el hardware.
Funciones que realiza.
Errores que puede informar
Dispositivos de E / S
Se 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 que almacenan la información en bloques de
tamaño fijo (discos)

Sistemas Operativos I
Araos Cortés Edgar

Dispositivos de caracteres: maneja la información mediante un flujo de caracteres


sin estructurarlos en bloques (mouse, teclado, impresora)
Las principales características de los dispositivos de bloque son:
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.
Las principales características de los dispositivos de carácter son:
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.
Unos ejemplos típicos de dispositivos de carácter son las impresoras de línea,
terminales, interfaces de una red, ratones, etc.
Algunos dispositivos no se ajustan a este esquema de clasificación, por ejemplo
los relojes, que no tienen direcciones por medio de bloques y no generan o
aceptan flujos de caracteres.
El sistema de archivos solo trabaja con dispositivos de bloque abstractos, por lo
que encarga la parte dependiente del dispositivo a un software de menor nivel, el
software manejador del dispositivo.
Todos los dispositivos de Entrada/Salida se pueden agrupar en tres grandes
grupos:

Dispositivos de interfaz de usuario.


Se llama así a los dispositivos que 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 (ratón, teclado, etc.)
como para salida (impresoras, pantalla, etc.). Existen periféricos menos

Sistemas Operativos I
Araos Cortés Edgar

habituales, pero más sofisticados, tales como un escáner, lectores de huella


digital, lectores de cinta magnética, instrumentos musicales digitales (MIDI), etc.

Dispositivos de almacenamiento.
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 (discos y disquetes) y terciario (cintas).

Dispositivos de comunicaciones.
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.
En cualquier caso, y sea como sea el controlador, su misión es convertir los datos
del formato interno del dispositivo a uno externo que se ofrezca a través de una
interfaz de programación bien definida.

Controladores de Dispositivos
Un controlador (instaladores) de dispositivos, normalmente llamado controlador en
inglés (device driver) es un programa que informático que permite al sistema
operativo interactuar con un periférico, haciendo una abstracción del hardware del
dispositivo y proporcionando una interfaz - posiblemente estandarizada - para
usarlo. Se puede esquematizar como un manual de instrucciones que se indica al
sistema operativo, cómo debe controlar y comunicarse con un dispositivo en
particular. Por lo tanto es una pieza esencial, sin el cual, no se podría usar el
hardware. Los controladores de dispositivos son programas añadidos al núcleo del
sistema para gestionar periféricos y dispositivos oficiales.
Existen tantos tipos de controladores como tipos de periféricos y es común más de
un tipo de controlador posible para el mismo dispositivo, cada uno ofreciendo un
nivel distinto de funcionalidades. Por ejemplo, aparte de los oficiales (normalmente

Sistemas Operativos I
Araos Cortés Edgar

disponibles en la página web del fabricante se pueden encontrar cámbienlos


proporcionados por el sistema operativo o también versiones no oficiales hechas
por terceros.
Las unidades de e / s generalmente constan de:
Un componente mecánico.
Un componente electrónico, el controlador del dispositivo o adaptador.
Muchos controladores pueden manejar más de un dispositivo. El S. O.
generalmente trabaja con el controlador y no con el dispositivo.
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:
La comunicación es mediante un flujo de bits en serie que:
Comienza con un preámbulo.
Sigue con una serie de bits (de un sector de disco, por ej.).
Concluye con una suma para verificación o un código corrector de errores.
El preámbulo:
Se escribe al dar formato al disco.
Contiene el número de cilindro y sector, el tamaño de sector y otros datos
similares.
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:

Sistemas Operativos I
Araos Cortés Edgar

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.
La cpu obtiene los resultados y el estado del dispositivo al leer uno o más bytes de
información de los registros del controlador.
Manejadores de Dispositivos
Cada dispositivo de Entrada/Salida, o cada clase de dispositivos, tiene un
manejador asociado en el sistema operativo.
Dicho manejador incluye: código independiente del dispositivo para proporcionar al
nivel superior del sistema operativo una interfaz de alto nivel y el código
dependiente del dispositivo necesario para programar el controlador del dispositivo
a través de sus registros y datos. La tarea de un manejador de dispositivo es
aceptar peticiones en formato abstracto, de la parte del código de Entrada/Salida
independiente del dispositivo, traducir dichas peticiones a términos 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 petición pendiente y ordena su ejecución.

Sistemas Operativos I
Araos Cortés Edgar

La política de extracción de peticiones de la lista es dependiente de manejador y


puede ser FIFO. Una vez enviada la petición al controlador, el manejador se
bloquea o no, dependiendo de la velocidad del dispositivo. Para los lentos (discos)
se bloquea esperando una interrupción. Para los rápidos (pantalla, discos RAM,
etcétera) responde inmediatamente. Después de recibir el fin de operación,
controla la existencia de errores y devuelve al nivel superior el estado de
terminación de la operación. Si tiene operaciones pendientes en la cola de
peticiones, atiende a la siguiente, en caso de que le toque ejecutar después de la
operación de Entrada/Salida. En caso contrario se bloquea.
Cada controlador posee uno o más registros de dispositivos:
Se utilizan para darle los comandos.
Los manejadores de dispositivos proveen estos comandos y verifican su ejecución
adecuada.
La labor de un manejador de dispositivos es la de:
Aceptar las solicitudes abstractas que le hace el software independiente del
dispositivo.
Verificar la ejecución de dichas solicitudes.
Si al recibir una solicitud el manejador esta ocupado con otra solicitud, agregara la
nueva solicitud a una cola de solicitudes pendientes.
La solicitud de e / s, por ej. para un disco, se debe traducir de términos abstractos
a términos concretos.

Sistemas Operativos I
Araos Cortés Edgar

4.2. Mecanismos Funciones Manejadores Dispositivos.


Controlador
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 el CPU. El sistema operativo
generalmente trabaja con el controlador y no con el dispositivo.
Hay tres registros importantes en casi todos los controladores: registro de datos,
esto y control.
Un controlador de dispositivos o unidad de E/S se encarga de controlar uno o más
dispositivos del mismo tiempo y de intercambiar información entre ellos y la
memoria principal o CPU de la computadora.
Estructura
La estructura es modular, cada módulo cumple una función determinada e
interactúa con los demás módulos. Los procesos de usuario emiten peticiones de
entrada/salida al sistema operativo.
Las peticiones se procesan de forma estructurada en las siguientes capas:
 Manejadores de interrupción.
 Manejadores de dispositivos o drivers.
 Software de E/S independiente de los dispositivos.
 Interfaz del sistema operativo (llamadas al sistema que usan las aplicaciones de
usuario).
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 buffers.
 Asignación de espacio en los dispositivos por bloques.

Sistemas Operativos I
Araos Cortés Edgar

 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.

Sistemas Operativos I
Araos Cortés Edgar

4.3. Estructuras 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 módulo
cumple una función determinada e interactúa con los demás módulos.
Una Estructura de Datos es una forma de organizar un conjunto de datos
elementales con el objetivo de facilitar su manipulación. Un dato elemental es la
mínima información que se tiene en un sistema.
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.

Sistemas monolíticos:
Este enfoque, que es por mucho la organización más común, bien podría
subtitularse “El Gran Desorden”. La estructura consiste en que no hay estructura.
El sistema operativo se escribe como una colección de procedimientos, cada uno
de los cuales puede invocar a cualquiera de los otros cuando necesita hacerlo.
Cuando se usa esta técnica, cada procedimiento del sistema tiene una interfaz
bien definida en términos de parámetros y resultados, y cada uno está en libertad
de invocar a cualquier otro, si este último realiza algún cálculo útil que el primero
necesita.
No obstante, incluso en los sistemas monolíticos es posible tener al menos un
poco de estructura. Los servicios (llamadas al sistema) proporcionados por el
sistema operativo se solicitan colocando los parámetros en lugares bien definidos,
como en registros o en la pila, y ejecutando después una instrucción de trampa
especial conocida como llamada al kernel o llamada al supervisor.
Esta organización sugiere una estructura básica para el sistema operativo:

Sistemas Operativos I
Araos Cortés Edgar

1. Un programa principal que invoca el procedimiento de servicio solicitado.


2. Un conjunto de procedimientos de servicio que llevan a cabo las llamadas al
sistema.
3. Un conjunto de procedimientos de utilería que ayudan a los procedimientos de
servicio.

Sistemas por capas:


Una generalización del enfoque consiste en organizar el sistema operativo como
una jerarquía de capas, cada una construida sobre la que está abajo de ella. El
primer sistema que tuvo esta estructura fue el sistema THE construido en la
Technische Hogeschool Eindhoven de los Países Bajos por E. W. Dijkstra (1968) y
sus estudiantes. El sistema THE era un sencillo sistema por lotes para una
computadora holandesa, la Electrologica X8, que tenía 32K de palabras de 27 bits
(los bits eran costosos en esos tiempos).
La capa Ose ocupaba del reparto del procesador, conmutando entre procesos
cuando ocurrían interrupciones o expiraban temporizadores. Más arriba de la capa
O, el sistema consistía en procesos secuenciales, cada uno de los cuales podía
programarse sin tener que preocuparse por el hecho de que múltiples procesos se
estuvieran ejecutando en un solo procesador. En otras palabras, la capa O se
encargaba de la multiprogramación básica de la CPU.
La capa 1 administraba la memoria, repartiendo espacio para los procesos en la
memoria principal y en un tambor de 512K palabras que servía para contener
partes de los procesos (páginas) para las que no había espacio en la memoria
principal.
La capa 2 manejaba la comunicación entre cada proceso y la consola del
operador. Por encima de esta capa cada proceso tenía efectivamente su propia
consola de operador.
La capa 3 se encargaba de administrar los dispositivos de E/S y de colocar en
buffers las corrientes de información provenientes de y dirigidas a ellos.

Sistemas Operativos I
Araos Cortés Edgar

En la capa 4 se encontraban los programas de usuario, los cuales no tenían que


preocuparse por la administración de procesos, memoria, consola o E/S. El
proceso del operador del sistema estaba en la capa 5.
En el manejo de los dispositivos de E/S es necesario, introducir dos nuevos
términos:

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 leído y la CPU
va a iniciar inmediatamente la operación 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 habra terminado de leerlos. La
CPU podra empezar el proceso de los ultimos datos leidos, 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 caracteristica utilizada en la mayoria de los
sistemas operativos.

Manejadores de interrupción:
Los manejadores de interrupción se encargan de tratar las interrupciones que
generan los controladores de dispositivos una vez que éstos están listos para la
transferencia de datos o bien han leído o escrito los datos de memoria principal en
caso de acceso directo a memoria. Para tratar dicha interrupción se ejecuta el
correspondiente manejador de interrupción cuyo efecto es el de salvar los
registros, comunicar el evento al manejador del dispositivo y restaurar la ejecución
de un proceso (que no tiene por qué ser el interrumpido).

Sistemas Operativos I
Araos Cortés Edgar

Máquinas virtuales:
Las primeras versiones de OS/360 eran sistemas estrictamente por lotes. No
obstante, muchos usuarios de 360 querían tener tiempo compartido, de modo que
diversos grupos, tanto dentro como fuera de IBM, decidieron escribir sistemas de
tiempo compartido para él. El sistema de tiempo compartido oficial de IBM,
TSS/360, se entregó tarde, y cuando por fin llegó era tan grande y lento que pocos
sitios realizaron la conversión. El corazón del sistema, conocido como monitor de

máquina virtual, se ejecuta en el hardware solo y realiza la multiprogramación,


proporcionando no una, sino varias máquinas virtuales a la siguiente capa
superior.

Modelo cliente-servidor:
VM1370 se simplifica mucho al desplazar una parte importante del código de
sistema operativo tradicional (que implementa la máquina extendida) a una capa
superior, CMS. No obstante, el VM/370 en sí sigue siendo un programa complejo
porque simular varias 370 virtuales no es tan fácil (sobre todo si se desea hacerlo
con una eficiencia razonable). Una tendencia en los sistemas operativos modernos
es llevar aún más lejos esta idea de trasladar código a capas superiores y quitarle
lo más que se pueda al sistema operativo, dejando un kernel mínimo. El enfoque
usual consiste en implementar la mayor parte de las funciones del sistema
operativo en procesos de usuario.

Microkernels:
Con el diseño de capas, los diseñadores podían elegir en dónde dibujar el límite
entre kernel y usuario. Tradicionalmente todas las capas iban al kernel, pero eso
no es necesario. De hecho, puede tener mucho sentido poner lo menos que sea
posible en modo kernel, debido a que los errores en el kernel pueden paralizar el
sistema de inmediato. En contraste, los procesos de usuario se pueden configurar
para que tengan menos poder, por lo que un error en ellos tal vez no sería fatal.

Sistemas Operativos I
Araos Cortés Edgar

Exokernels:
En vez de clonar la máquina actual, como se hace con las máquinas virtuales, otra
estrategia es particionarla; en otras palabras, a cada usuario se le proporciona un
subconjunto de los recursos. Así, una máquina virtual podría obtener los bloques
de disco del 0 al 1023, la siguiente podría obtener los bloques de disco del 1024 al
2047 y así sucesivamente. En la capa inferior, que se ejecuta en el modo kernel,
hay un programa llamado exokernel (Engler y colaboradores, 1995). Su trabajo es
asignar recursos a las máquinas virtuales y después comprobar los intentos de
utilizarlos, para asegurar que ninguna máquina trate de usar los recursos de otra.
Cada máquina virtual de nivel de usuario puede ejecutar su propio sistema
operativo, al igual que en la VM/370 y las Pentium 8086 virtuales, con la excepción
de que cada una está restringida a utilizar sólo los recursos que ha pedido y que le
han sido asignados.

Sistemas Operativos I
Araos Cortés Edgar

4.4 Operaciones de Entrada/Salida


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 sólo cuando haya terminado la operación
completa de EIS.
Esta técnica 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 periférico y la memoria principal, sin
requerir intervención alguna por parte del procesador. Esta técnica funciona de la
siguiente manera: cuando el procesador desea que se imprima un bloque de
datos, envía una orden al controlador indicándole la siguiente información:
 Tipo de operación: lectura o escritura.
 Periférico involucrado en la operación.
 La dirección de memoria desde la que se va a leer o a la que va a escribir
directamente con el controlador de dispositivo (dirección).
 El número de bytes a transferir (contador).
Donde el campo Operación corresponde al código de operación de las
instrucciones máquina normales. Especifica la operación que debe realizar la
CCW. La unidad de control decodifica este campo y envía las señales adecuadas
de control al dispositivo.
Existen 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º de palabras, en orden ascendente de direcciones,
empezando en la dirección especificada en el campo dirección del dato.

Sistemas Operativos I
Araos Cortés Edgar

• 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. El canal ejecuta las CCW en secuencia, salvo
cuando aparece una CCW de este tipo, que utiliza el campo dirección del dato
como la dirección de la siguiente CCW a ejecutar.
• Flags: Los bits de este campo indican lo siguiente:
-CC (Encadenamiento de comando): Cuando este bit está a 1, indica al canal que
la siguiente CCW especifica una nueva operación de E/S que debe realizarse con
el mismo dispositivo. El canal ejecuta primero la operación de E/S especificada en
la CCW que tiene a 1 el flag CC. Después ejecuta la siguiente sobre el mismo
dispositivo. Desde el punto de vista del dispositivo, las dos operaciones
resultantes de la primera y segunda CCW aparecen como dos comandos de E/S
separados.
-CD (Encadenamiento de datos): Una CCW con el bit CD a 1, indica al canal que
la siguiente CCW contiene una nueva dirección del dato y un nuevo nº de
palabras. Éstos deben utilizarse para transferir un segundo bloque de datos hacia
o desde el dispositivo de E/S, mediante la orden especificada por la CCW actual.
Cuando el canal termina la transferencia de datos especificada en la CCW con el
bit CD a 1, no corta la conexión con el dispositivo de E/S, continúa la transferencia
utilizando la dirección y el nº de palabras de la siguiente CCW.
-Skip (Salto): Este bit, cuando está a 1, hace que el programa de canal salte un
número de palabras igual al especificado en el campo nº de palabras. Cuando se
utiliza con la orden de lectura, este flag hace que los datos se lean del dispositivo
sin que se transfieran a la memoria principal.
-PCI (Interrupción controlada por programa): El canal produce una interrupción
cuando ejecuta una CCW con el flag PCI a 1. Si esta CCW va precedida por otra

Sistemas Operativos I
Araos Cortés Edgar

CCW con encadenamiento de comandos, la interrupción se genera después de


que hayan concluido todas las transferencias de datos.
Una vez emitida la orden, el procesador continúa realizando otro trabajo sin
necesidad de transferir el bloque de datos. Es el propio controlador el que se
encarga de transferir el bloque de datos del periférico a memoria. La transferencia
se realiza palabra a palabra. Cuando el controlador ha completado la
transferencia, genera una interrupción que activa la rutina de tratamiento
correspondiente, de tal manera que se sepa que la operación ha concluido.
Utilizando acceso directo a memoria el procesador únicamente se ve involucrado
al inicio y al final de la transferencia. Por tanto, cuando el sistema operativo
despierta al proceso que pidió la E/S, no tiene que copiar el bloque a memoria
porque ya está allí.
El DMA requiere una etapa de almacenamiento intermedio en el controlador del
dispositivo para armonizar la velocidad del dispositivo de EIS con la copia de los
datos en memoria principal. La razón para este almacenamiento intermedio reside
en que una vez que el dispositivo empieza la transferencia de datos, ésta debe
hacerse a velocidad constante para evitar transferencias parciales y nuevas
esperas de posicionamiento del dispositivo sobre los datos (latencia). Una vez
transferidos los datos a la memoria del controlador, éste los copia en memoria
principal aprovechando el ancho de banda libre del bus.
Dentro de la programación de estos, los pasos a seguir en una operación de E/S
con DMA son los siguientes:
1. Programación de la operación de E/S. Se indica al controlador la operación,
los datos a transferir y la dirección de memoria sobre la que se efectuará la
operación.
2. El controlador contesta aceptando la petición de E/S.
3. El controlador le ordena al dispositivo que lea (para operación de lectura)
una cierta cantidad de datos desde una posición determinada del dispositivo a su
memoria interna.

Sistemas Operativos I
Araos Cortés Edgar

4. Cuando los datos están listos, el controlador los copia a la posición de


memoria que tiene en sus registros, incrementa dicha posición de memoria y
decrementa el contador de datos pendientes de transferir.
5. Los pasos 3 y 4 se repiten hasta que no quedan más datos por leer.
6. Cuando el registro de contador está a cero, el controlador interrumpe a la
UCP para in dicar que la operación 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 máquina que la CPU puede utilizar
para estos fines. Son las siguientes:
• Start I/O: Inicia una operación de E/S. El campo de dirección de la instrucción se
emplea para especificar el canal y el dispositivo de E/S que participa en la
operación.
• Halt I/O: Finaliza la operación 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 operación de E/S se inicia con la instrucción START I/O. La ubicación del
programa de canal en la memoria principal viene definida en la palabra de
dirección de canal (CAW: Channel Address Word), que siempre está almacenada
en la posición 72 de la memoria principal.

Sistemas Operativos I

También podría gustarte