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