viernes, 11 de diciembre de 2009

5.4.2 SOFTWARE PARA DISCOS

En la mayoría de los discos, el tiempo de búsqueda supera al de retraso rotacional y al de transferencia, debido a ello, la reducción del tiempo promedio de búsqueda puede mejorar en gran medida el rendimiento del sistema.
Si el manejador del disco utiliza el algoritmo primero en llegar primero en ser atendido (FCFS), poco se puede hacer para mejorar el tiempo de búsqueda.
Es posible que mientras el brazo realiza una búsqueda para una solicitud, otros procesos generen otras solicitudes.

Muchos manejadores tienen una tabla:

•El índice es el número de cilindro.
•Incluye las solicitudes pendientes para cada cilindro enlazadas entre sí en una lista ligada.
•Cuando concluye una búsqueda, el manejador del disco tiene la opción de elegir la

siguiente solicitud a dar paso:

oSe atiende primero la solicitud más cercana, para minimizar el tiempo de búsqueda.
oEste algoritmo se denomina primero la búsqueda más corta (SSF: shor-test seek first).
oReduce a la mitad el número de movimientos del brazo en comparación con FCFS.

Ej. De SSF:

•Consideramos un disco de 40 cilindros.
•Se presenta una solicitud de lectura de un bloque en el cilindro 11.
•Durante la búsqueda, llegan solicitudes para los cilindros 1, 36, 16, 34, 9 y 12, en ese orden.
•La secuencia de búsqueda SSF será: 12, 9, 16, 1, 34, 36.
•Habrá un número de movimientos del brazo para un total de:
o111 cilindros según FCFS.
o61 cilindros según SSF.

El algoritmo SSF tiene el siguiente problema:

•El ingreso de nuevas solicitudes puede demorar la atención de las más antiguas.
•Con un disco muy cargado, el brazo tenderá a permanecer a la mitad del disco la mayoría del tiempo, como consecuencia de ello las solicitudes lejanas a la mitad del disco tendrán un mal servicio.
•Entran en conflicto los objetivos de:
oTiempo mínimo de respuesta.
oJusticia en la atención.
La solución a este problema la brinda el algoritmo del elevador (por su analogía con el ascensor o elevador):
•Se mantiene el movimiento del brazo en la misma dirección, hasta que no tiene más solicitudes pendientes en esa dirección; entonces cambia de dirección.
•El software debe conservar el bit de dirección actual.

Ej. Del algoritmo del elevador para el caso anterior, con el valor inicial arriba del bit de dirección:

•El orden de servicio a los cilindros es: 12, 16, 34, 36, 9 y 1.
•El número de movimientos del brazo corresponde a 60 cilindros.

El algoritmo del elevador:

•Ocasionalmente es mejor que el algoritmo SSF.
•Generalmente es peor que SSF.
•Dada cualquier colección de solicitudes, la cuota máxima del total de movimientos está fija, siendo el doble del número de cilindros.
Una variante consiste en rastrear siempre en la misma dirección:

•Luego de servir al cilindro con el número mayor:

oEl brazo pasa al cilindro de número menor con una solicitud pendiente.
oContinúa su movimiento hacia arriba.
Algunos controladores de disco permiten que el software inspeccione el número del

sector activo debajo del cabezal:

•Si dos o más solicitudes para el mismo cilindro están pendientes:
oEl manejador puede enviar una solicitud para el sector que pasará debajo del cabezal.
oSe pueden hacer solicitudes consecutivas de distintas pistas de un mismo cilindro,
sin generar un movimiento del brazo.

Cuando existen varias unidades, se debe tener una tabla de solicitudes pendientes para cada unidad.

Si una unidad está inactiva, deberá buscarse el cilindro siguiente necesario, si el controlador permite búsquedas traslapadas.
Cuando termina la transferencia actual se verifica si las unidades están en la
posición del cilindro correcto:

•Si una o más unidades lo están, se puede iniciar la siguiente transferencia en una unidad ya posicionada.
•Si ninguno de los brazos está posicionado, el manejador:
oDebe realizar una nueva búsqueda en la unidad que terminó la transferencia.
oDebe esperar hasta la siguiente interrupción para ver cuál brazo se posiciona primero.

Generalmente, las mejoras tecnológicas de los discos:

•Acortan los tiempos de búsqueda (seek).
•No acortan los tiempos de demora rotacional (search).
•En algunos discos, el tiempo promedio de búsqueda ya es menor que el retraso rotacional.
•El factor dominante será el retraso rotacional, por lo tanto, los algoritmos que optimizan los tiempos de búsqueda (como el algoritmo del elevador) perderán importancia frente a los algoritmos que optimicen el retraso rotacional.
Una tecnología importante es la que permite el trabajo conjunto de varios discos.
Una configuración interesante es la de treinta y ocho (38) unidades ejecutándose en paralelo.

Cuando se realiza una operación de lectura:

•Ingresan a la CPU 38 bit a la vez, uno por cada unidad.
•Los 38 bits conforman una palabra de 32 bits junto con 6 bits para verificación.
•Los bits 1, 2, 4, 8, 16 y 32 se utilizan como bits de paridad.
•La palabra de 38 bits se puede codificar mediante el código Hamming, que es un código corrector de errores.

•Si una unidad sale de servicio:
oSe pierde un bit de cada palabra.
oEl sistema puede continuar trabajando; se debe a que los códigos Hamming se pueden recuperar de un bit perdido.

5.5 RELOJES

Los relojes o cronómetros son esenciales para la operación de sistemas de tiempo compartido.

Registran la hora del día.

Evitan que un proceso monopolice la cpu.
5.5.2 SOFTWARE RELOJ

El software para reloj toma generalmente la forma de un manejador de dispositivo, aunque no es un dispositivo de bloque ni de carácter.
Los relojes más sencillos trabajan con la línea de corriente eléctrica de 110 o 220 voltios y provocan una interrupción por cada ciclo de voltaje, a 50 o 60 hz.
Otro tipo de relojes consta de tres componentes:

•Un oscilador de cristal, un contador y un registro.
•Una pieza de cristal de cuarzo se monta en una estructura bajo tensión:
oGenera una señal periódica de muy alta precisión, generalmente entre 5 y 100 mhz.
oLa señal se alimenta en el contador para que cuente en forma descendente hasta cero.
oCuando el contador llega a cero, provoca una interrupción de la CPU.
Los relojes programables tienen varios modos de operación:

•Modo de una instancia:

oCuando el reloj se inicializa, copia el valor del registro en el contador.
oDecrementa el contador en cada pulso del cristal.
oCuando el contador llega a cero provoca una interrupción y se detiene hasta ser nuevamente inicializado por el software.

•Modo de onda cuadrada:
oLuego de llegar a cero y provocar la interrupción, el registro se copia de manera automática en el contador.
oTodo el programa se repite en forma indefinida.
oLas interrupciones periódicas se llaman marcas del reloj.

La ventaja del reloj programable es que su frecuencia de interrupción puede ser controlada por el software.

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 más 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

Las terminales tienen gran número de formas distintas:

•El manejador de la terminal debe ocultar estas diferencias.
•La parte independiente del dispositivo en el S. O. y los programas del usuario no se tienen que reescribir para cada tipo de terminal.
Desde el punto de vista del S. O. se las puede clasificar en:
•Interfaz RS-232:
oHardcopy (terminales de impresión).
oTTY “de vidrio” (terminales de video).
oInteligente (computadoras con CPU y memoria).
•Interfaz mapeada a memoria:
oOrientada a caracteres.
oOrientada a bits.

Las terminales RS-232 poseen un teclado y un monitor que se comunican mediante una interfaz serial, un bit a la vez; las conversiones de bits a bytes y viceversa las efectúan los chips uart (transmisores - receptores asíncronos universales).

Las terminales mapeadas a memoria:

•No se comunican mediante una línea serial.
•Poseen una interfaz mediante una memoria especial llamada video RAM:
oForma parte del espacio de direcciones de la computadora.
oLa CPU se dirige a ella como al resto de la memoria.
oEn la tarjeta de video RAM hay un chip llamado controlador de video:
Extrae bytes del video RAM y genera la señal de video utilizada para manejar la pantalla.
El monitor genera un rayo de electrones que recorre la pantalla pintando líneas.
Cada línea está constituida por un cierto número de puntos o pixeles.
La señal del controlador de video modula el rayo de electrones y determina si un pixel debe estar o no iluminado.
Los monitores de color poseen tres rayos (rojo, verde y azul) que se modulan independientemente.

En las pantallas mapeadas a caracteres:

•Cada caracter en la pantalla equivale a dos caracteres de RAM:
oUno aloja al código (ASCII) del caracter por exhibir.
oOtro es el byte de atributo, necesario para determinar el color, el video inverso, el parpadeo, etc.
En las terminales mapeadas a bits:
•Se utiliza el mismo principio.
•Cada bit en el video RAM controla en forma directa un solo pixel de la pantalla.
•Permite una completa flexibilidad en los tipos y tamaños de caracteres, varias ventanas y gráficos arbitrarios.
Con las pantallas mapeadas a memoria, el teclado se desacopla totalmente de la pantalla:
•El teclado dispone de su propio manejador.
•El manejador del teclado puede operar en modo caracter o en modo línea.

Las terminales pueden operar con una estructura central de buffers o con buffers exclusivos para cada terminal.

Frecuentemente los manejadores de terminales soportan operaciones tales como:

•Mover el cursor hacia arriba, abajo, a la izquierda o a la derecha una posición.
•Mover el cursor a x, y.
•Insertar un caracter o una línea en el cursor.
•Eliminar un caracter o una línea en el cursor.
•Recorrer la pantalla hacia arriba o hacia abajo “n” líneas.
•Limpiar la pantalla desde el cursor hacia el final de la línea o hasta el final de la pantalla.
•Trabajar en modo de video inverso, subrayado, parpadeo o normal.
•Crear, construir, mover o controlar las ventanas.

5.6.1 HARDWARE DE TERMINALES

Un terminal IP es un dispositivo que permite realizar una comunicación utilizando una red IP ya sea mediante red de área local o a través de Internet. Generalmente nos referimos a un terminal IP en temas de Telefonía IP ya que son los principales dispositivos utilizados para realizar una comunicación de paquetes de datos en los que se transporta voz o vídeo.

CARACTERISTICAS

•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árseles las características típicas de grandes redes: QoS o VLAN.

Ventajas frente a un sistema tradicional

•La ventaja principal estriba en que los terminales IP están preparados para utilizar una centralita digital de VoIP, lo cual abarata costes y permite una mayor versatilidad en cuando al manejo de las comunicaciones.
•La mayoría disponen de buzón de voz, desvíos de llamadas, configuración individual del dialplan y manejo de multitud de líneas individuales, para poder mantener varias conversaciones simultáneas.
•Suelen incorporar un sistema de música en espera y de transferencia de la llamada a otro terminal.
•Incluyen opciones para configurar las reglas de QoS o VLAN para mejorar la calidad del sonido y evitar cortes en una red con un alto Tráfico.
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.
ATA
•Los ATA son pequeños dispositivos que permiten conectar un teléfono analógico/RDSI a una red de VoIP.
•Disponen de un sistema de administración y gestión similar a los teléfonos IP por lo que disponen también de dirección IP, y las mismas ventajas que cualquier terminal IP.

Terminales Wireless

•Son similares a los teléfonos móviles (o celulares) y permiten utilizar redes inalámbricas para conectarse al servidor de VoIP o Gateway.
•Estos últimos aun no están muy desarrollados, pero pronto empezaremos a ver una gran expansión de los teléfonos móviles habituales con soporte Wi-Fi que permitirán utilizar la VoIP para realizar llamadas en lugar de las operadoras telefónicas tradicionales.
•Todos los periféricos conectados a la computadora que estamos usando para correr Linux son tratados como archivos especiales (device files) por el sistema operativo. Un periférico o dispositivo es una terminal, un disco duro, una impresora, un manejador de CD-ROM, o un modem. Todo lo que recibe o envía datos hacia el sistema operativo es un dispositivo.
•El concepto de tratar todo en el sistema como un dispositivo es uno de los beneficios de la arquitectura Unix. Cada dispositivo tiene un archivo especial llamado manejador de dispositivo (device file), el cual incluye todas las instrucciones necesarias para que Linux se comunique con el dispositivo. Cuando un nuevo dispositivo es desarrollado, puede ser usado por Linux escribiendo su manejador de dispositivo, el cual es usualmente un conjunto de instrucciones que explican como mandar y recibir datos.

5.6.2 MANEJADORES

Los manejadores de dispositivos permiten al kernel de Linux incluir solo el sistema operativo y el soporte de software. Teniendo las instrucciones para comunicarse hacia los dispositivos dentro de un conjunto de archivos. Estos pueden ser buscados cuando son necesitados (en el caso de que raramente sean usados) o almacenados en memoria todo el tiempo cuando el sistema operativo es reiniciado. Los refinamientos hechos hacia un periférico, pequeños cambios hacia el archivo manejador del dispositivo pueden tener informado al sistema operativo de nuevas características y capacidades.

• Cuando una aplicación envía datos a un dispositivo, el kernel de Linux no tiene que preocuparse por el mecanismo. El kernel solo pasa la petición al manejador del dispositivo y deja que éste maneje las comunicaciones. Similarmente, cuando estamos tecleando, el manejador de dispositivo de la terminal acepta la acción y la pasa al shell, filtrando cualquier código especial que el kernel no conozca, traduciéndolo a un formato que el kernel pueda operar.

•Por omisión y convención Linux guarda los manejadores de dispositivos en el directorio /dev. Pueden guardarse los manejadores de dispositivos en cualquier parte del sistema de archivos, pero guardándolos en /dev hace obvio que son los manejadores de dispositivos.

•Diferencia entre dispositivos modo bloque y modo caracter.

•Cada tipo de dispositivo en el sistema Linux se comunica con la aplicación en una de las formas siguientes: carácter por carácter o como un conjunto de datos en un bloque de tamaño predefinido. Las terminales, impresoras y módems asíncronos son dispositivos modo carácter. Cuando se usa el modo caracter se envía uno a la vez y hace eco en la otra terminal. Los manejadores (device drivers) de disco duro y la mayoría de manejadores, usan el modo bloque, porque este es el camino más rápido para enviar o recibir grandes cantidades de información.

•Los archivos de dispositivo (device files) son llamados dispositivos modo carácter o dispositivos modo bloque, basados en la forma de comunicación.

•Cabe mencionar que los dispositivos que operan a modo carácter son distintos de los de modo bloque, en el aspecto de como el dispositivo maneja su búfer. Los dispositivos modo carácter hacen su propio búfer. Los dispositivos modo bloque, usualmente se comunican en bloques de 512 o 1024 bytes y el kernel se ocupa del búfer.

•Algunos periféricos necesitan usar archivos de dispositivo a modo bloque y carácter al mismo tiempo. Los manejadores de dispositivo manejan el modo carácter y el modo bloque a través de dos diferentes archivos de dispositivo. El archivo de dispositivo que se usa depende de cómo la aplicación quiera escribir o leer datos hacia el periférico.

•El archivo de dispositivo tiene todos los detalles de si el periférico opera a modo carácter o modo bloque. Una manera fácil de saber que tipo de modo utiliza un periférico es obtener un listado largo del archivo de dispositivo. El listado se obtiene con el comando 'ls -l' que muestra los permisos, dueño, grupo, etc... del archivo. Si el primer carácter es una b, indica que el periférico opera en modo bloque y una c indica que el periférico opera en modo carácter.

•Los archivos de dispositivos son usualmente nombrados indicando el tipo de dispositivo que son. La mayoría de terminales, por ejemplo, tienen un archivo de dispositivo con el nombre tty seguido por dos o más letras o números, tal como tty1, tty1A, o tty04. Las letras tty identifican al archivo como una terminal (tty es por teletype), y los números o letras identifican una terminal específica a la que es referida. Cuando se encuentran en el directorio llamado /dev, el nombre completo del archivo de dispositivo se convierte en /dev/tty01. El manejador del mouse conectado a su computadora se accesa a través del manejador /dev/mouse.