Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Protocolos para medios compartidos • Protocolo de actualización de 4 estados FIREFLY (MSE-I) • Protocolo de actualización de 4 estados DRAGÓN (MOES-I) Protocolos de Actualización Este protocolo posee los siguientes estados: • Modificado (M): significa que el bloque ha sido modificado únicamente en esta caché, la memoria principal tiene un valor anticuado, y este procesador es el responsable de actualizar la memoria principal cuando el bloque sea reemplazado. • Compartida (S): significa que potencialmente dos o más procesadores (incluyendo esta caché) tienen este bloque en su caché y que la memoria principal está actualizada. • Exclusiva (E): La línea de caché, que es consistente con la copia en memoria, ha sido leída. Protocolo de Actualización Firefly VM S E Acción Est. P1 Est. P2 Est. P3 Acc. Bus Datos x Acciones Procesador 1 Acciones Procesador 3 Acciones Procesador 2 Protocolo de Actualización Firefly VM S E Acción Est. P1 Est. P2 Est. P3 Acc. Bus Datos x P1 lee U E - - BusRd(-S) MP Acciones Procesador 1 Acciones Procesador 3 Acciones Procesador 2 Protocolo de Actualización Firefly VM S E Acción Est. P1 Est. P2 Est. P3 Acc. Bus Datos x P1 lee U E - - BusRd(-S) MP P1 lee U E - - - C1 Acciones Procesador 1 Acciones Procesador 3 Acciones Procesador 2 Protocolo de Actualización Firefly VM S E Acción Est. P1 Est. P2 Est. P3 Acc. Bus Datos x P1 lee U E - - BusRd(-S) MP P1 lee U E - - - C1 P1 escribe U M - - - C1 Acciones Procesador 1 Acciones Procesador 3 Acciones Procesador 2 Protocolo de Actualización Firefly VM S E Acción Est. P1 Est. P2 Est. P3 Acc. Bus Datos x P1 lee U E - - BusRd(-S) MP P1 lee U E - - - C1 P1 escribe U M - - - C1 P1 lee U M - - - C1 Acciones Procesador 1 Acciones Procesador 3 Acciones Procesador 2 Protocolo de Actualización Firefly VM S E Acción Est. P1 Est. P2 Est. P3 Acc. Bus Datos x P1 lee U E - - BusRd(-S) MP P1 lee U E - - - C1 P1 escribe U M - - - C1 P1 lee U M - - - C1 P1 escribe U M - - - C1 Acciones Procesador 1 Acciones Procesador 3 Acciones Procesador 2 Protocolo de Actualización Firefly VM S E Acción Est. P1 Est. P2 Est. P3 Acc. Bus Datos x P1 lee U E - - BusRd(-S) MP P1 lee U E - - - C1 P1 escribe U M - - - C1 P1 lee U M - - - C1 P1 escribe U M - - - C1 P3 lee U S - S BusUpd(S) C1 Acciones Procesador 1 Acciones Procesador 3 Acciones Procesador 2 Protocolo de Actualización Firefly VM S E Acción Est. P1 Est. P2 Est. P3 Acc. Bus Datos x P1 lee U E - - BusRd(-S) MP P1 lee U E - - - C1 P1 escribe U M - - - C1 P1 lee U M - - - C1 P1 escribe U M - - - C1 P3 lee U S - S BusUpd(S) C1 P3 lee U S - S - C3 Acciones Procesador 1 Acciones Procesador 3 Acciones Procesador 2 Protocolo de Actualización Firefly VM S E Acción Est. P1 Est. P2 Est. P3 Acc. Bus Datos x P1 lee U E - - BusRd(-S) MP P1 lee U E - - - C1 P1 escribe U M - - - C1 P1 lee U M - - - C1 P1 escribe U M - - - C1 P3 lee U S - S BusUpd(S) C1 P3 lee U S - S - C3 P1 escribe U S - S BusUpd(S) C1 Acciones Procesador 1 Acciones Procesador 3 Acciones Procesador 2 Protocolo de Actualización Firefly VM S E Acción Est. P1 Est. P2 Est. P3 Acc. Bus Datos x P1 lee U E - - BusRd(-S) MP P1 lee U E - - - C1 P1 escribe U M - - - C1 P1 lee U M - - - C1 P1 escribe U M - - - C1 P3 lee U S - S BusUpd(S) C1 P3 lee U S - S - C3 P1 escribe U S - S BusUpd(S) C1 P1 escribe U E - - BusUpd(S) C1 Acciones Procesador 1 Acciones Procesador 3 Acciones Procesador 2 Protocolo de Actualización Firefly VM S E Acción Est. P1 Est. P2 Est. P3 Acc. Bus Datos x P1 lee U E - - BusRd(-S) MP P1 lee U E - - - C1 P1 escribe U M - - - C1 P1 lee U M - - - C1 P1 escribe U M - - - C1 P3 lee U S - S BusUpd(S) C1 P3 lee U S - S - C3 P1 escribe U S - S BusUpd(S) C1 P1 escribe U E - - BusUpd(S) C1 P2 lee X - E - BusRd(-S) MP Acciones Procesador 1 Acciones Procesador 3 Acciones Procesador 2 Protocolo de Actualización Firefly VM S E Acción Est. P1 Est. P2 Est. P3 Acc. Bus Datos x P1 lee U E - - BusRd(-S) MP P1 lee U E - - - C1 P1 escribe U M - - - C1 P1 lee U M - - - C1 P1 escribe U M - - - C1 P3 lee U S - S BusUpd(S) C1 P3 lee U S - S - C3 P1 escribe U S - S BusUpd(S) C1 P1 escribe U E - - BusUpd(S) C1 P2 lee X - E - BusRd(-S) MP P1 escribe X S S - BusRd(S) MP Acciones Procesador 1 Acciones Procesador 3 Acciones Procesador 2 Protocolo de Actualización Firefly VM S E Acción Est. P1 Est. P2 Est. P3 Acc. Bus Datos x P1 lee U E - - BusRd(-S) MP P1 lee U E - - - C1 P1 escribe U M - - - C1 P1 lee U M - - - C1 P1 escribe U M - - - C1 P3 lee U S - S BusUpd(S) C1 P3 lee U S - S - C3 P1 escribe U S - S BusUpd(S) C1 P1 escribe U E - - BusUpd(S) C1 P2 lee X - E - BusRd(-S) MP P1 escribe X S S - BusRd(S) MP P3 lee X S S S BusUpd(S) C1 Acciones Procesador 1 Acciones Procesador 3 Acciones Procesador 2 Protocolo de Actualización Firefly VM S E Acción Est. P1 Est. P2 Est. P3 Acc. Bus Datos x P1 lee U E - - BusRd(-S) MP P1 lee U E - - - C1 P1 escribe U M - - - C1 P1 lee U M - - - C1 P1 escribe U M - - - C1 P3 lee U S - S BusUpd(S) C1 P3 lee U S - S - C3 P1 escribe U S - S BusUpd(S) C1 P1 escribe U E - - BusUpd(S) C1 P2 lee X - E - BusRd(-S) MP P1 escribe X S S - BusRd(S) MP P3 lee X S S S BusUpd(S) C1 P1 escribe Z M - - BusRd(-S) MP Acciones Procesador 1 Acciones Procesador 3 Acciones Procesador 2 Protocolo de Actualización Firefly VM S E Protocolo de Actualización Firefly Fallos y aciertos de escritura y lectura Fallo de lectura Fallo de escritura Acierto de lectura Acierto de escritura Caché que tiene el Fallo Otras cachés I -> E - I -> S S (2 o más) -> S M (solo 1) -> S E (solo 1) -> S Caché que tiene el Fallo Otras cachés I -> M - I -> S S (2 o más) -> S M (solo 1) -> S E (solo 1) -> S Caché que tiene el Acierto Otras cachés S -> S S (2 o más) -> S M -> M - E -> E - Caché que tiene el Acierto Otras cachés S -> S S (2 o más) -> S M -> M - E -> M - S -> E - El protocolo DRAGÓN (MOES-I) consta de 4 estados: • Modificado (M): significa que el bloque ha sido modificado únicamente en esta caché, la memoria principal tiene un valor anticuado, y este procesador es el responsable de actualizar la memoria principal cuando el bloque sea reemplazado. • Propietario (O): significa que potencialmente dos o más procesadores tienen este bloque en su caché, la memoria principal no está actualizada y este procesador es el responsable de actualizar la memoria principal cuando este bloque sea reemplazado en la caché. • Compartido (S): significa que potencialmente dos o más procesadores (incluyendo esta caché) tienen este bloque en su caché y que la memoria principal puede estar o no actualizada. • Exclusivo (E): la línea de caché tiene el mismo contenido que en memoria principal, y no está presente en ninguna otra caché. Protocolo de Actualización Dragón Protocolo de Actualización Dragón O Acción Est. P1 Est. P2 Est. P3 Acc. Bus Datos x Acciones Procesador 1 Acciones Procesador 3 Acciones Procesador 2 Acción Est. P1 Est. P2 Est. P3 Acc. Bus Datos x Protocolo de Actualización Dragón O Acción Est. P1 Est. P2 Est. P3 Acc. Bus Datos x P1 lee U E - - Bus Rd(S–) MP Acciones Procesador 1 Acciones Procesador 3 Acciones Procesador 2 Acción Est. P1 Est. P2 Est. P3 Acc. Bus Datos x Protocolo de Actualización Dragón O Acción Est. P1 Est. P2 Est. P3 Acc. Bus Datos x P1 lee U E - - Bus Rd(S–) MP P1 lee U E - - - C1 Acciones Procesador 1 Acciones Procesador 3 Acciones Procesador 2 Acción Est. P1 Est. P2 Est. P3 Acc. Bus Datos x Protocolo de Actualización Dragón O Acción Est. P1 Est. P2 Est. P3 Acc. Bus Datos x P1 lee U E - - Bus Rd(S–) MP P1 lee U E - - - C1 P1 escribe U M - - - C1 Acciones Procesador 1 Acciones Procesador 3 Acciones Procesador 2 Acción Est. P1 Est. P2 Est. P3 Acc. Bus Datos x Protocolo de Actualización Dragón O Acción Est. P1 Est.P2 Est. P3 Acc. Bus Datos x P1 lee U E - - Bus Rd(S–) MP P1 lee U E - - - C1 P1 escribe U M - - - C1 P1 lee U M - - - C1 Acciones Procesador 1 Acciones Procesador 3 Acciones Procesador 2 Acción Est. P1 Est. P2 Est. P3 Acc. Bus Datos x Protocolo de Actualización Dragón O Acción Est. P1 Est. P2 Est. P3 Acc. Bus Datos x P1 lee U E - - Bus Rd(S–) MP P1 lee U E - - - C1 P1 escribe U M - - - C1 P1 lee U M - - - C1 P1 escribe U M - - - C1 Acciones Procesador 1 Acciones Procesador 3 Acciones Procesador 2 Acción Est. P1 Est. P2 Est. P3 Acc. Bus Datos x Protocolo de Actualización Dragón O Acción Est. P1 Est. P2 Est. P3 Acc. Bus Datos x P1 lee U E - - Bus Rd(S–) MP P1 lee U E - - - C1 P1 escribe U M - - - C1 P1 lee U M - - - C1 P1 escribe U M - - - C1 P3 escribe U S - O Bus Rd(S),Upd C1 Acciones Procesador 1 Acciones Procesador 3 Acciones Procesador 2 Acción Est. P1 Est. P2 Est. P3 Acc. Bus Datos x Protocolo de Actualización Dragón O Acción Est. P1 Est. P2 Est. P3 Acc. Bus Datos x P1 lee U E - - Bus Rd(S–) MP P1 lee U E - - - C1 P1 escribe U M - - - C1 P1 lee U M - - - C1 P1 escribe U M - - - C1 P3 escribe U S - O Bus Rd(S),Upd C1 Acciones Procesador 1 Acciones Procesador 3 Acciones Procesador 2 Acción Est. P1 Est. P2 Est. P3 Acc. Bus Datos x P3 lee U S - O - C3 Protocolo de Actualización Dragón O Acción Est. P1 Est. P2 Est. P3 Acc. Bus Datos x P1 lee U E - - Bus Rd(S–) MP P1 lee U E - - - C1 P1 escribe U M - - - C1 P1 lee U M - - - C1 P1 escribe U M - - - C1 P3 escribe U S - O Bus Rd(S),Upd C1 Acciones Procesador 1 Acciones Procesador 3 Acciones Procesador 2 Acción Est. P1 Est. P2 Est. P3 Acc. Bus Datos x P3 lee U S - O - C3 P3 escribe U S - O Bus Upd(S) C3 Protocolo de Actualización Dragón O Acción Est. P1 Est. P2 Est. P3 Acc. Bus Datos x P1 lee U E - - Bus Rd(S–) MP P1 lee U E - - - C1 P1 escribe U M - - - C1 P1 lee U M - - - C1 P1 escribe U M - - - C1 P3 escribe U S - O Bus Rd(S),Upd C1 Acciones Procesador 1 Acciones Procesador 3 Acciones Procesador 2 Acción Est. P1 Est. P2 Est. P3 Acc. Bus Datos x P3 lee U S - O - C3 P3 escribe U S - O Bus Upd(S) C3 P2 lee U S S O Bus Rd(S) C3 Protocolo de Actualización Dragón O Acción Est. P1 Est. P2 Est. P3 Acc. Bus Datos x P1 lee U E - - Bus Rd(S–) MP P1 lee U E - - - C1 P1 escribe U M - - - C1 P1 lee U M - - - C1 P1 escribe U M - - - C1 P3 escribe U S - O Bus Rd(S),Upd C1 Acciones Procesador 1 Acciones Procesador 3 Acciones Procesador 2 Acción Est. P1 Est. P2 Est. P3 Acc. Bus Datos x P3 lee U S - O - C3 P3 escribe U S - O Bus Upd(S) C3 P2 lee U S S O Bus Rd(S) C3 P2 escribe U S O S Bus Upd(S) C2 Protocolo de Actualización Dragón O Acción Est. P1 Est. P2 Est. P3 Acc. Bus Datos x P1 lee U E - - Bus Rd(S–) MP P1 lee U E - - - C1 P1 escribe U M - - - C1 P1 lee U M - - - C1 P1 escribe U M - - - C1 P3 escribe U S - O Bus Rd(S),Upd C1 Acciones Procesador 1 Acciones Procesador 3 Acciones Procesador 2 Acción Est. P1 Est. P2 Est. P3 Acc. Bus Datos x P3 lee U S - O - C3 P3 escribe U S - O Bus Upd(S) C3 P2 lee U S S O Bus Rd(S) C3 P2 escribe U S O S Bus Upd(S) C2 P1 lee X E - - Bus Rd(S–) MP Protocolo de Actualización Dragón O Acción Est. P1 Est. P2 Est. P3 Acc. Bus Datos x P1 lee U E - - Bus Rd(S–) MP P1 lee U E - - - C1 P1 escribe U M - - - C1 P1 lee U M - - - C1 P1 escribe U M - - - C1 P3 escribe U S - O Bus Rd(S),Upd C1 Acciones Procesador 1 Acciones Procesador 3 Acciones Procesador 2 Acción Est. P1 Est. P2 Est. P3 Acc. Bus Datos x P3 lee U S - O - C3 P3 escribe U S - O Bus Upd(S) C3 P2 lee U S S O Bus Rd(S) C3 P2 escribe U S O S Bus Upd(S) C2 P1 lee X E - - Bus Rd(S–) MP P3 lee X S - S Bus Rd(S) C1 Protocolo de Actualización Dragón O Protocolo de Actualización Dragón Casos Particulares O Protocolo de Actualización Dragón Fallos y aciertos de escritura y lectura Fallo de lectura Fallo de escritura Acierto de lectura Acierto de escritura Caché que tiene el Fallo Otras cachés I -> E - I -> S S (1 o más) -> S M (solo 1) -> O O (solo 1) -> O Caché que tiene el Fallo Otras cachés I -> M - I -> O S (1 o más) -> S M (solo 1) -> S O (solo 1) -> S Caché que tiene el Acierto Otras cachés S -> S S (1 o más) -> S O (solo 1) -> O M -> M - E -> E - Caché que tiene el Acierto Otras cachés S -> O S (1 o más) -> S O (solo 1) -> O M -> M - E -> M - O -> O S (1 o más) -> S S -> M - O -> M - Esquemas de Coherencia basados en Directorios Protocolos basados en directorios • Directorio Centralizado o Protocolo de Mapeado Completo o Protocolo de Directorio Limitado • Directorio Distribuido o Protocolo con Directorios Jerárquicos o Protocolo de Directorio Encadenado Esquemas de Coherencia basados en Directorios Directorio Centralizado: • Fue el primer esquema propuesto (1976). • Consiste en un único directorio o tabla centralizada donde se guarda información sobre el lugar donde se encuentra cada copia de la caché. • Este directorio centralizado es normalmente bastante grande por lo que la búsqueda se realiza de forma asociativa. Esquemas de Coherencia basados en Directorios Directorio Centralizado: • La competencia por el acceso al directorio (contención), así como los largos tiempos de búsqueda, son alguno de los inconvenientes de este esquema. • Los protocolos de directorio centralizado suelen ser o de mapeado completo o con mapeado limitado que son dos protocolos que se explican más adelante. Esquemas de Coherencia basados en Directorios Directorio Distribuido: • Dos años después (1978) se propuso otro protocolo basado en la distribución del directorio entre las diferentes cachés. • En el directorio se guarda el estado de la caché así como su presencia. Esquemas de Coherencia basados en Directorios Directorio Distribuido: • El estado es local, pero la presencia indica qué cachés tienen una copia del bloque. • También hay dos protocolos típicos de mapeado distribuido que son los protocolos con directorios jerárquicos y los protocolos con directorios encadenados. Protocolos de Directorio Centralizado Protocolo de Mapeado Completo: • Mantiene un directorio en el cual cada entrada tiene un bit, llamado bit de presencia , por cada una de las cachés del sistema, se utiliza para especificar la presencia en las cachés de copias del bloque de memoria. • Cada entrada del directorio tiene un bit llamado bit de inconsistencia única. Cuando este bit está activado, sólo existe una caché con la copia de ese bloque, con lo que sólo esa caché tiene permiso para actualizar la línea. Protocolos de Directorio Centralizado Protocolo de Mapeado Completo: • Cada caché por su parte tiene dos bits en cada entrada de la caché. El primero es el bit de validación, e indica si la copia es válida o no. Si el bit es cero, indica que la copia no es válida, es decir, la copia se puede quitar de la caché. • El otro bit, llamado bit de privacidad, sirve para indicar si la copia tiene permiso de escritura, es decir, cuando este bit es uno entonces es la única copia que existe de esta línea en las cachés y por lo tanto tiene permiso para escribir. Protocolos de Directorio Centralizado Protocolo de Mapeado Completo: Protocolo de Mapeado Completo Acción Inc. Pre. A Val. A Priv. A Pre. B Val. B Priv. B Pre. C Val. C Priv. C Datos X Estado Inicial Protocolo de Mapeado Completo Acción Inc. Pre. A Val. A Priv. A Pre. B Val. B Priv. B Pre. C Val. C Priv. C Datos X PA lee X 0 1 1 0 0 0 0 0 0 0 MP Protocolo de Mapeado Completo Acción Inc. Pre. A Val. A Priv. A Pre. B Val. B Priv. B Pre. C Val. C Priv. C Datos X PA lee X 0 1 1 0 0 0 0 0 0 0 MP PC lee X 0 1 1 0 0 0 0 1 1 0 MP Protocolo de Mapeado Completo Acción Inc. Pre. A Val. A Priv. A Pre. B Val. B Priv. B Pre. C Val. C Priv. C Datos X PA lee X 0 1 1 0 0 0 0 0 0 0 MP PC lee X 0 1 1 0 00 0 1 1 0 MP PA escribe X 1 1 1 1 0 0 0 0 0 0 CA Protocolo de Mapeado Completo Acción Inc. Pre. A Val. A Priv. A Pre. B Val. B Priv. B Pre. C Val. C Priv. C Datos X PA lee X 0 1 1 0 0 0 0 0 0 0 MP PC lee X 0 1 1 0 0 0 0 1 1 0 MP PA escribe X 1 1 1 1 0 0 0 0 0 0 CA PC lee X 0 1 1 0 0 0 0 1 1 0 MP Protocolo de Mapeado Completo Acción Inc. Pre. A Val. A Priv. A Pre. B Val. B Priv. B Pre. C Val. C Priv. C Datos X PA lee X 0 1 1 0 0 0 0 0 0 0 MP PC lee X 0 1 1 0 0 0 0 1 1 0 MP PA escribe X 1 1 1 1 0 0 0 0 0 0 CA PC lee X 0 1 1 0 0 0 0 1 1 0 MP PB escribe X 1 0 0 0 1 1 1 0 0 0 MP Protocolos de Directorio Centralizado Protocolo de Directorio Limitado: • Para evitar el crecimiento cuadrático del mapeado completo es posible restringir el número de copias de cachés activas de forma simultánea de un bloque. • De esta forma se limita el crecimiento del directorio hacia un valor constante. Protocolos de Directorio Centralizado Protocolo de Directorio Limitado: • Supongamos que tenemos el directorio limitado a tan solo 2 punteros, que es lo que vendría a sustituir a los bits de presencia. • Ambos punteros están ocupados apuntando a copias válidas en dos cachés diferentes. • Ahora que una tercera caché quiere leer en esa misma línea. Protocolos de Directorio Centralizado Protocolo de Directorio Limitado: • Como no hay más punteros disponibles se produce lo que se llama un desalojo (eviction), que consiste en que la memoria invalida una de las cachés que utilizaban un puntero asignándole ese puntero que queda libre a la nueva caché. • Normalmente los procesadores suelen desarrollar su actividad local en zonas de memoria separadas de otros procesadores, con unos pocos punteros se puede mantener la actividad en el sistema sin que se produzcan desalojos y sin aumentar por tanto las latencias. Protocolos de Directorio Distribuido Protocolo de Directorio Jerárquico: • Dividen el directorio entre varios grupos de procesadores. • Los protocolos de directorio jerárquico se utilizan a menudo en arquitecturas que consisten en un conjunto de grupos de procesadores (clusters) conectados por algún tipo de red. Protocolos de Directorio Distribuido Protocolo de Directorio Jerárquico: • Cada cluster contiene un conjunto de procesadores y un directorio conectado a ellos. • Una petición que no puede ser servida por las cachés en un directorio, es enviada a otros clusters tal y como determina el directorio. Protocolos de Directorio Distribuido Protocolo de Directorio Encadenado: • Los protocolos de directorio encadenado mantienen una lista enlazada por punteros entre las cachés que tienen una copia de un bloque. • La lista se puede recorrer en un sentido o en los dos dependiendo de que tenga uno o dos punteros cada nodo. Protocolos de Directorio Distribuido Protocolo de Directorio Encadenado: • Una entrada en el directorio apunta a una caché con una copia del bloque correspondiente a esa entrada; esta caché a su vez tiene un puntero que apunta a otra caché que tiene también la copia, y así sucesivamente. • Por lo tanto, una entrada en el directorio contiene únicamente un único puntero que apunta a la cabeza de la lista. • Naturalmente las cachés deben incluir también uno o dos punteros, dependiendo del tipo de lista, además de los bits propios de estado. Protocolos de Directorio Distribuido Protocolo de Directorio Encadenado: Protocolos de Directorio Encadenado Acción MP apunta a: Cabecera Lista Cabecera apunta a: Datos desde Estado Inicial - MP - - Protocolos de Directorio Encadenado Acción MP apunta a: Cabecera Lista Cabecera apunta a: Datos desde Estado Inicial - MP - - PB lee X CB CB - MP Protocolos de Directorio Encadenado Acción MP apunta a: Cabecera Lista Cabecera apunta a: Datos desde Estado Inicial - MP - - PB lee X CB CB - MP PA lee X CA CA CB CB Protocolos de Directorio Encadenado Acción MP apunta a: Cabecera Lista Cabecera apunta a: Datos desde Estado Inicial - MP - - PB lee X CB CB - MP PA lee X CA CA CB CB PC escribe X CC CC - MP Protocolos de Directorio Encadenado Acción MP apunta a: Cabecera Lista Cabecera apunta a: Datos desde Estado Inicial - MP - - PB lee X CB CB - MP PA lee X CA CA CB CB PC escribe X CC CC - MP PB lee X CB CB CC CC Protocolos de Directorio Encadenado Acción MP apunta a: Cabecera Lista Cabecera apunta a: Datos desde Estado Inicial - MP - - PB lee X CB CB - MP PA lee X CA CA CB CB PC escribe X CC CC - MP PB lee X CB CB CC CC PA lee X CA CA CB CB Protocolos de Directorio Encadenado Acción MP apunta a: Cabecera Lista Cabecera apunta a: Datos desde Estado Inicial - MP - - PB lee X CB CB - MP PA lee X CA CA CB CB PC escribe X CC CC - MP PB lee X CB CB CC CC PA lee X CA CA CB CB PC escribe X CC CC - MP Multiprocesadores Fin Unidad 4
Compartir