viernes, 8 de junio de 2012


Unidad 3
PROCESOS Y PROCESADORES EN SISTEMAS DISTRIBUIDOS

3.1 Procesos, Procesadores
Conceptos Básicos
Un hilo de ejecución, en sistemas operativos, es una característica que permite a una aplicación realizar varias tareas concurrentemente. Los distintos hilos de ejecución comparten una serie de recursos tales como el espacio de memoria, los archivos abiertos, situación de autenticación, etc. Esta técnica permite simplificar el diseño de una aplicación que debe llevar a cabo distintas funciones simultáneamente.

Proceso
Un proceso puede informalmente entenderse como un programa en ejecución. Formalmente un proceso es "Una unidad de actividad que se caracteriza por la ejecución de una secuencia de instrucciones, un estado actual, y un conjunto de recursos del sistemas asociados"

3.2 Hilos y Multihilos
Hilos
Los hilos de ejecución que comparten los mismos recursos, sumados a estos recursos, son en conjunto conocidos como un proceso. El hecho de que los hilos de ejecución de un mismo proceso compartan los recursos hace que cualquiera de estos hilos pueda modificar éstos. Cuando un hilo modifica un dato en la memoria, los otros hilos acceden e ese dato modificado inmediatamente.
Lo que es propio de cada hilo es el contador de programa, la pila de ejecución y el estado de la CPU (incluyendo el valor de los registros).
El proceso sigue en ejecución mientras al menos uno de sus hilos de ejecución siga activo. Cuando el proceso es terminado, todos sus hilos de ejecución también lo son. Asimismo en el momento en el que todos los hilos de ejecución finalizan, el proceso no existe más y todos sus recursos son liberados.

Un ejemplo de la utilización de hilos es tener un hilo atento a la interfaz gráfica (iconos, botones, ventanas), mientras otro hilo hace una larga operación internamente. De esta manera el programa responde de manera más ágil a la interacción con el usuario. También pueden ser utilizados por una aplicación servidora para dar servicio a múltiples clientes.



  

Multihilo
Sincronización de hilos
Todos los hilos comparten el mismo espacio de direcciones y otros recursos como pueden ser archivos abiertos. Cualquier modificación de un recurso desde un hilo afecta al entorno del resto de los hilos del mismo proceso. Por lo tanto, es necesario sincronizar la actividad de los distintos hilos para que no interfieran unos con otros o corrompan estructuras de datos.
Una ventaja de la programación multihilo es que los programas operan con mayor velocidad en sistemas de computadores con múltiples CPU (sistemas multiprocesador o a través de grupo de máquinas) ya que los hilos del programa se prestan verdaderamente para la ejecución concurrente.
Formas de Multihilos
Los sistemas operativos generalmente implementan hilos de dos maneras:

Multihilo apropiativo
Permite al sistema operativo determinar cuándo debe haber un cambio de contexto. La desventaja de esto es que el sistema puede hacer un cambio de contexto en un momento inadecuado, causando un fenómeno conocido como inversión de prioridades y otros problemas.

Multihilo cooperativo
Depende del mismo hilo abandonar el control cuando llega a un punto de detención, lo cual puede traer problemas cuando el hilo espera la disponibilidad de un recurso.
El soporte de Hardware para multihilo desde hace poco se encuentra disponible. 

3.3 Modelos de Procesadores

EVOLUCION DE LOS PROCESADORES
Hablar de procesadores es, sobre todo, hablar de Intel y de AMD, ya que son las empresas que han soportado el peso del desarrollo de estos, ya sea colaborando ambas empresas como en su fase de desarrollos independientes. 

Aunque la historia de los ordenadores comienza bastante antes, la historia de los microprocesadores comienza en el año 1971, con el desarrollo por parte de Intel del procesador 4004, para facilitar el diseño de una calculadora. 

Al mismo tiempo, la empresa Texas Instruments (conocida por el diseño y fabricación de calculadoras) también trabajaba en un proyecto similar, por lo que aun se discute quien fue el creador del primer microprocesador, si Texas Instruments o Intel. Vamos a limitar a la época de los PC (Personal Computer), que podemos decir que comienza en el año 1978, con la salida al mercado del procesador Intel 8086. 

Hablando de la historia de los ordenadores personales y sus procesadores no podemos olvidar a Apple y su Macintosh, ni a Motorola y su Power PC, pero en este tutorial nos vamos a centrar en los procesadores que utilizan los juegos de instrucciones x86 y x64 (los actuales procesadores de 64 bits). 


8086 y 8088 (1978 a 1982)
Son los primeros procesadores utilizados en PC. 

La diferencia entre los 8086 y los 8088 estaba en su frecuencia, que en el caso del 8086 era de unos ''sorprendentes'' 4.77Mhz, pasando en los 8088 a una frecuencia de entre 8 y 10Mhz, pudiendo gestionar 1Mb de memoria. 

Usaban un socket de 40 pines (paralelos 20 + 20) y tenían un bus externo de entre 8 y 16 bits. 

Carecían de instrucciones de coma flotante, pero para implementar estas se podían complementar con el coprocesador matemático 8087, que era el más utilizado, aunque no el único, ni tan siquiera el que ofrecía un mejor rendimiento. 

De los dos modelos, el más utilizado sin duda fue el 8088, que además fue el utilizado por IBM en su IBM PC.

El modelo 8086 aun es utilizado en algunos dispositivos y calculadoras. 


80186 y 80188 (1982 hasta nuestros días)
Se trata de una evolución de los modelos 8086 y 8088. 
Si bien su uso como procesadores para ordenador tuvo muy poco uso e incidencia, siendo utilizado como tal por tan solo un par de fabricantes de PC, no se puede decir lo mismo sobre su importancia, ya que se siguen utilizando en nuestros días (en su versión CMOS), sobre todo por su capacidad de desarrollar las funciones que de otra forma tendrían que estar distribuidas entre varios circuitos. 

En lugar de socket utilizaban una presentación tipo chip (la misma que utilizan hoy como CMOS), con una frecuencia de 6Mhz. 


80286 (1982 a 1986)
Más conocido como i286 o simplemente como 286, se trata de un procesador en el que ya aparece la forma definitiva que llega hasta hoy (cuadrado, con los pines en una de sus caras), insertado en un socket de 68 pines, si bien también hubo versiones en formato chip de 68 contactos. 

Los primeros 80286 tenían una frecuencia de 6 y 8Mhz, llegando con el paso del tiempo a los 25Mhz. 

Funcionaban al doble de velocidad por ciclo de reloj que los 8086 y podían direccionar 16Mb de memoria RAM. 

Los 80286 fueron desarrollados para poder trabajar en control de procesos en tiempo real y sistemas multiusuario, para lo que se le añadió un modo protegido. En este modo trabajaban las versiones de 16 bits del sistema operativo OS/2. En este modo protegido se permitía el uso de toda la memoria directamente, ofreciéndose además una protección entre aplicaciones para evitar la escritura de datos accidental fuera de la zona de memoria asignada (un sistema en buena parte similar al actual Bit de desactivación de ejecución de datos en su funcionamiento). 

Los procesadores 80286 fueron fabricados bajo licencia de Intel por varios fabricantes además de la propia Intel, como AMD, Siemens, Fujitsu y otros. 


80386 (1986 hasta 1994)
La aparición en el año 1986 de los procesadores 80386 (más conocido como i386) supuso el mayor avance hasta el momento en el desarrollo de los procesadores, no solo por lo que supusieron de mejora sobre los 80286 en cuanto a rendimiento, sino porque es precisamente con este procesador con el que se sientan las bases de la informática tal como la conocemos.
Esto llega hasta el punto de que si no fuera por el rendimiento y frecuencias, cualquier programa actual podría funcionar perfectamente en un 80386 (cosa que no ocurre con los procesadores anteriores). 

Se trata del primer procesador para PC con una arquitectura CISC de 32bits e instrucciones x86 de direccionamiento plano (IA32), que básicamente es la misma que se utiliza en nuestros días. 

Al tratarse de procesadores de 32bits podían manejar (en teoría) hasta 4Gb de RAM. 

Fueron también los primeros procesadores a los que se adaptó un disipador para su refrigeración. 

Aclaro lo de ''para PC'' porque Motorola, con su Motorola 68000 para Mac hacia tiempo que ya utilizaba el direccionamiento plano. 

La conexión a la placa base en las primeras versiones es mediante socket de 68 pines, igual al de los 80286 pero no compatibles, por lo que también significó el desarrollo de placas base específicas para este procesador, pasando posteriormente a un socket de 132 pines. 

Con unas frecuencias de entre 16 y 40Mhz, se fabricaron en varias versiones. 

80386 - A la que nos hemos referido hasta el momento. 

i386SX - Diseñado como versión económica del 80386. Seguía siendo un procesador de 32bits, pero externamente se comunicaba a 16bits, lo que hacía que fuera a la mitad de la velocidad de un 80386 normal.

i386SX Now - Versión del 80386SX, pero con el patillaje compatible pin a pin con los procesadores 80286, desarrollado por Intel para poder actualizar los 80286 sin necesidad de cambiar de placa base. 

i386DX - Es la denominación que se le dio a los 80386 para distinguirlos de los 80386SX cuando estos salieron al mercado. 

Este procesador supuso la ruptura de la colaboración de Intel con otros fabricantes de procesadores, lo que tuvo como consecuencia que la gran mayoría de ellos dejaran de fabricar estos. 

La gran excepción fue AMD, que en 1991 sacó al mercado su procesador Am386, totalmente compatible con los i386, lo que terminó con el monopolio de Intel en la fabricación de estos. 

Aunque no se utilizan en ordenadores, este procesador sigue en producción por parte de Intel, habiendo anuncio el fin de esta para mediados de 2007. 


80486 (1989 a 1995)
Más conocidos como i486, es muy similar al i386DX, aunque con notables diferencias. 

De este tipo de procesador ha habido muchas versiones, tanto de Intel como de otros fabricantes a los que les fue licenciado. 

En ocasiones se trataba de procesadores iguales a los de Intel y en otras de diseños propios, como fue el caso de los Am486 de AMD. 

Las frecuencias de estos procesadores fueron creciendo con el tiempo, llegando al final de su periodo de venta a los 133Mhz (en el caso del Am486 DX5 133), lo que lo convirtió en uno de los procesadores más rápidos de su época (y hay que tener en cuenta que los Pentium ya estaban en el mercado). 

Las más frecuentes fueron 25Mhz, 33Mhz, 40Mhz, 50Mhz (con duplicación del reloj), 66Mhz (con duplicación del reloj), 75Mhz (con triplicación del reloj), 100Mhz (con triplicación del reloj) y en el caso de AMD (en los Am486DX5) 120Mhz y 133Mhz. 

En un primer momento también salieron con unas frecuencias de 16Mhz y de 20Mhz, pero estas versiones son muy raras. 

Con respecto a los Am486DX5 133 (también conocidos como Am5x86 133), hay que señalar que se trataba del procesador de mayor rendimiento de su época. 

Las novedades en estos procesadores i486 fueron muchas, como por ejemplo un conjunto de instrucciones muy optimizado, unidad de coma flotante integrada en el micro (fueron los primeros en no necesitar el coprocesador matemático), una caché integrada en el propio procesador y una interface de bus mejorada. Esto hacia que a igualdad de frecuencia que un i386 los i486 fueran al doble de velocidad. 

En cuanto a las versiones de los i486, podemos destacar: 

Intel 80486-DX - La versión modelo, con las características indicadas anteriormente. 

Intel 80486-SX - Un i486DX con la unidad de coma flotante deshabilitada, para reducir su coste. 

Intel 80486-DX2 - Un i486DX que internamente funciona al doble de la velocidad del reloj externo. 

Intel 80486-SX2 - Un i486SX que funciona internamente al doble de la velocidad del reloj. 

Intel 80486-SL - Un i486DX con una unidad de ahorro de energía. 

Intel 80486-SL-NM - Un i486SX con una unidad de ahorro de energía. 

Intel 80486-DX4 - Un i486DX2 pero triplicando la velocidad interna.

Intel 80486 OverDrive (486SX, 486SX2, 486DX2 o 486DX4) - variantes de los modelos anteriores, diseñados como procesadores de actualización, que tienen un patillaje o voltaje diferente. Normalmente estaban diseñados para ser empleados en placas base que no soportaban el microprocesador equivalente de forma directa. 

Pentium (1993 a 1997)
Este procesador fue creado para sustituir al i486 en los PC de alto rendimiento, si bien compartió mercado con ellos hasta el año 1.995, siendo precisamente estos su gran rival, ya que tuvieron que pasar algunos años (y versiones del Pentium) para que superara a los i486 DX4 en prestaciones, siendo además mucho más caros. 

Los primeros Pentium tenían una frecuencia de entre 60Mhz, 66Mhz, 75Mhz y 133Mhz, y a pesar de las mejoras en su estructura, entre las que destaca su arquitectura escalable, no llegaban a superar a los i486 de Intel que en ese momento había en el mercado, y mucho menos a los Cyrix y Am486 DX4. 

En enero de 1997 salió al mercado una evolución de los Pentium llamada Pentium MMX (Multimedia Extensions), al añadírsele a los Pentium un juego de instrucciones multimedia que agilizaba enormemente el desarrollo de estos, con unas frecuencias de entre 166Mhz y 200Mhz. 

Los Intel Pentium MMX utilizaban los socket 7, de 321 pines y entre 2.5 y 5v. Estos socket son los que también utilizaban los procesadores de la competencia de Intel, tanto los AMD K5 y K6 como los Cyrix 6x86. 

Los primeros K5 aparecieron en 1996. Se trataba de unos procesadores basados en la arquitectura RISC86, más próximos a lo que después serían los Pentium PRO y con un nivel de prestaciones desde un principio muy superior a los Pentium de Intel, pero con una serie de problemas, más de fabricación que del propio procesador, que hicieron que los K5 fueran un fracaso para AMD, y si bien los problemas se solucionaron totalmente con la salida de los K6, Intel supo aprovechar muy bien esta circunstancia para imponerse en el mercado de los procesadores para PC. 

Utilizaban para las funciones multimedia las instrucciones MMX, que se habían convertido en el estándar de la época. 

En 1997 salen al mercado los AMD K6. 
Diseñados para trabajar en placas base de Pentium dotadas de socket 7 y con unas frecuencia de entre 166 y 300Mhz, tuvieron una pronta aceptación en el mercado, ya que no solo tenían un precio bastante inferior a los Pentium MMX de Intel, sino también unas prestaciones muy superiores a estos y a los Cyrix 6x86, que se quedaron bastante descolgados. 

Pentium Pro (1995 hasta 1998)
El Pentium PRO no fue diseñado como sustituto de ningún procesador, sino como un procesador para ordenadores de altas prestaciones destinados a estaciones de trabajo y servidores. 

Basado en el nuevo núcleo P6, que más tarde seria adoptado por los Pentium II y Pentium III, utilizaba el socket 8, de forma rectangular y 387 pines, desarrollado exclusivamente para este procesador. 

Con una frecuencia de reloj de 133 y 200Mhz, incorpora por primera vez un sistema de memoria caché integrada en el mismo encapsulado. Esta cache podía ser de 256Kb, 512Kb o de 1Mb. 

Sobresalían en el manejo de instrucciones y software de 32 bits, en máquinas trabajando bajo Windows NT o Unix, pero casi siempre resultaban más lentos que un Pentium (y no digamos que un AMD K6) en programas e instrucciones de 16 bits. 
Estos procesadores no llegaron nunca a incorporar instrucciones MMX. 


Pentium II (comienzos de 1997 a mediados de 1999)
A comienzo de 1.997 Intel saca al mercado a bombo y platillo, y con una campaña de propaganda nunca antes vista para el lanzamiento de un procesador, el Pentium II. 

Se trata de un procesador basado en la arquitectura x86, con el núcleo P6, que fue utilizado por primera vez en los Pentium Pro. 

Con el lanzamiento de este procesador se produce la separación definitiva entre Intel y AMD... y llega la incompatibilidad de placas base entre ambos. 

También se produce por parte de Intel el abandono de los socket, en favor de instalar los procesadores enSlot, en este caso Slot 1, de 242 contactos y de entre 1.3 y 3.3 voltios, que por cierto, sería abandonado posteriormente ante los problemas que este sistema genera. 

Estos procesadores, que como ya hemos dicho estaban basados más en los Pentium Pro que en los Pentium originales, contaban con memoria caché, tanto de nivel L1 (32Kb) como de nivel L2 (512Kb), pero a diferencia de lo que ocurría en los Pentium Pro no estaba integrada en el encapsulado del procesador, sino unida a este por medio de un circuito impreso. Para complicar más el tema, se les dota de instrucciones MMXy se les mejora el rendimiento en ejecuciones de 16bits. 


Klamath
A la venta desde mayo de 1.997, con un FSB de 66Mhz y frecuencias de 233Mhz, 266Mhz y 300Mhz. 
Sustituye a la serie Klamath en enero de 1.998. 
Se comercializa con dos frecuencias de FSB diferentes y con velocidades de entre 266Mhz y 450Mhz. 
- FSB 66Mhz - 266Mhz, 300Mhz y 333Mhz. 
- FSB 100Mhz - 350Mhz. 400Mhz y 450Mhz. 

También, y en un intento por dominar totalmente el mercado cubriendo el espectro de ordenadores más económicos, Intel introduce en 1.998 la gama Celeron. 

En agosto de 1998 Intel saca al mercado una nueva gama de procesadores económicos, denominados Intel Celeron, denominación que llega hasta nuestros días. 
La principal finalidad de esta gama fue y es la de ofrecer procesadores al bajo precio para frenar el avance de AMD. 
En esta fecha, Intel lanza el primer Celeron, denominado Covington. 
Este procesador no era otra cosa que un Pentiun II a 266 o a 300Mhz, pero sin memoria Caché L2. 
Tenían una velocidad superior a los MMX, pero su rendimiento efectivo era bastante pobre, por lo que después de un éxito inicial (basado sobre todo en la fuerza de la marca, más que en las cualidades del producto), Intel se planteó su sustitución. 

Por su parte, AMD no respondió a la salida de los Intel Pentium II hasta mayo de 1.998, con la salida al mercado del nuevo AMD K6-2. 
Este procesador siguió utilizando el socket 7 en las versiones de hasta 550Mhz y el socket Súper7, que permitía el uso de AGP. 
En general, los Mendocinos eran más rápidos en accesos a caché y tenían un excelente rendimiento en operaciones de coma flotante frente a los K6-2, pero estos tenían una mayor velocidad de acceso a memoria y un mejor desempeño multimedia, debido sobre todo a la utilización de un FSB a 100Mhz y al conjunto de instrucciones 3DNow!, que con las debidas actualizaciones y mejoras sigue utilizando AMD en la actualidad. 

La gama de AMD K6-2 iba desde los 233Mhz hasta los 550Mhz, con una caché L1 de 64Kb (32 para instrucciones y 32 para datos, en acceso exclusivo). 

Este procesador, de un gran éxito comercial, afianzó las bases de AMD y permitió el posterior desarrollo de los AMD Athlon. 


Pentium III (1999 hasta 2003)

En febrero de 1999 Intel lanza el sustituto del Pentium II, el Pentium III. 
Entre 1999 y 2003 se produjeron Pentium III en tres modelos diferentes: 

Katmai: De diseño muy similar al Pentium II, introduce el juego de instrucciones SSE, que ya no implica la deshabilitación de la unidad de coma flotante para poder realizar las funciones multimedia, tal como ocurría con MMX, así como un controlador mejorado de caché. 
El Pentium III Katmai utilizaba el mismo Slot 1 que los Pentium II, pero se fabricaron con unos FSB de 100Mhz y de 133Mhz. 
En un principio sus frecuencias eran de 450Mhz y 500Mhz, y en mayo de 1.999 salieron al mercado los Katmai de 550Mhz y 600Mhz. 

Coppermine:A finales de 1.999 sale al mercado la versión Coppermine. 
Esta versión incluye un aumento de caché L2 hasta los 256Kb. 
Esta serie utiliza tanto el Slot 1 como el nuevo Socket 370, introducido en el mercado para estos procesadores. 
Incluso existía un adaptador para poder utilizar los Coppermone 370 en slot 1. 
Se fabricaron con unas velocidades de 500Khz, 533Mhz, 550Mhz, 600Mhz, 650Mhz, 667Mhz, 700Mhz y 733Mhz. 
En el año 2.000 salieron las versiones de 750Mhz, 800Mhz, 850Mhz, 866Mhz, 933Mhz y 1Ghz. 
Esta versión no ha muerto, ya que los primeras consolas Xbox lo utilizan en una versión especial de 900Mhz. 

Tualatin: Introducida en el año 2.001, se trata de la última serie de Pentium III, ya desarrollada solo para socket 370, con unas velocidades de 1.13Ghz, 1.2Ghz, 1.26Ghz y 1.4Ghz y un FSB de 133Mhz. 
Estos procesadores contaban con 256Kb de caché, y en la versión Pentium III-S (versión para servidores), con 512Kb. 
Durante este periodo, Intel también potenció la Gama Celeron, con una serie de mejoras introducidas en este, así como una serie de modelos diferentes: 

Celeron Coppermine-128: En Marzo de 2000, Intel pone finalmente a la venta los nuevos Celeron Coppermine-128, conocidos también como Celeron II. 
Estos procesadores estaban basados en los Pentium III Coppermine, pero con un FSB de 66Mhz y tan solo 128Kb de caché. 
Estos Celeron no destacaban precisamente por su rendimiento, que no supuso una gran mejora sobre el Mendocino.
Se fabricaron en velocidades que iban desde los 533Mhz a los 766Mhz. 

Celeron Tuatalin: En 2002 se introducen los Celeron Tuatalin, basados en los Pentium III del mismo nombre, a los que se les había reducido el FSB a 100Mhz, con la misma caché que los Pentium III, es decir, 256Kb. 

Las primeras versiones de este nuevo Celeron tenían una velocidades de 1Ghz y 1.1Ghz, y se les denomina como Celeron A para diferenciarlos de los Celeron Coppermine de esas velocidades. 
Posteriormente se sacaron al mercado versiones de 1.2Ghz, 1.3Ghz y 1.4Ghz. 

Athlon Classic: Aunque basado en parte en el K6-2, se le mejora notablemente el rendimiento de coma flotante al incorporar 3 unidades que pueden funcionar simultáneamente, incorporando también las instrucciones 3DNow!. También se eleva la caché L1 a 128Kb (64 para instrucciones y 64 para datos) y se le incorporan 512Kb de caché L2, montados externamente (al igual que los P-II y los P-III de slot 1). 
Pero quizás la mayor diferencia la marca la utilización del FSB compatible con el protocolo EV6 de Alpha. Este bus funciona en esta versión a 100Mhz DDR (Dual Data Rate), lo que lo convierte en 200Mhz efectivos. 

AMD Duron: La primera serie de AMD Duron, denominada Spitfire, sale al mercado a mediados de 2.000 para competir en el mercado de los procesadores económicos con los Intel Celeron, batiendo a estos en prestaciones desde el primer momento. 
Esta primera serie no es otra cosa que un Athlon Thunderbird al que se le ha reducido la caché L2 a 64Kb, en lugar de los 256Kb de los Athlon, pero manteniendo el resto de especificaciones, incluido el FSB EV6 de 100Mhz DDR (200Mhz efectivos). 
Tenían en esta versión una frecuencia de entre 600Mhz y 1.2Mhz, un extraordinario rendimiento en operaciones de coma flotante y contaban con las instrucciones 3DNow!. 

En noviembre del año 2.000 Intel saca al mercado el procesador Intel Pentium 4, que estuvieron durante unos años compartiendo mercado con los Pentium III y AMD Athlon y Athlon XP. 




El sistema consta de estaciones de trabajo (PC) dispersas conectadas entre sí mediante una red de área local (LAN).

Los usuarios tienen:
·  Una cantidad fija de poder de cómputo exclusiva.
·  Un alto grado de autonomía para asignar los recursos de su estación de trabajo.

Uso de los discos en las estaciones de trabajo:
Sin disco:
·  Bajo costo, fácil mantenimiento del hardware y del software, simetría y flexibilidad.
·  Gran uso de la red, los servidores de archivos se pueden convertir en cuellos de botella.

Disco para paginación y archivos de tipo borrador:
·  Reduce la carga de la red respecto del caso anterior.
·  Alto costo debido al gran número de discos necesarios.

Disco para paginación, archivos de tipo borrador y archivos binarios (ejecutables):
·  Reduce aún más la carga sobre la red.
·  Alto costo y complejidad adicional para actualizar los binarios.

Disco para paginación, borrador, binarios y ocultamiento de archivos:
·  Reduce aún más la carga de red y de los servidores de archivos.
·  Alto costo.
·  Problemas de consistencia del caché.

Sistema local de archivos completo:
·  Escasa carga en la red.
·  Elimina la necesidad de los servidores de archivos.
·  Pérdida de transparencia.

 

Se dispone de un conjunto de CPU que se pueden asignar dinámicamente a los usuarios según la demanda.
Los usuarios no disponen de estaciones de trabajo sino de terminales gráficas de alto rendimiento.
No existe el concepto de propiedad de los procesadores, los que pertenecen a todos y se utilizan compartidamente.

El modelo de pila es más eficiente que el modelo de búsqueda de estaciones inactivas.
También existe el modelo híbrido que consta de estaciones de trabajo y una pila de procesadores.


3.3.3 Hibrido
- Los trabajos interactivos se ejecutan en las estaciones de trabajo mientras que los no interactivos se ejecutan en la pila de procesadores.

-  El Modelo de las Estaciones de trabajo suele coincidir en la actualidad con la mayoría de las organizaciones.

-  Cuando se utiliza este modelo hay una serie de aspectos a tener en cuenta:
• La asignación de Procesos a los Procesadores.
• Los Algoritmos de Distribución de la Carga.
• La Planificación de los Procesos en un Sistema Distribuido.


Son necesarios algoritmos para decidir cuál proceso hay que ejecutar y en qué máquina.

Para el modelo de estaciones de trabajo:
·       Decidir cuándo ejecutar el proceso de manera local y cuándo es necesario buscar estaciones inactivas o no locales que tienen una conexión a la misma red pero fuera de ella.

Para el modelo de la pila de procesadores:
·       Decidir dónde ejecutar cada nuevo proceso respecto de la misma maquina que es la tabla(lista) de los procesos que se crean dentro de la maquina.


Aspectos del Diseño de Algoritmos de Asignación de Procesadores
Los principales aspectos son los siguientes:
Algoritmos deterministas vs. heurísticos.
Los algoritmos deterministas son adecuados cuando se sabe anticipadamente todo acerca del comportamiento de los procesos, pero esto generalmente no se da, aunque puede haber en ciertos casos aproximaciones estadísticas. Los algoritmos heurísticos son adecuados cuando la carga es impredecible.

Algoritmos centralizados vs. distribuidos.
Los diseños centralizados permiten reunir toda la información en un lugar y tomar una mejor decisión; la desventaja es que la máquina central se puede sobrecargar y se pierde robustez ante su posible falla.

Algoritmos óptimos vs. subóptimos.
Generalmente los algoritmos óptimos consumen más recursos que los subóptimos, además, en la mayoría de los sistemas reales se buscan soluciones subóptimas, heurísticas y distribuidas.

Algoritmos locales vs. globales.
Los algoritmos locales son sencillos pero no óptimos.
Los algoritmos globales son mejores pero consumen muchos recursos.

Algoritmos iniciados por el emisor vs. iniciados por el receptor.


Casi todos los algoritmos suponen que las máquinas conocen su propia carga y que pueden informar su estado:
-  La medición de la carga no es tan sencilla.
-  Un método consiste en contar el número de procesos (hay que considerar los procesos latentes no activos). Otro método consiste en contar solo los procesos en ejecución o listos.
-  También se puede medir la fracción de tiempo que la CPU está ocupada.
-  Otro aspecto importante es el costo excesivo en consumo de recursos para recolectar medidas y desplazar procesos, ya que se debería considerar el tiempo de CPU, el uso de memoria y el ancho de banda de la red utilizada por el algoritmo para asignación de procesadores.
-  Se debe considerar la complejidad del software en cuestión y sus implicancias para el desempeño.
-  Si el uso de un algoritmo sencillo proporciona casi la misma ganancia que uno más caro y más complejo, generalmente será mejor utilizar el más sencillo.

Se debe otorgar gran importancia a la estabilidad del sistema:
-  Las máquinas ejecutan sus algoritmos en forma asíncrona por lo que el sistema nunca se equilibra.

La mayoría de los algoritmos que intercambian información:
-  Son correctos luego de intercambiar la información y de que todo se ha registrado.
-  Son poco confiables mientras las tablas continúan su actualización, es decir que se presentan situaciones de no equilibrio.

 

3.5         Coplanificacion
·      Toma en cuenta los patrones de comunicación entre los procesos durante la planificación.
·      Debe garantizar que todos los miembros del grupo se ejecuten al mismo tiempo.
·      Se emplea una matriz conceptual donde:
·      Las filas son espacios de tiempo.
·      Las columnas son las tablas de procesos de los procesadores.
·      Cada procesador debe utilizar un algoritmo de planificación round robin:
·      Todos los procesadores ejecutan el proceso en el espacio “0” durante un cierto periodo fijo.
·      Todos los procesadores ejecutan el proceso en el espacio “1” durante un cierto periodo fijo, etc.
·      Se deben mantener sincronizados los intervalos de tiempo.
·      Todos los miembros de un grupo se deben colocar en la misma n° de espacio de tiempo pero en procesadores distintos.


La capacidad de procesamiento está distribuida entre varios computadores interconectados.
  • Las actividades del sistema tienen requisitos de tiempo.
  • Necesidad de sistemas distribuidos:
/Requisitos de procesamiento.
/Distribución física del sistema.
/Fiabilidad: Tolerancia a fallos.
  • Los sistemas distribuidos de tiempo real (SDTR) son complicados de realizar.
  • Se consideran sistemas débilmente acoplados.
  • Comunicación mediante mensajes
  • El tiempo de comunicación es significativo.
  • Ej. Sistemas multimedia, SCADA, aviónica, fabricación integrada, robótica.
  • Distintos tipos de requisitos temporales
  • Se consideran, fundamentalmente, sistemas críticos













No hay comentarios:

Publicar un comentario