Datos personales

INTEGRANTES DEL EQIPO

Cruz Angulo Juan Carlos.
Diaz Astorga Jessica.
Godinez Hernandez Diana Karen.
Mercado Pichardo Cristina,

lunes, 23 de enero de 2012

UNIDAD 5: ADMINISTRACIÓN DE DISPOSITIVOS E/S

5.1 PRINCIPIOS DE HARDWARE DE I/O

La programación de muchos dispositivos de e/s a menudo esta íntimamente ligada con sus funcionamiento interno. En las tres sesiones que siguen presentaremos antecedentes del hardware de e/s y pueden tener relación con su programa.

5.1.1 DISPOSITIVOS DE I/O 
Se refiere a ejecutar una operación de entrada o de salida. Los dispositivos de E/S (entrada/salida) o en ingles I/O(input/output) los usa una persona u otro sistema para comunicarse con una computadora. 
  • Dispositivos de Entrada:
Son aquellos que sirven para introducir datos a la computadora para su proceso. Los datos se leen de los dispositivos de entrada y se almacenan en la memoria central o interna. Los dispositivos de entrada convierten la información en señales eléctricas que se almacenan en la memoria central.
Los dispositivos de entrada típicos son los teclados, otros son: lápices ópticos, palancas de mando (joystick), CD-ROM, discos compactos (CD), etc. Hoy en día es muy frecuente que el usuario utilice un dispositivo de entrada llamado ratón que mueve un puntero electrónico sobre una pantalla que facilita la interacción usuario-máquina.

  • Dispositivos de Salida
Son los que permiten representar los resultados (salida) del proceso de datos. El dispositivo de salida típico es la pantalla o monitor. Otros dispositivos de salida son: impresoras (imprimen resultados en papel), trazadores gráficos (plotters), bocinas, entre otros.

5.1.2 CONTROLADORES DE DISPOSITIVOS

Un controlador de dispositivo (llamado normalmente controlador, o, en inglés, driver) es un programa informático que permite al sistema operativo interactuar con un periférico, haciendo una abstracción del hardware y proporcionando una interfaz -posiblemente estandarizada- para usarlo. Se puede esquematizar como un manual de instrucciones que le indica cómo debe controlar y comunicarse con un dispositivo en particular. Por tanto, es una pieza esencial, sin la cual no se podría usar el hardware.

5.2 PRINCIPIOS DE SOFTWARE DE I/O 

Los principios de software en la entrada/salida se resumen en cuatro puntos: el software debe ofrecer manejadores de interrupciones, manejadores de dispositivos, software que sea independiente de los dispositivos y software para usuarios.
  • Manejadores de Interrupciones.
El primer objetivo referente a los manejadores de interrupciones consiste en que el programador o el usuario no debe darse cuenta de los manejos de bajo nivel para los casos en que el dispositivo está ocupado y se debe suspender el proceso o sincronizar algunas tareas. Desde el punto de vista del proceso o usuario, el sistema simplemente se tardó más o menos en responder a su petición.
  • Manejadores de Dispositivos.
El sistema debe proveer los manejadores de dispositivos necesarios para los periféricos, así como ocultar las peculiaridades del manejo interno de cada uno de ellos, tales como el formato de la información, los medios mecánicos, los niveles de voltaje y otros. Por ejemplo, si el sistema tiene varios tipos diferentes de discos duros, para el usuario o programador las diferencias técnicas entre ellos no le deben importar, y los manejadores le deben ofrecer el mismo conjunto de rutinas para leer y escribir datos. 
  • Software que sea independiente de los dispositivos.
Este es un nivel superior de independencia que el ofrecido por los manejadores de dispositivos. Aquí el sistema operativo debe ser capaz, en lo más posible, de ofrecer un conjunto de utilerías para accesar periféricos o programarlos de una manera consistente. Por ejemplo, que para todos los dispositivos orientados a bloques se tenga una llamada para decidir si se desea usar 'buffers' o no, o para posicionarse en ellos. 
  • Software para Usuarios.
La mayoría de las rutinas de entrada - salida trabajan en modo privilegiado, o son llamadas al sistema que se ligan a los programas del usuario formando parte de sus aplicaciones y que no le dejan ninguna flexibilidad al usuario en cuanto a la apariencia de los datos. Existen otras librerías en donde el usuario si tiene poder de decisión (por ejemplo la llamada a "printf" en el lenguaje"C"). Otra facilidad ofrecida son las áreas de trabajos encolados (spooling areas), tales como las de impresión y correo electrónico.

5.2.1 OBJETIVOS DEL SOFTWARE DE I/O 

Un concepto clave es la independencia del dispositivo: 
  • Debe ser posible escribir programas que se puedan utilizar con archivos en distintos dispositivos, sin tener que modificar los programas para cada tipo de dispositivo. 
  • El problema debe ser resuelto por el S. O. 
El objetivo de lograr nombres uniformes está muy relacionado con el de independencia del dispositivo. 
Todos los archivos y dispositivos adquieren direcciones de la misma forma, es decir mediante el nombre de su ruta de acceso. 
Otro aspecto importante del software es el manejo de errores de e/s: 
  • Generalmente los errores deben manejarse lo más cerca posible del hardware. 
  • Solo si los niveles inferiores no pueden resolver el problema, se informa a los niveles superiores. 
  • Generalmente la recuperación se puede hacer en un nivel inferior y de forma transparente. 
Otro aspecto clave son las transferencias por bloques o controlada por interruptores:
  • La mayoría de la e/s es asíncrona: la CPU inicia la transferencia y realiza otras tareas hasta una interrupción. 
  • La programación es más fácil si la e/s es síncrona (por bloques): el programa se suspende automáticamente hasta que los datos estén disponibles en el buffer. 
El S. O. se encarga de hacer que operaciones controladas por interruptores parezcan del tipo de bloques para el usuario. 
También el S. O. debe administrar los dispositivos compartidos (ej.: discos) y los de uso exclusivo (ej.: impresoras). 
Generalmente el software de e/s se estructura en capas:
  • Manejadores de interrupciones. 
  • Directivas de dispositivos. 
  • Software de S. O. independiente de los dispositivos. 
  • Software a nivel usuario. 
Los objetivos más importantes del software de E/S son:
  • Ocultar la complejidad del hardware a los procesos que se ejecutan por encima del sistema operativo.
  • Presentar una interfaz de E/S sencilla.
Para conseguir estos objetivos se estructura el software de E/S en capas, de forma que las capas inferiores ocultan la complejidad del hardware a las capas superiores y éstos se encargan de conseguir una interfaz sencilla.


5.2.2 MANEJADORES DE INTERRUPCIONES 

Un manejador de interrupciones, también conocido como ISR (interrupt service routine o rutina de servicio de interrupción), es una subrutina callback en un sistema operativo o en un controlador de dispositivo cuya ejecución es desencadenada por la recepción de una interrupción. Los manejadores de instrucciones tienen una multitud de funciones, que varían basadas en el motivo por el cual la interrupción fue generada y la velocidad en la cual el manejador de interrupciones completa su tarea.Estos manejadores pueden ser iniciados por interrupciones de hardware o de software, y son usados para servir a los dispositivos de hardware y transiciones entre modos protegidos de operación como los llamados de sistema

INTERRUPCIONES
  • El periférico lleva la iniciativa.
  • Una interrupción de E/S es asíncrona con respecto a la ejecución de las instrucciones.
  • No esta asociada a ninguna instrucción.
  • El periférico estará conectado a una línea de interrupciones del procesador.
  • Se necesita especificar el identificador del periférico que realizara la interrupción.
  • Es habitual que haya interrupciones más urgentes que otras, por lo que se requiere algún sistema de prioridades.
  • Se requiere hardware especial (causar y detectar interrupción).
PROCESO DE INTERRUPCIÓN
  • Activación, por parte del periférico, de la línea de interrupción.
  • Suspensión de la ejecución del programa en curso:
  • Termina la instrucción en curso.
  • Almacenamiento del estado del procesador.
  • Identificación de la fuente de la interrupción.
  • Carga y ejecución de la rutina de interrupción.
  • Recuperación del estado anterior a la interrupción.
  • Reanulación de la ejecución del programa interrumpido.
5.2.3 MANEJADOR DE DISPOSITIVOS 

Todo el código que depende de los dispositivos aparece en los manejadores de dispositivos.
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 está 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, por lo cual el manejador de disco debe:
  • Estimar el lugar donde se encuentra en realidad el bloque solicitado.
  • Verificar si el motor de la unidad funciona.
  • Verificar si el brazo está colocado en el cilindro adecuado, etc.
  • Resumiendo: debe decidir cuáles son las operaciones necesarias del controlador y su orden.
  • Envía los comandos al controlador al escribir en los registros de dispositivo del mismo.
  • Frecuentemente el manejador del dispositivo se bloquea hasta que el controlador realiza cierto trabajo; una interrupción lo libera de este bloqueo.
  • Al finalizar la operación debe verificar los errores.
  • Regresa información de estado sobre los errores a quien lo llamó.
  • Inicia otra solicitud pendiente o queda en espera.
5.2.4 SOFTWARE DE I/O INDEPENDIENTE DE DISPOSITIVOS 

Aunque una parte del software de E/S es específica para los dispositivos concretos existentes en el sistema, otras partes son independientes del dispositivo. 
La frontera exacta entre los drivers y el software independiente del dispositivo depende del sistema (y del dispositivo), porque algunas funciones que podrían realizarse con independencia del dispositivo en realidad se llevan a cabo en los drivers por cuestiones de eficiencia u otras razones.

5.2.5 ESPACIO DEL USUARIO PARA SOFTWARE DE IO 

A aunque la mayor parte del software de e/s esta dentro del S.O, una pequeña parte de el consiste en bibliotecas enlazadas a los programas de usuario, e incluso a los completos que se ejecutan fuera del kernel. Las llamadas as sistema, entre ellas las e/s , normalmente son efectuadas por procedimientos de bibliotecas. Cuando un programa en contiene la llamada 
Count=write (fd,buffer,nbytes)
El procedimiento de biblioteca write se enlazara a programa y estará contenido en el programa binario presente en la memoria en el momento de la ejecución. La colección de todos estaos procedimientos de biblioteca evidentemente forma parte del sistema de e/s.

5.3 DISCOS RAM 

Un disco RAM o unidad RAM es una unidad de disco que usa una zona de memoria RAM del sistema como almacenamiento secundario en lugar de un medio magnético (como los discos duros y las disqueteras) o memoria flash, implementada como un controlador de dispositivo más. El tiempo de acceso mejora drásticamente, debido a que la memoria RAM es varios órdenes de magnitud más rápida que las unidades de disco reales. Sin embargo, la volatilidad de la memoria RAM implica que los datos almacenados en un disco RAM se perderán si falla la alimentación (por ejemplo, cuando el ordenador se apaga). Los discos RAM suelen usarse para almacenar datos temporales o para guardar programas descomprimidos durante cortos periodos. 
Los discos RAM fueron populares como unidades de arranque en los años 1980, cuando los discos duros eran caros y las disqueteras demasiado lentas, por lo que unos pocos sistemas, soportaban arrancar desde un disco RAM. A cambio de dedicar un poco de memoria principal, el sistema podía realizar un reinicio en caliente y volver al sistema operativo en pocos segundos en lugar de minutos. Algunos sistemas contaban con discos RAM alimentados por baterías, de forma que sus contenidos no se perdían cuando el sistema se apagaban. 
La adecuada implementación de un caché de disco suele obviar las motivaciones relacionadas con el rendimiento que impulsan a usar un disco RAM, adoptando un papel parecido (acceso rápido a los datos que en realidad residen en un disco) sin sus varias desventajas (pérdida de datos en caso de apagado, particionado estático, etcétera). Los discos RAM son, sin embargo, indispensables en situaciones en las que un disco físico no está disponible o en las que el acceso o cambios a éste no es deseable. También pueden usarse en dispositivos de tipo quiosco, en los que los cambios hechos al sistema no se guardan en el disco físico y la configuración original del sistema se carga de éste cada vez que el sistema es reiniciado. 
Otra forma de usar memoria RAM para almacenar ficheros es el sistema de ficheros temporal. La diferencia entre éste y un disco RAM es que el segundo es de tamaño fijo y funciona como una partición más, mientras el sistema de ficheros temporal cambia su tamaño bajo demanda para ajustarse al espacio necesario para albergar los ficheros guardados en él.

5.4 DISCOS DUROS 

El disco duro es un dispositivo de almacenamiento no volátil, es decir conserva la información que le ha sido almacenada de forma correcta aun con la perdida de energía, emplea un sistema de grabación magnética digital, es donde en la mayoría de los casos se encuentra almacenado el sistema operativo de la computadora. En este tipo de disco se encuentra dentro de la carcasa una serie de platos metálicos apilados girando a gran velocidad. Sobre estos platos se sitúan los cabezales encargados de leer o escribir los impulsos magnéticos. Hay distintos estándares a la hora de comunicar un disco duro con la computadora. Existen distintos tipos de interfaces las más comunes son: Integrated Drive Electronics (IDE, también llamado ATA) , SCSI generalmente usado en servidores, SATA, este último estandarizado en el año 2004 y FC exclusivo para servidores.

5.4.1 HARDWARE DE DISCOS 

Un disco duro se compone de muchos elementos; citaremos los más importantes de cara a entender su funcionamiento. En primer lugar, la información se almacena en unos finos platos o discos, generalmente de aluminio, recubiertos por un material sensible a alteraciones magnéticas. Estos discos, cuyo número varía según la capacidad de la unidad, se encuentran agrupados uno sobre otro y atravesados por un eje, y giran continuamente a gran velocidad.
Asimismo, cada disco posee dos diminutos cabezales de lectura/escritura, uno en cada cara. Estos cabezales se encuentran flotando sobre la superficie del disco sin llegar a tocarlo, a una distancia de unas 3 o 4 micropulgadas (a título de curiosidad, podemos comentar que el diámetro de un cabello humano es de unas 4.000 micropulgadas). Estos cabezales generan señales eléctricas que alteran los campos magnéticos del disco, dando forma a la información. (Dependiendo de la dirección hacia donde estén orientadas las partículas, valdrán 0 o valdrán 1).
La distancia entre el cabezal y el plato del disco también determinan la densidad de almacenamiento del mismo, ya que cuanto más cerca estén el uno del otro, más pequeño es el punto magnético y más información podrá albergar. 

5.5 RELOJES 

Una computadora personal tiene un reloj de hardware alimentado por una batería. Esa batería asegura que el reloj continúe trabajando aún cuando la computadora se encuentre sin suministro eléctrico. El reloj de hardware puede ser modificado (o definido) desde la pantalla de configuración de la BIOS o desde cualquier sistema operativo.

5.5.1 HARDWARE DEL RELOJ

El reloj del kernel siempre muestra la hora universal, por lo que no necesita conocer como utilizar usos horarios. La simplicidad de este modo de trabajar proporciona alta confiabilidad y facilita actualizar la información de la zona horaria. Cada proceso realiza las conversiones de zona horaria de manera independiente (utilizando herramientas estándar que son parte del paquete de zona horaria). 
El reloj de hardware puede estar en formato de hora local u hora universal. Usualmente es mejor que el reloj de hardware mantenga la hora universal, porque de esta manera no será necesario modificar la hora del reloj cuando el "horario de verano" (daylight savings time) empiece o finalice (UTC no tiene DST). Desafortunadamente, algunos sistemas operativos de PC (incluyendo a MS-DOS, Windows y OS/2) asumen que el reloj de hardware muestra la hora local. Linux puede manejar cualquiera de los dos formatos, pero si el reloj de hardware muestra la hora local, entonces debe modificarlo cada vez que el "horario de verano" empiece o finalice.

5.5.2 SOFTWARE RELOJ 

El kernel Linux mantiene la fecha y hora de manera independiente al reloj de hardware. Durante el inicio de un sistema Linux, el kernel configura su propio reloj de software accediendo a la fecha y hora mantenida por el reloj de hardware. Luego, ambos relojes trabajan independientemente. Linux mantiene su propio reloj debido a que leer el reloj de hardware constantemente es lento y complicado.

5.5.3 MANEJADOR DEL RELOJ 

Las principales funciones del software manejador del reloj son: 
  • Mantener la hora del día o tiempo real 
  • Evitar que los procesos se ejecuten durante mas tiempo del permitido 
  • Mantener un registro del uso de la CPU 
  • Controlar llamadas al sistema tipo “alarm” por parte de los procesos del usuario 
  • Proporcionar cronómetros guardianes de partes del propio sistema 
  • Realizar resúmenes, monitoreo y recolección de estadísticas 
El software manejador del reloj puede tener que simular varios relojes virtuales con un único reloj físico.

5.6 TERMINALES 

Dispositivo del hardware electrónico o electromecánico que se usa para introducir o mostrar datos de una computadora. Su función es mostrar y recibir datos con capacidad significativa del procesador de datos, puede ser llamado “Terminal inteligente o cliente ligero”. 
Una computadora puede ejecutar software que envié la funcion de un terminal en cocaciones permitiendo el uso simultaneo de programas locales y acceso a un servidor. 

5.6.1 HARDWARE DE TERMINALES 

  • Un terminal IP suele ser un dispositivo hardware con forma de teléfono, aunque con la diferencia de que utiliza una conexión de red de datos, en lugar de una conexión de red telefónica. 
  • Suelen tener más opciones y ventajas que un teléfono convencional. Al ser un sistema completamente digital y programable, suelen tener teclas especiales perfectamente configurables mediante un sistema de administración que puede ser accedido mediante web o mediante telnet.
  • Algunos incluyen cámara de vídeo para poder realizar videoconferencias. 
  • Disponen de una dirección IP a la que poder acceder y mediante la que se puede configurar como si fuese un ordenador más. Por lo que, al considerarse un sistema más dentro de la red, suelen aplicárselas las características típicas de grandes redes: QoS o VLAN.
  • Hardware o Software 
  • Un terminal IP suele ser un dispositivo físico (similar al un teléfono normal), aunque también puede ser una aplicación que funciona en un sistema y que interactúa junto con micrófonos y auriculares/altavoz. 
  • Los terminales IP hardware evitan el choque de realizar una llamada de teléfono a través de otro dispositivo distinto a un teléfono normal. 
  • Los terminales IP software permiten reducir costes, a la vez que cuenta con la ventaja espacial de no tener un aparato más en la mesa.
5.6.2 MANEJADORES

Manejadores de interrupciones.
El primer objetivo referente a los manejadores de interrupciones consiste en que el programador o el usuario no debe darse cuenta de los manejos de bajo nivel para los casos en que el dispositivo está ocupado y se debe suspender el proceso o sincronizar algunas tareas. Desde el punto de vista del proceso o usuario, el sistema simplemente se tardó más o menos en responder a su petición.

Manejadores de dispositivos.
El sistema debe proveer los manejadores de dispositivos necesarios para los periféricos, así como ocultar las peculiaridades del manejo interno de cada uno de ellos, tales como el formato de la información, los medios mecánicos, los niveles de voltaje y otros. Por ejemplo, si el sistema tiene varios tipos diferentes de discos duros, para el usuario o programador las diferencias técnicas entre ellos no le deben importar, y los manejadores le deben ofrecer el mismo conjunto de rutinas para leer y escribir datos.

No hay comentarios:

Publicar un comentario