5. Usos y tendencias de los sistemas operativos distribuidos.
Introducción.
Hoy en día, y gracias a la tecnología, "el termino centralizado" esta desapareciendo, con la llegada de la redes de ordenadores podemos compartir recursos sin preocuparnos de la ubicación geográfica de la otra persona, podemos manejar ordenadores como si estuviésemos trabajando físicamente en ellos, además de transmitir información o escribir cartas que llegan al receptor en lapsos de tiempo mínimos.
Un sistema distribuido, es un sistema en el cual se encuentran varias CPU, interconectadas entre si, trabajando de manera conjunta, fueron diseñados para que un buen numero de usuarios trabajen juntos. En esta clase de sistemas los dispositivos que se encuentran conectados a la red, se comunican y se coordinan a través del paso de mensajes. En los siguientes bloques de información hablaremos de las tendencias de los sistemas distribuidos.
ARQUITECTURA MULTIPROCESADOR.
El ordenador que cuenta con dos o más microprocesadores, que son un conjunto de circuitos electrónicos altamente integrados para el cálculo y control computacional es denominado multiprocesador. El microprocesador puede ejecutar simultáneamente varios hilos de un mismo proceso.
Los ordenadores multiprocesador presentan problemas de diseño, derivados del hecho de que 2 programas se ejecuten simultáneamente y potencialmente pueden interferirse entre si. Por ellos existen dos arquitecturas que resuelven dichos problemas
Arquitectura SMP (Uma)
Arquitectura DSM (Numa.)
Arquitectura SMP (Uma)
Los multiprocesadores simétricos (Symmetric Multiprocessor) son ordenadores con arquitectura de memoria compartida que presentan en la memoria principal un acceso simétrico desde cualquier procesador, es decir, el retardo en el acceso a cualquier posición de memoria es el mismo con independencia del procesador desde el que se realice la operación o tarea, dicha arquitectura es denominada como “Acceso Uniforma a Memoria” (UMA) y se lleva acabo con una memoria compartida pero centralizada. Estos multiprocesadores dominan el volumen como el capital invertido. Esta arquitectura a su vez se encuentra dividida en:
SMP con bus
SMP escalable .
Arquitectura DSM (Numa).
La memoria compartida distribuida o DSM es una abstracción que se propone como alternativa a la comunicación por mensajes. Los multiprocesadores de memoria compartida y distribuida (DSM o Distributed Shared Memory), son ordenadores MIMID, en los cuales la memoria esta distribuida entre los nodos. Tomando en cuenta que el espacio de direccionamiento es global, el acceso a memoria principal es asimétrico. Esta arquitectura de memoria que se genera en retardo de acceso dependiente tanto la posición de memoria como el procesador se denomina Acceso No Uniforme a Memoria (NUMA), hace su aparición cuando la memoria compartida esta distribuida entre los nodos. De esta manera, se mejora el retardo medio de acceso a memoria, ya que en cada ordenador los accesos a posiciones de su memoria local presentan un retardo sensiblemente inferior al caso en que es accedido a posiciones de memoria en otros ordenadores. Esta clase de ordenadores con arquitectura NUMA presentas escalabilidad. Propone un espacio de direcciones de memoria virtual que integre la memoria de todas las computadoras del sistema, y su uso mediante paginación. Las páginas quedan restringidas a estar necesariamente en un único ordenador. Cuando un programa intenta acceder a una posición virtual de memoria, se comprueba si esa página se encuentra de forma local. Si no se encuentra, se provoca un fallo de página, y el sistema operativo solicita la página al resto de computadoras. El sistema funciona de forma análoga al sistema de memoria virtual tradicional, pero en este caso los fallos de página se propagan al resto de ordenadores, hasta que la petición llega al ordenador que tiene la página virtual solicitada en su memoria local. A primera vista este sistema parece más eficiente que el acceso a la memoria virtual en disco, pero en la realidad ha mostrado ser un sistema demasiado lento en ciertas aplicaciones, ya que provoca un tráfico de páginas excesivo. De la misma manera que la arquitectura SMA se divide en:
ccNUMA
docNUMA
COMA
SVM
SISTEMAS DISTRIBUIDOS QUE INTEGRAN ARQUITECTURAS MULTIPROCESADOR
Sistema realmente distribuido.- El objetivo es crear la ilusión en la mente de los usuarios de que toda la red es un solo sistema de tiempo compartido.
Características:
Debe existir un Mecanismo de comunicación global entre los procesos (cualquiera puede hablar con cualquiera).
No tiene que haber distintos mecanismos en distintas máquinas o distintos mecanismos para la comunicación local o la comunicación remota.
Debe existir un esquema global de protección
La administración de procesos debe ser la misma en todas partes (crear, destruir, iniciar, detener)
Debe existir un sistema global de archivos y debe tener la misma apariencia en todas partes.
El rasgo clave es que existe una sola cola para una lista en el sistema, de los procesos que no se encuentran bloqueados y que están listos para su ejecución. Dicha cola de ejecución de procesos se encuentra almacenada en la memoria compartida.
Cuando los procesos que se encuentran en la cola listos para su ejecución son asignados a los procesadores de la siguiente manera:
1.- Encuentra que el cache del procesador esta ocupad, por palabras de memoria compartida que contiene al programa del proceso anterior.
2.- Después de un pequeño intervalo de tiempo, se remplazara por el código y los datos del programa del proceso que le ha sido asignado a dicho procesador.
APLICACIONES DE MULTIMEDIA EN SISTEMAS DISTRIBUIDOS
Aplicaciones Multimedia.- Son las últimas incorporaciones a los sistemas distribuidos. Estas aplicaciones imponen ciertas necesidades de hardware para poder tener una velocidad y regularidad de transferencia de una gran cantidad de datos.
Las aplicaciones multimedia generan y consumen caudales de datos continuos en tiempo real. Éstos contienen grandes cantidades de audio, vídeo y otros elementos de datos dependientes del tiempo, y resulta esencial el procesamiento y la entrega a tiempo de los elementos individuales de datos. En un sistema distribuido abierto, las aplicaciones multimedia pueden ser iniciales y utilizadas sin anuncio previo. Pueden coexistir varias aplicaciones en la misma red e incluso en la misma estación de trabajo.
Por lo tanto, la necesidad de la gestión de la QoS (calidad de servicio, Quality of Service)surge independientemente de la cantidad total de ancho de banda de los recursos o de capacidad de memoria de un sistema. Se necesita gestionar la QoS para gestionar para garantizar que las aplicaciones serán capaces de obtener la cantidad de recursos necesarios en los momentos requeridos, incluso cuando otras aplicaciones estén compitiendo por esos recursos.
Multimedia basado en web: estas aplicaciones proporcionan acceso según el mejor esfuerzo a caudales de audio y vídeo publicados en la web. Han tenido éxito cuando existe poca o ninguna sincronización de los caudales de datos entre diferentes localizaciones. Sus prestaciones están restringidas por el limitado ancho de banda y por las latencias variables que se dan en las redes actuales y por la imposibilidad de los S.O. actuales para soportar una planificación de tiempo real de los recursos. En el caso de audio y de las secuencias de audio y vídeo de baja calidad, la utilización extensiva de almacenamiento en el destino para suavizar las variaciones en el ancho de banda y en la latencia hace que se puedan reproducir secuencia de vídeo de forma continua y sin sobresaltos, aunque exista un retardo desde el origen al destino hasta varios segundos.
Telefonía de red y conferencias de audio: esta aplicación tiene unos requisitos de ancho de banda relativamente bajos, especialmente cuando se aplican técnicas de compresión eficiente. Aunque la naturaleza interactivo de la misma implica tiempos de ida y vuelta pequeños, algo que no siempre se puede conseguir.
Servicio de vídeo bajo demanda: éstos proporcionan vídeo en formato digital desde grandes sistemas de almacenamiento hasta la herramienta de visualización del usuario. Resultan satisfactorios cuando existe suficiente ancho de banda dedicado, y tanto el servidor como el cliente son computadores dedicados. También emplean una cantidad considerable de almacenamiento en el destino.
Además de videoconferencia, televigilancia, juegos multiusuarios y enseñanza asistida por ordenador.
5.1 Administración Sistemas Distribuidos.
La administración de sistemas distribuidos incluye las actividades como: manejo de la versión y distribución del software, monitoreo de la utilización de los recursos y el mantenimiento del sistema de seguridad, entre otros.
5.1.1 Instalación del Sistema Operativo Distribuido.
En este apartado se muestra la instalación de dos sistemas operativos distribuidos los cuales son LINUX y AMOEBA, esto con el fin de mostrar dos ejemplos prácticos de estos temas dentro de la unidad 5.
En este caso se instalara el sistema operativo distribuido Linux.
Preparación
Primero vamos a probar el sistema antes de instalarlo. Para ello, debemos tener un CD de Ubuntu.
Podemos hacerlo de varias maneras:
1. Descargarlo desde la página web oficial.
2. Pedirlo a través de shipit (tarda de 4 a 6 semanas en llegar)
3. Obtener una copia a través de un conocido.
Independientemente del método que usé, el disco que obtendrá será el mismo.
Una vez que tengas el CD, debe configurar la BIOS para que nos lea el CD antes de arrancar el disco duro. Puedes comprobar si lo tienes correctamente configurado introduciendo el CD de Ubuntu y reiniciando el sistema. Si carga el CD lo tienes bien, si no lo carga, debes hacer lo siguiente.
Nada más encender el ordenador, aparece una pantalla negra con letras. Debe ser algo parecido a esto:
¿Veis que dice “Press DEL to enter SETUP”? Eso significa que pulsando la tecla Suprimir entraremos a la configuración. Advierto que la tecla varía de unas BIOS a otras. Aquí es Suprimir pero podría ser F2 o F12. Todo es fijarse y pulsarla. Una vez hecho esto, aparecerá una pantalla típicamente azul. Dentro de ella, debemos buscar algo así como Boot Order, y poner al lector de CD el primero y al disco duro en segundo lugar. Si lo hemos hecho bien, deberá quedarse como en la imagen de abajo.
Una vez ajustado este parámetro, buscamos la tecla para salir de la BIOS guardando los cambios (“Save and Exit setup” suele ser la frase asociada a tal tecla). Una vez guardemos los cambios el sistema se reiniciará y debería cargar el CD del lector. Si sigues teniendo problemas contacta con nosotros o pide ayuda en un foro especializado.
Una vez consiga cargar el CD, veremos el siguiente menú:
Debemos seleccionar la opción “Probar Ubuntu sin alterar el equipo”, puesto que es lo que queremos. Tardará unos 5 minutos en arrancar. Una vez arranque, tendremos listo el sistema para un primer uso.
El primer contacto
Al iniciar, tendremos una pantalla parecida a esta. Vemos 3 menús (Aplicaciones, Lugares y Sistema). Desde Aplicaciones podremos acceder a los programas instalados en el sistema. En Lugares podremos encontrar accesos a los directorios relevantes del sistema. Por último, en el menú sistema podremos configurar aspectos de nuestro sistema (salvapantallas, temas, pantalla de entrada, bluetooth,...)
Dado que estamos iniciando desde el CD, podemos tocar todo lo que queramos sin que esto repercuta en nuestro sistema. Así que lo mejor es comprobar que todo el hardware o casi todo funiona. Por lo demás, simplemente podemos ver las aplicaciones que vienen con el sistema y familiarizarnos un poco con él.
Si queremos instalar hacemos doble clic en el icono que hay en el escritorio. Si no queremos instalarlo, pulsamos en el botón que hay en la parte superior derecha, donde dice “Live Session User”, desde ahí podremos apagar el sistema.
Instalando el sistema
Para instalar el sistema, hacemos doble clic en el icono del escritorio que dice instalar. Nos aparecerá un asistente que nos guiará en toda la instalación. Aquí nos saltamos los primeros pasos porque son muy sencillos (Idioma, distribución del teclado y zona horaria). Así pues, llegamos al paso del particionado.
Lo más fácil es usar una de las opciones prefijadas que nos da el instalador, ya que nos evita este pasó. De todas formas, si lo que queremos es algo personalizado, debemos especificar las particiones manualmente. Debemos recordar que para funcionar correctamente, Ubuntu necesita dos particiones: una ext3 (o ext4) y una partición SWAP. Si elegimos un particionado personalizado crearlas es muy sencillo. Debemos seleccionar un espacio en blanco y crear una partición con formato ext3/ext4 y el tamaño que nosotros elijamos.
Además, el punto de montaje de esta partición debe ser / puesto que será nuestra partición raíz.
Debe quedar algo parecido a esto:
Para la partición SWAP, debemos darle un tamaño aproximado de 1 GB. Las particiones swap no tienen punto de montaje así que es mucho más sencillo crearlas.
Una vez creada debe ser parecido a esto:
Recordad que los tamaños de las particiones (tanto la raíz como SWAP se escriben en
MB. Para pasar a GB debéis dividir por 1024).
Una vez tengamos el particionado completo pasamos a rellenar los datos de usuario.
Si tenemos una partición con una versión de Windows, el instalador nos ofrecerá la opción de utilizar los datos de esa cuenta para Ubuntu. Si es lo que quieres, marcas las casillas correspondientes y listo.
Detallamos un poco como rellenar estos apartados. En el primero debemos poner nuestro nombre. En el segundo, el nombre para iniciar sesión. Este nombre sólo puede contener minúsculas.
La contraseña es a vuestra elección. El nombre del equipo es el nombre con el que otros usuarios verán al equipo en la red. Por último, podremos seleccionar si queremos que este usuario se identifique en el sistema automáticamente o por el contrario pida la contraseña. Esto último es a nuestra elección.
Una vez hayamos terminado de configurar todos los apartados, se nos mostrará un resumen de todos los cambios que el instalador hará en el sistema.
Conviene comprobarlos para ver si está todo correcto. Si lo está, pulsamos en Instalar y comenzará la instalación del sistema. Suele durar unos 15-20 minutos.
Cuando termine, nos mostrará una pantalla para, o bien continuar usando el sistema del CD, o bien reiniciar y empezar a usar el nuevo sistema. Si seguís utilizando el CD, recordad que para salir debéis pulsar en el botón que hay en la parte superior derecha.
Al reiniciar, usaremos el sistema nuevo, con las mismas características que el del CD, pero trabajando mucho más rápido. Ahora pasaremos a la correcta configuración del sistema, que es otro aspecto importante a tener en cuenta
Instalación y configuración de Amoeba.
Inicio: 28 de Septiembre
Duración estimada: 4 semanas
Duración real: No aplicable
Para llevar a cabo la instalación de un sistema Amoeba se requiere de al menos 5 computadores, los cuales deben contar con un espacio de disco duro de por lo menos 70 MB, tener como mínimo 16 MB de memoria RAM y poseer una o más tarjetas de red (por cada máquina).
Los máquinas utilizadas en ésta oportunidad corresponden a computadores IBM-PC compatibles, porN lo tanto el kernel Amoeba utilizado es la versión disponible para computadores con éstas características.
La primera parte de la instalación corresponde a la recolección de los archivos binarios necesarios para la instalación, y la creación de los discos de partida del sistema Amoeba. Para lograr esto se necesitaron cinco disquettes de 1.44 MB de capacidad los cuales deberían contener los binarios de Amoeba. Estos archivos se obtuvieron desde el servidor ftp de la universidad de Vrije, Holanda, y son los siguientes:
- kernels -> disco uno
- ramdisk.0 -> disco dos
- ramdisk.1 -> disco tres
- amoeba.0 -> disco cuatro
- amoeba.1 -> disco cinco
Debido a que cada archivo binario tiene un tamaño superior a los 1.44 MB se utilizó el comando (dd) de UNIX. La forma en que éste trabaja es creando una imagen exacta del archivo a copiar a algún otro archivo o unidad de e/s en nuestro caso el disquete. Para lograr hacer ésto es necesario especificar una serie de parámetros para indicar tamaño, número de bloques a copiar, etc.
Por ejemplo para crear el disco 1 de instalación (kernels) se debe escribir la siguiente línea de comandos:
dd if = kernels of = /dev/fd0 count = 1 bs=1474560
Donde:
if : input file (archivo de entrada).
of : output file (fichero o unidad de salida).
count : número de bloques a copiar.
bs : tamaño de los bloques copiados.
Para la creación de los siguientes cuatro disquettes de instalación se procede de la forma antes indicada.
NOTA: Antes de comenzar con la instalación de Amoeba se debe obtener la dirección MAC de las tarjetas de red involucradas en el sistema.
Una vez adquiridos los conocimientos teóricos necesarios respecto al sistema operativo distribuido Amoeba, y habiéndo creado los discos de instalación se procede con la instalación. Para ello se inserta el disco uno (kernels) en la unidad de disquette y se espera a que aparezca el mensaje de bienvenida.
Luego se insertan los discos ramdisk.0 y ramdisk.1. Una vez hecho ésto se procede a particionar el disco duro. Para ello se utiliza el comando fdisk y la línea de comando necesaria es la siguiente:
# fdisk /super/hosts/coldstart/bootp:00
5.1.2 Configuración de un Sod.
En este caso se configurara el sistema operativo LINUX.
Primero debemos identificarnos en el sistema (si elegimos en la instalación que entrara automáticamente no será necesario). Para configurar el sistema necesitaremos una conexión a internet, así que lo primero que debes hacer es establecerla. Bien, entraremos en el menú Sistema, después vamos a Administración, y luego Soporte de idiomas.
Ahora pulsaremos en el botón “Instalar/eliminar idiomas...”.
Se nos abrirá una ventana, donde debemos marcar nuestro idioma nativo (Castellano, español, inglés, etc.) y desmarcar los demás.
Cuando terminemos pulsamos en aplicar y llevará a cabo ciertas acciones. Nos pedirá la contraseña de usuario. Se la damos y listo.
Ahora configuraremos los repositorio. Vamos otra vez al menú Sistema,
Administración y luego Orígenes del Software. Si nos pide la contraseña se la introducimos. Aquí configuraremos dos pestañas: Software de Ubuntu, y actualizaciones.
Si disponemos de una conexión a internet permanente desmarcaremos los CD-ROM de Ubuntu (abajo) y marcaremos las 4 primeras casillas.
En el servidor de descarga debe elegir, o bien el de nuestro país (España en mi caso) o bien el servidor principal, que también suele ir rápido.
En la parte de actualizaciones marcaremos las dos primeras casillas (security y updates). La tercera queda a vuestra elección, aunque mi experiencia personal es que no es muy inestable. También marcaremos la casilla de comprobar actualizaciones diariamente. Con esto ya tendremos configurados los repositorios.
Ahora pasaremos a instalar el driver de la tarjeta gráfica. Si nuestra tarjeta gráfica es nVidia o ATI, el propio sistema nos mostrará un icono en la bandeja del sistema (parte superior derecha) informándonos de que existen controladores para instalar. Si queremos instalarlos, debemos ir al menú Sistema, Administración y luego Controladores de Hardware. Allí marcaremos el driver para instalarlo.
Ahora pasaremos a instalar el driver de la tarjeta gráfica. Si nuestra tarjeta gráfica es nVidia o ATI, el propio sistema nos mostrará un icono en la bandeja del sistema (parte superior derecha) informándonos de que existen controladores para instalar. Si queremos instalarlos, debemos ir al menú Sistema, Administración y luego Controladores de Hardware. Allí marcaremos el driver para instalarlo.
CONFIGURACIÓN DE Amoeba.
Una vez creada la partición para Amoeba se requiere etiquetar subparticiones lógicas con tamaños diferentes predefinidos para cada una. El comando utilizado para ello es:
#disklabel coldstart
La tabla siguiente muestra el nombre de la subpartición, su capacidad, y una breve descripción.
Vdisk:01 Contiene los kernels . Debe ser de por lo menos 1MB, se recomienda 2MB.
Vdisk:02 Es utilizado por el servidor de arranque y 100 KB son suficientes
Vdisk:03 Se usa para la administración del servidor de directorios.
Una partición de 1MB debería contener sobre 30000 directorios, lo que es suficiente para la mayoría de los propósitos.
Vdisk:04 Es el que contiene la información para inicializar el primer servidor de archivos. Debería ser de por lo menos 65 MB. Si la máquina tiene sólo 16 MB de memoria principal entonces hay que hacer ésta partición de no más de 900MB.
EJEMPLO: Para una partición Amoeba con 4209328 bloques y sabiendo que un sector de disco contiene 512 bytes se crea las sub-particiones de la siguiente forma:
-Para el disco virtual vdisk:01 de 2MB se asigna el rango de sectores (0 - 4096). Esto debido a que con 4096 sectores de 512 bytes c/u se completan los 2MB.
2MB = 2*1024*1024 bytes = (4096*512) bytes = 2MB
- Para el disco virtual vdisk:02 de 100KB se asigna el rango (4096 - 2048), debido a que para completar 100KB se necesitan 200 sectores.
Se continua hasta completar los 4 discos y los sectores que sobren se asignan a un quinto disco virtual.
Una vez etiquetados los discos virtuales se reinicia la máquina con los discos de instalación (kernels, ramdisk:(0-1) ).
Luego se configuran fecha y hora del sistema. Para ello se ingresa el siguiente comando:
#date -s /super/hosts/coldstart/tod yyyymmddhhmm.ss
El comando para completar la instalación es :
#.installit
Una vez hecho esto el programa de instalación pedirá dirección MAC de la tarjeta de red, cuyo ejemplo formato es el siguiente: 0 : 0 : c0 : 0 : 12 : 34.
En este punto se escoge un nombre para la máquina, que servirá para identificarla posteriormente.
Ahora ya es posible iniciar Amoeba desde el disco duro. Para ello se retira el disco de la unidad de disquete y se presiona + + . Luego de un minuto o dos aparecerá un mensaje pidiendo el nombre de usuario y contraseña. Se debe colocar Daemon, y en contraseña
Daemon es el nombre que identifica al superusuario o administrador del sistema. Equivalente al root en linux.
En este punto es donde se presentan los problemas ya que al identificar al supersusuario en el sistema Amoeba ocurren los siguientes errores:
Se envió un mensaje de correo electrónico al equipo de soporte técnico de Amoeba en Holanda, indicando los problemas experimentados con la instalación del sistema operativo, y algunas de las configuraciones físicas de los equipos y la red empleados. El sr. Kees Verstoep respondió a la consulta, señalando que el conflicto producido se debía a que Amoeba no era capaz de reconocer los adaptadores de red con que contaban los computadores en que había sido instalado; la solución al problema, indicó, consiste en utilizar tarjetas de red sólo de los tipos especificados en el manual de administración del sistema. Al momento de redacción de este informe, dicha solución no ha podido ser probada, debido a que el laboratorio cuenta con no más de 4 adaptadores NE2000, indicados como la opción más segura para configurar en Amoeba, que están siendo utilizados para las sesiones prácticas del curso de Redes. La terminación del presente período académico al interior de la universidad hace difícil poder finalizar el desarrollo de esta etapa del proyecto, pero no por ello se descarta la posibilidad de terminar con la instalación comenzada.
5.1.3.- Control Sod.
El Control de Sistemas e Informática, consiste en examinar los recursos, las operaciones, los beneficios y los gastos de las producciones (servicios y/o productos de los Sistemas Informáticos), de los Organismos sujetos a control, con la finalidad de evaluar la eficacia y eficiencia Administrativa Técnica y/u Operacional de los Organismos, en concordancia con los principios, normas, técnicas y procedimientos normalmente aceptados. Asimismo de los Sistemas (Planes, Programas y Presupuestos, Diseño, Software, Hardware, Seguridad, Respaldos y otros) adoptados por la Organización para su dinámica de Gestión en salvaguarda de los Recursos del Estado.
Existe otra definición sobre el "control técnico" en materia de Sistemas e Informática, y esta se orienta a la revisión del Diseño de los Planes, Diseños de los Sistemas, la demostración de su eficacia, la Supervisión compulsa de rendimientos, Pruebas de Productividad de la Gestión - Demanda llamada "Pruebas intermedias", el análisis de resultados, niveles y medios de seguridad, respaldo, y el almacenamiento. Así mismo medición de la vida útil del Sistema Informático adoptado por la Organización bajo control.
5.2 Estándares Administración En Sistemas Distribuidos.
El establecimiento de estándares
Aquellas normas usuales, los propósitos, los objetivos, a alcanzar, los datos de carácter histórico las directrices que guían las actividades, las predicciones sobre el volumen de estas, las metas a alcanzar y aquellos índices que integran los planes , y todo dato o cifra que pueda emplearse como medida para cumplirlas, son considerados como estándares.
Estas medidas son indispensables para el control, ya que indican la manera en que deseas que se ejecute una actividad. En la práctica, son los objetivos declarados y definidos de la organización y por esa razón los estándares deben abarcar las funciones básicas y áreas clave de los resultados logrados.
Para construir los estacares, debe partirse del análisis de procesos, como las normas de trabajo o de costos y la recopilación de experiencias anteriores.
Estándares estadísticos o históricos: parten del análisis de datos de experiencias logradas, que muchas veces son complementadas con el criterio personal.
Los estándares elaborados técnicamente se fundamentan en el estudio objetivo y cuantitativo de una situación de trabajo específica.
Los estándares puedes ser físicos, intangibles, de costos, de inversión, de recursos o medios de producción, de ingresos o de resultados, y expresarse cuantitativamente, en unidades numéricas, de uno u otro tipo(moneda, volumen, capacidad ), o cualitativos, cuando se establecen subjetivamente y lo que se mide y evalúa se refiere a cierta calidad(impacto en el mercado, nombre de la empresa, precio en la competencia).
Los estándares pueden representar calidad, mediante índices o calificaciones convencionales o por medio de coeficientes.
5.3 Tendencias de Investigación en los Sistemas Distribuidos.
Los cambios tecnológicos de los últimos años pueden traer también cambios muy importantes en los sistemas de archivos distribuidos. Además con el rápido avance que se da en las redes de comunicaciones y su incremento en el ancho de banda la creación de paquetes que ofrecen la comparición de archivos es común de encontrarse en el mercado. En la industria, el esquema más solicitado es aquel que permite acceder a los grandes volúmenes de información de los grandes servidores desde las computadores personales o convencionales y desde otros servidores. Es por eso que la principal solución que adoptada por las pequeñas empresas es contar con Novell Netware en un servidor 486 o superior y acceder a los archivos desde máquinas similares.
Entre los sistemas de archivos distribuidos más populares que existen en la actualidad, tenemos los que nos proporciona Netware, tales como:
Veremos a continuación algunos aspectos en los que podrían presentarse cambios en un futuro no muy lejano, teniendo en cuenta que los cambios tecnológicos se producen día a día y en desmesurado avance.
Hardware reciente
Existen muchos dispositivos hardware que en los últimos años están abaratando sus costos, tales como las memorias. Esto mejoraría circunstancialmente los actuales servidores de archivos puesto que se podrá adquirir gran cantidad de gigabytes de memoria, aunque todavía se presente el problema de que la memoria sea volátil, es decir, que cuando se apaga el sistema se borran los archivos.
Una nueva innovación en hardware son los discos ópticos que ahora pueden ser utilizados más de una vez. Aunque son un poco más caros que las cintas de video siempre han sido un aporte importante para los sistemas de archivos, principalmente en el soporte de backups.
Otro desarrollo importante en hardware son las redes de fibra óptica de alta velocidad que agilizarían la transferencia de archivos y se podría prescindir de la memoria caché. Esto también simplificaría en mucho el software a utilizarse en los sistemas de archivos distribuidos.
Existen muchas más innovaciones tecnológicas que poco a poco harán más eficiente el manejo y administración de los sistemas de archivos, por lo que en el futuro se podría aun encontrar diversos tipos de soluciones específicas para un sistema determinado por sus propias características y requerimientos.
Escalabilidad
Redes de área amplia
La mayor parte del trabajo que se realiza actualmente en los sistemas distribuidos se basa en los sistemas alojados en redes LAN. La tendencia en el futuro es que veremos conectados entres sí muchos sistemas distribuidos LAN con el fin de formar sistemas distribuidos transparentes a través de todo el mundo. Pero para esto tendría que tomarse como punto de importancia el hecho de que no todos los países utilizan un mismo tipo caracteres para sus archivos, es decir, si en latinoamérica utilizamos los códigos ASCII, puede ser que en otras partes del mundo no se utilice este mismo concepto, lo que produciría una incompatibilidad de datos.
Por otro lado, también es importante el cambio que se producirá en las aplicaciones, puesto que la mayoría de experimentos que actualmente se realizan en las universidades están basados en sistemas parecidos a UNIX.
Un problema que se presentará aun mucho más tiempo es que la conexión de fibra óptica tardará muchos años en instalarse en todos los rincones del planeta y también la existencia de una red de mayor ancho de banda será difícil y costosa de implementar pues no se cuenta, todavía, con una mayor aceptación del potencial público usuario.
Usuarios móviles
A medida que la tecnología de las comunicaciones se digitaliza, se encuentra sujeta a las mismas mejoras exponenciales que han hecho que una computadora portátil de 2000 dólares actual tenga más capacidad que una computadora IBM de 10 millones de dólares de hace veinte años. Por esta razón las computadoras portátiles presenta un mayor crecimiento en la tecnología informática.
Pero este hecho presenta la inconveniencia de que estos usuarios no estarán conectados todo el tiempo al sistema, es decir, solo lo estarán algún tiempo y luego no aparecerán. Esto es debido a que todavía no se cuenta con una adecuada red instalada en diversos lugares para que el usuario pueda conectar su laptop, notebook y su PC de bolsillo a su respectivo sistema o al sistema al cual desea conectarse.
Además, como todavía no se cuenta con un ancho de banda mayor, la transferencia de archivos se hace aun mucho más lenta. Se espera que en el futuro existan mejores ventajas para que sobresalga este de desarrollo tecnológico que los últimos ha demostrado tener una verdadera tendencia a seguir creciendo.
Tolerancia de fallas
En la actualidad, la mayor parte de los sistemas de cómputo no presentan tolerancia a fallas. Es común escuchar en las agencias bancarias la frase: "No hay sistema", por lo que tomamos este hecho como algo absolutamente normal. Salvo algunos sistemas especializados como los que se utilizan para el control de tráfico aéreo, otros sistemas no presentan este comportamiento que debería ser el óptimo.
Para que los sistemas de archivos cumplan con este requisito, deberá existir o implementarse una consistente infraestructura de hardware lo cual permita a los sistemas ser realmente confiables y seguros en cuanto a tiempo de funcionamiento efectivo se refiere.
ARQUITECTURA DE MULTIPROCESADOR
Se denomina multiprocesador a un ordenador que cuenta con dos o más microprocesadores (CPUs).
Gracias a esto, el multiprocesador puede ejecutar simultáneamente varios hilos pertenecientes a un mismo proceso o bien a procesos diferentes.
Los ordenadores multiprocesador presentan problemas de diseño que no se encuentran en ordenadores monoprocesador. Estos problemas derivan del hecho de que dos programas pueden ejecutarse simultáneamente y, potencialmente, pueden interferirse entre sí. Concretamente, en lo que se refiere a las lecturas y escrituras en memoria. Existen dos arquitecturas que resuelven estos problemas:
La arquitectura NUMA, donde cada procesador tiene acceso y control exclusivo a una parte de la memoria.
La arquitectura SMP, donde todos los procesadores comparten toda la memoria.
Esta última debe lidiar con el problema de la coherencia de caché. Cada microprocesador cuenta con su propia memoria cache local. De manera que cuando un microprocesador escribe en una dirección de memoria, lo hace únicamente sobre su copia local en caché. Si otro microprocesador tiene almacenada la misma dirección de memoria en su caché, resultará que trabaja con una copia obsoleta del dato almacenado.
Para que un multiprocesador opere correctamente necesita un sistema operativo especialmente diseñado para ello. La mayoría de los sistemas operativos actuales lo son.
Los sistemas multiprocesador (MP) son un tipo de arquitectura con una importancia creciente y ampliamente difundido. La mayoría de los constructores de computadores ofrece máquinas en las que están presentes más de una CPU, configuración que es hoy en día es de uso habitual en casi todos los sistemas de tamaño medio y grande. Asimismo, los fabricantes de procesadores incorporan a sus arquitecturas, desde hace pocos años, los mecanismos necesarios para que éstos se puedan emplear fácilmente, y con un coste reducido (publicidad de Sun Microsystems en 1999: "si compra un procesador, le regalamos otro"), en la construcción de este tipo de sistemas.
SISTEMAS DISTRIBUIDOS QUE INTEGRAN LA ARQUITECTURAS DE MULTIPROCESADOR
La industria informática, ha tenido siempre un objetivo primordial, repetido a lo largo de toda su cadena (fabricantes de semiconductores, fabricantes de sistemas y usuarios): la búsqueda de la velocidad. Para alcanzar este objetivo se han invertido ingentes cantidades de recursos, hasta alcanzar los límites físicos del silicio.
Obviamente, la velocidad va ligada a las prestaciones, y por lo general, la primera ha sido la principal medida para decidirse por un sistema u otro. Sin embargo, por muy evidente que parezca, y dados los límites físicos de los semiconductores, las prestaciones pueden no estar forzosamente ligadas a la velocidad. Hoy es posible construir sistemas, que aún teniendo procesadores más "lentos" que otros, ofrezcan unas prestaciones significativamente superiores. Son los sistemas multiprocesador, que como su denominación indica, incorporan varios procesadores para llevar a cabo las mismas funciones.
No es un concepto nuevo, ya que los "minicomputadores" construidos por compañías como NCR, Sequent y Stratus, ya empleaban varios nodos de proceso como alternativas económicas a otros productos de otras compañías. Sin embargo, aquellos sistemas aún duplicaban recursos caros del sistema, como memoria y dispositivos de entrada/salida, y por tanto, confinaban a los sistemas multiprocesador al mundo de los sistemas de alto nivel.
Ahora, y en gran medida gracias a los procesadores de arquitectura RISC, el soporte multiprocesador es una solución integrada y fácilmente disponible en estaciones de trabajo de sobremesa, que resuelve, a través de hardware VLSI, los complejos problemas de compartición de recursos (memoria compartida) de aquellas primeras máquinas.
Evidentemente, estas mejoras en el hardware, para ser funcionales, requieren importantes desarrollos en el software, y de hecho, muchos sistemas operativos admiten extensiones multiproceso (Match, SCO, Solaris, System V, etc.), que proporcionan paralelismo "en bruto" (asignando múltiples tareas a múltiples procesadores) a nivel del sistema operativo.
Las aplicaciones escritas para facilitar el paralelismo en su ejecución, incrementan significativamente las prestaciones globales del sistema; esto es lo que se denomina multi-enhebrado (multithreading), que implica dividir una sola aplicación entre varios procesadores. Sin embargo, los desarrolladores de software y programadores de aplicaciones sólo han comenzado a explorar las vastas posibilidades de incremento de prestaciones que ofrecen los sistemas con capacidades reales de proceso en paralelo.
El multiproceso no es algo difícil de entender: más procesadores significa mas potencia computacional. Un conjunto de tareas puede ser completado más rápidamente si hay varias unidades de proceso ejecutándolas en paralelo. Esa es la teoría, pero otra historia es la práctica, como hacer funcionar el multiproceso, lo que requiere unos profundos conocimientos tanto del hardware como del software. Es necesario conocer ampliamente como están interconectados dichos procesadores, y la forma en que el código que se ejecuta en los mismos ha sido escrito para escribir aplicaciones y software que aproveche al máximo sus prestaciones.
Para lograrlo, es necesario modificar varias facetas del sistema operativo, la organización del código de las propias aplicaciones, así como los lenguajes de programación.
Es difícil dar una definición exacta de un sistema multiprocesador, aunque podemos establecer una clasificación de los sistemas de procesadores en:
SISD o secuencia única de instrucciones y datos (Single Instruction, Single Data): una sola secuencia de instrucciones opera sobre una sola secuencia de datos (caso típico de los ordenadores personales).
SIMD o secuencia única de instrucciones y múltiple de datos (Single Instruction, Multiple Data): una sola secuencia de instrucciones opera, simultáneamente, sobre múltiples secuencias de datos (array processors).
MISD o múltiples secuencias de instrucciones y única de datos (Multiple Instruction, Single Data): múltiples secuencias de instrucciones operan, simultáneamente, sobre una sola secuencia de datos (sin implementaciones útiles actualmente).
MIMD o múltiples secuencias de instrucciones y datos (Multiple Instruction, Multiple Data): múltiples secuencias de instrucciones operan, simultáneamente, sobre múltiples secuencias de datos.
Los sistemas multiprocesadores pueden ser clasificados con mayor propiedad como sistemas MIMD. Ello implica que son máquinas con múltiples y autónomos nodos de proceso, cada uno de los cuales opera sobre su propio conjunto de datos. Todos los nodos son idénticos en funciones, por lo que cada uno puede operar en cualquier tarea o porción de la misma.
APLICACIONES MULTIMEDIA EN SISTEMAS DISTRIBUIDOS
Los sistemas multimedia surgen por la posibilidad económicamente viable de integrar video, audio y datos, y de procesarlos y transmitirlos a un coste razonable. La convergencia de telecomunicaciones, electrónica de consumo, ordenadores, televisión y proveedores de información abre posibilidades no imaginadas hace unos pocos años. Aplicaciones a la teleconferencia, la teleeducación, el trabajo cooperativo, etc. están modificando muchos aspectos socio-económicos de la vida cotidiana. En el presente curso se pretenden presentar algunas de las principales aplicaciones multimedia (tales como M-BONE, Netmeeting, CUSeeme, etc.) así como sus fundamentos técnicos. El curso se cerrará presentando experiencias reales y una panóramica de las perspectivas futuras.
Las aplicaciones multimedia distribuidas pueden programarse utilizando tecnologías Java de objetos distribuidos (como RMI). Una aplicación multimedia de alta calidad y distribuida debe ser capaz de ofrecer una cierta calidad de salida, es decir, ofrecer una imagen a la salida cada cierto tiempo. La corrección en el procesamiento temporal de las imágenes depende no sólo de la gestión local del procesamiento sino también de la gestión llevada a cabo por los protocolos de red. En este estudio se deberá estudiar la estructura de tecnologías Java para la integración eficiente de protocolos de red que permitan garantizar los plazos de tiempo que una aplicación debe cumplir en su procesamiento de datos multimedia
Las investigaciones y desarrollos en el área de la multimedia se puede dividir en dos grandes grupos:
Todo esto ofrece un gran panorama y un enorme potencial para nuevas aplicaciones basadas en los sistemas multimedia distribuidos, los cuales incluyen sistemas de información multimedia, los sistemas de colaboración y conferencia, los servicios multimedia sobre demanda, televisión de alta resolución y la enseñanza a distancia.
Los computadores modernos pueden manejar caudales de datos continuo (caudales), dependientes del tiempo como audio y vídeo digital. Esta capacidad ha conducido al desarrollo de aplicaciones multimedia distribuidas como biblioteca de vídeos en red, telefonía sobre Internet y vídeoconferencia. Dicha aplicaciones son viables con las actuales redes y sistemas de propósito general, a pesar de que a menudo la calidad del audio y del vídeo resultante esta lejos de ser satisfactoria. Las aplicaciones más exigentes como la vídeoconferencia a gran escala, la T.V. digital, y los sistemas de vigilancia están más allá de las capacidades de las redes y de los sistemas distribuidos actuales.
Las aplicaciones multimedia generan y consumen caudales de datos continuos en tiempo real. Éstos contienen grandes cantidades de audio, vídeo y otros elementos de datos dependientes del tiempo, y resulta esencial el procesamiento y la entrega a tiempo de los elementos individuales de datos.
Una especificación de un caudal multimedia se expresa en términos de valores aceptables para la tasa a la que los datos pasan desde la fuente al destino (ancho de banda), el retardo en la entrega de cada elemento (latencia) y la tasa a la que se pierden o se desechan los elementos. La latencia es particularmente importante en aplicaciones interactivas. En las aplicaciones multimedia a menudo resultan aceptables un grado pequeño de perdida de datos de los caudales multimedia ya que las aplicaciones pueden volver a sincronizarse con los elementos que siguen a aquellos perdidos.
La reserva y la planificación (scheduling) de los recursos pensadas para satisfacer las necesidades tanto de las aplicaciones multimedia como las otras se denomina gestión de la calidad de servicio. Parámetros importantes son la reserva de la capacidad de procesamiento, el ancho de banda de la red y la memoria (para el almacenamiento de los elementos de datos que son entregados temprano).
Las aplicaciones multimedia demandan la entrega a tiempo a los usuarios de caudales de datos multimedia. Los caudales de audio y vídeo se generan y se consumen en tiempo real, la entrega a tiempo de los elementos individuales es esencial para la integridad de la aplicación. En resumen, los sistemas multimedia son sistemas de tiempo real: deben ejecutar tareas y entregar sus resultados de acuerdo de una planificación que es determinada externamente.
5.4 Sistemas distribuidos y la sociedad.
¿Crees que no tienes nada que ver con los sistemas operativos distribuidos? Bueno, ¡piensa lo otra vez! Incluso si tú no usas regularmente las computadoras, tú te encuentras conectado a un sistema operativo distribuido.?
¿Tienes seguro social?
¿Tarjeta de crédito o cuenta bancaria?
¿Televisión por cable?
¿Teléfono?
¿Registro escolar o tarjeta de biblioteca?
Si es así, entonces tú estás conectado a un sistema operativo distribuido, y en este sistema operativo distribuido se encuentran datos sobre tu vida.
Acceso simultáneo
Aplica para cuando múltiples usuarios necesitan tener la misma información al mismo tiempo, si tenemos copias por separado de la información, es muy difícil mantenerla actualizada tan pronto se haya hecho un cambio, y existe una discrepancia haciéndose difícil saber cuál es la correcta.
Conclusión.
En la actualidad los sistemas operativos distribuidos han cobrado auge, a pesar de que fueron diseñados tiempo a tras su desarrollo no había sido el suficiente como para ser implementado de manera adecuada, hoy en día varias corporaciones han optado por los sistemas distribuidos por su desempeño y flexibilidad entre otras características que los hacen mejores a los sistemas centralizados. Como Licenciados en informática es de vital importancia conocer su diseño instalación e implementación para poder manejar dichos sistemas e interactuar con ellos.
Es nuestro deber conocer estos sistemas, ya que podemos ofrecer nuevas soluciones a las empresas en las que nos desarrollemos.