domingo, 11 de mayo de 2014

¿Cuáles son las Estructuras de Datos de un Controlador?

Las rutinas de un driver para dar un correcto servicio a las peticiones de entrada / salida necesitan para cada dispositivo una serie de datos que se encuentran en estructuras de datos:

Bloque de control del driver (BCD)
Es la representación del driver desde el punto de vista del sistema operativo. Contiene parámetros susceptibles de ser variados dinámicamente.

Bloque de control de la unidad (BCU)
Cada dispositivo físico se relaciona desde el punto de vista del sistema operativo como una unidad dentro del tipo al que le corresponda.

Paquete de petición de entrada/salida (PES)
Cuando un proceso de usuario intenta hacer una operación de entrada/salida, el sistema operativo crea un paquete asociado a dicho proceso y a dicha petición para ser tratado por el driver. 

¿Cuáles son las Operaciones de Entrada/Salida?

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

¿Qué es el DMA?

Tanto en la E/S programada como la basada en interrupciones, el 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).

El DMA necesita: 
  1. Registro: almacena la dirección de memoria desde donde se produce la transferencia.
  2. Registro contador: guarda la longitud de bloque a transferir.
  3. Bits: indica si la operación es de lectura o escritura.
  4. Bloque de control: controla el funcionamiento del sistema.

¿Qué es el Disk And Execution Monitor?

Demonio o Daemon (Disk And Execution MONitor) los Procesos que se ejecutan de manera no "Vista" u Oculta por el Usuario dentro del sistema, pero que se están ejecutando y que pueden ser controlados por el Administrador. 

En Sistemas como Windows NT son llamados "Servicios" y son los equivalentes de Windows para los demonios de UNIX, tienen el mismo Propósito. Su contraparte en Sistemas del tipo DOS es algo complicado explicar, puesto que son Monousuario y Monoproceso. En Sistemas como el MacOS, son llamados "Extensiones del Sistema". Hay que diferenciar entre una Aplicación activa y entre un Demonio ó Entre un Servidor Software y un Demonio, la Aplicación activa ó programa simplemente es una Aplicación que se carga en la memoria y que tiene fines específicos como un Procesador de Palabras, un Reproductor, un Navegador, etc. 

Nota: El demonio se ejecuta en la Memoria pero sin "Interface" y las únicas opciones que posee son las de iniciar, reiniciar o detenerse.

sábado, 10 de mayo de 2014

¿Qué es el Software de Entrada/Salida Independiente del Dispositivo?

La principal función de esta capa de software es ejecutar las funciones de E/S que son comunes a todos los dispositivos a través de una interfaz uniformeLa mayor parte del sistema de E/S es software independiente de dispositivo. Este nivel incluye el sistema de archivos y el de gestión de red, el gestor de bloques, la cache de bloques y una parte de los manejadores de dispositivo. 

Las funciones generalmente realizadas por el software independiente del dispositivo son:
  • 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. 
  • Asignación y liberación de los dispositivos de uso exclusivo. 
  • Informe de errores.

¿Cuál es el Uso del Spooling en el Manejo de Dispositivos?

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.

Nota: Es una característica utilizada en la mayoría de los sistemas operativos.

¿Cuál es el uso del Buffering en el Manejo de Dispositivos?

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 el CPU va a inicia 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.

¿Qué son los Manejadores de Dispositivos?

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. 

Las tareas de un manejador de dispositivo son:
  1. Aceptar peticiones en formato abstracto, de la parte del código de E/S independiente del dispositivo.
  2. Traducir dichas peticiones a términos que entienda el controlador.
  3. Enviar al mismo las órdenes adecuadas en la secuencia correcta.
  4. Esperar a que se cumplan.
Nota: Todos los manejadores tienen una lista de peticiones pendientes por dispositivo donde se encolan las peticiones que llegan de niveles superiores. 



viernes, 9 de mayo de 2014

¿Qué son los Manejadores de Interrupción?

La utilidad de las interrupciones es principalmente que liberan al procesador de una espera inútil, aprovechando ese tiempo en realizar una computación más provechosa, si la hay. 

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.

Las interrupciones deben ocultarse en el S. O.:
  • Cada proceso que inicie una operación de e / s se bloquea hasta que termina la e / s y ocurra la interrupción. 
  • El procedimiento de interrupción realiza lo necesario para desbloquear el proceso que lo inició.

¿Cuál es la Estructura de Datos para Manejo de Dispositivos?

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


¿Cuáles son los Modelos de Dispositivos?

Modelo de Dispositivo por Puertos 
El modelo de dispositivos por puertos es clásico en las arquitecturas de Intel. En ellas, cuando se instala un dispositivo, a su controlador se le asigna un puerto de E/S, una interrupción hardware y un vector de interrupción. Todas las operaciones de entrada/salida (pantalla gráfica, impresoras, ratón, discos, etc.) se realizan usando esas dos instrucciones de lenguaje máquina con los parámetros adecuados. 

Nota: El problema de este tipo de direccionamiento es que exige conocer las direcciones de E/S 

Modelo de Dispositivos Proyectados en Memoria

Este modelo, típico de las arquitecturas de Motorola, asigna a cada dispositivo de E/S un rango de direcciones de memoria a través de las cuales se escribe sobre los registros del controlador. En este modelo no hay instrucciones específicas de E/S, sino que las operaciones se llevan a cabo mediante instrucciones máquina de manejo de memoria.

Nota:
Se reserva una zona de memoria física para asignar las direcciones de E/S. 




Video: ¿Cómo Identificar los Controladores Desconocidos en el Registro?

A continuación se muestra una guía rápida para encontrar controladores desconocidos en el registro: 

jueves, 8 de mayo de 2014

¿Cuáles son los Registros más Importantes?

Hay tres registros importantes en casi todos los controladores:

El registro de Datos
Sirve para el intercambio de datos. En él irá el controlador cargando los datos leídos y de él irá extrayendo los datos para su escritura en el periférico. 

El registro de Estado
Un bit del registro de estado sirve para indicar que el controlador puede transferir una palabra. En las operaciones de lectura esto significa que ha cargado en el registro de datos un nuevo valor, mientras que en las de escritura significa que necesita un nuevo dato. Otros bits de este registro sirven para que el controlador indique los problemas que ha encontrado en la ejecución de la última operación de E/S.

El registro de Control
Sirve para indicarle al controlador las operaciones que ha de realizar. Los distintos bits de este registro indican distintas acciones que ha de realizar el periférico.


¿Cuáles son los Registros del Controlador?

El controlador contiene una serie de registros llamados puertos de entrada/salida. Estos registros son accesibles (pueden ser leídos y modificados) mediante la ejecución de instrucciones máquina. Las operaciones de E/S se realizan a través de la carga y lectura de estos registros. Casi todo controlador dispone de los siguientes registros: 

Registros de Estado
Indica la situación actual del dispositivo (ocupado o desocupado). 

Registro de Órdenes
En este registro se escribe la operación de E/S que se desea que realice el dispositivo.

Buffer
Un buffer es un almacén de información. El buffer del controlador se utiliza para guardar temporalmente los datos implicados en una operación de E/S.


Video: ¿Cómo Funciona un Controlador de Dispositivo?


¿Cuáles son las Funciones del Controlador?

Un controlador de dispositivo o unidad de E/S se encarga de:
  1. Controlar uno o más dispositivos del mismo tipo y de intercambiar información entre ellos y la memoria principal. 
  2. Debe encargarse de sincronizar la velocidad del procesador con la del periférico y de detectar los posibles errores. 
  3. Debe encargarse de convertir un flujo de bits procedente del disco a un bloque de bytes.
  4. Una vez obtenido el bloque y comprobado que se encuentra libre de errores, deberá encargarse de transferirlo a memoria principal. 
Nota: Dado que los periféricos son sensiblemente más lentos que el procesador, éste deberá esperar una gran cantidad de tiempo hasta que se complete la operación de E/S. 

miércoles, 7 de mayo de 2014

¿Cuáles son las Características del Controlador?

Las características del controlador son muy importantes, ya que definen el aspecto del periférico para el sistema operativo. Atendiendo a las características del hardware de los dispositivos, se pueden observar los siguientes aspectos distintivos: 


Dirección de E/S
En general hay dos modelos de direccionamiento de E/S, los que usan puertos y los que proyectan los registros en memoria.

Unidad de transferencia
Los dispositivos suelen usar unidades de transferencia de tamaño fijo. Hay dos modelos clásicos de dispositivos: de caracteres y de bloques.

Interacción CPU-controlador
El CPU tiene que interaccionar con el controlador para realizar las operaciones de E/S y saber cuándo terminan.

¿Cuáles son los Tipos de Controladores?

Existen tantos tipos de controladores como tipos de periféricos, y es frecuente encontrar más de un controlador posible para el mismo dispositivo, cada uno ofreciendo un nivel distinto de funcionalidades. 


Controladores genéricos
Válidos para más de un modelo del mismo periférico o específicos para cada modelo. También se distribuyen actualizaciones a nuevas versiones, que pueden dar un mejor funcionamiento. Normalmente son los fabricantes del hardware quienes escriben sus controladores, ya que conocen mejor el funcionamiento interno de cada aparato.

Controladores libres
Usados en los sistemas operativos libres. En este caso, los creadores no son de la empresa fabricante, aunque a veces hay una cooperación con ellos, cosa que facilita el desarrollo. Si no la hay, el procedimiento necesita de ingeniería inversa y otros métodos difíciles o con riesgos legales. 


¿De qué se Encarga el Controlador?

Los controladores proporcionan, entre otras cosas, una homogeneización de las conexionesademás de ofrecer también un traducción entre el protocolo empleado por el dispositivo y el exigido por el procesador. Algunas de sus labores son las siguientes:
  1. Establecimiento, Control y Temporización de las comunicaciones.
  2. Comunicación con la CPU. 
  3. Comunicación con dispositivos.
  4. Almacenamiento temporal de datos.
  5. Detección de errores.
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. 



    ¿Qué son los Controladores?

    Las unidades de e/s generalmente constan de:
    • Un componente mecánico.
    • Un componente electrónico: el controlador del dispositivo o driver 
    Un controlador de dispositivo o driver es un programa informático que permite al sistema operativo interactuar con un periférico, realizando lo siguiente:
    • El controlador convierte el flujo de bits en serie transmitidos desde un dispositivo en un bloque de bytes para la CPU y realizar las correcciones de los errores que se puedan cometer en la transmisión.
    • El controlador dispone de tres capas funcionales: La interfaz del bus, el controlador y la interfaz del dispositivo.
    Nota: Muchos controladores pueden manejar más de un dispositivo. El S. O. generalmente trabaja con el controlador y no con el dispositivo.

    martes, 6 de mayo de 2014

    ¿Cuáles son los Dispositivos según su Función?

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


    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 el CPU. 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 memorias flash) 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 comunes de esta clase son los módems, 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.



    ¿Cuáles son los Dispositivos Según el Tipo de Transmisión?

    Dispositivos de Bloque

    Un dispositivo de bloques es en el que los datos se transmiten en conjuntos indivisibles en la comunicación con la unidad central de proceso, como un disco duro.

    Características
    Algunas características son: 
    • La información se almacena en bloques de tamaño fijo. 
    • Cada bloque tiene su propia dirección. 
    • Los tamaños van desde los 128 bytes hasta los 1,024 bytes. 
    • Se puede leer o escribir en un bloque de forma independiente.
    • Un ejemplo típico de dispositivos de bloque son los discos. 


    Dispositivos de Caracteres
    Un dispositivo de caracteres es el que se comunica con la unidad central de proceso por medio de bytes individuales, como las impresoras y teclados, que permiten el manejo de un solo byte a la vez.

    Características
    Algunas características son: 
    • La información se transfiere como un flujo de caracteres.
    • No se pueden utilizar direcciones. 
    • No tienen una operación de búsqueda.



    ¿Qué es la Administración de Dispositivos de Entrada/Salida?

    La administración de dispositivos, es la administración de todos los recursos del hardware disponible. Todo dispositivo necesita presentarse al sistema operativo, agregando un pequeño programa que permite su uso, llamado controlador.

    Nota: Esta es una de las funciones principales de un S.O. 

    Funciones de la administración
    •  Enviar comandos a los dispositivos. 
    •  Detectar las interrupciones. 
    •  Controlar los errores. 
    •  Proporcionar una interfaz entre los dispositivos y el resto del sistema: 
    Nota: El código de e/s representa una fracción significativa del S.O




    ¿Qué es el Sistema de Entrada y Salida?


    La computadora se compone de tres elementos básicos: 
    1. El procesador
    2. El sistema de memoria
    3. El sistema de entrada/salida. 
    El sistema de entrada/salida es la parte que interactúa con el medio externo. Lo hace a través de una variedad de dispositivos cuyo objetivo básico es la transmisión de datos. El cometido de un dispositivo de entrada salida es el de traducción de un lenguaje externo y variado a un código más próximo a la computadora y a la inversa.