03 Flashcards
(4 cards)
Taxonomía de Flynn
- SISD (Single Instruction Single Data): modelo estándar de un procesador sin paralelismo
- SIMD: array processors. Ej: GPU
- MISD: no son usuales (procesar múltiples veces los mismos datos de forma determinística retorna el mismo resultado)
- MIMD: se divide en dos modelos:
- Multiprocessors (?): con memoria y/o clock compartidos
- Multicomputers: sin memoria ni clock compartidos, lo que implica que nosotros nos tenemos que encargar del sincronismo.
Virtualización
La virtualización surge a partir de la necesidad de independencia real entre varios recursos. Básicamente se trata de una expansión de la abstracción lograda mediante threads, donde uno puede pretender que cada thread corre en su propia CPU, donde ahora hay interés por extender esa misma abstracción también a otros recursos. Una de las razones más importantes para introducir virtualización en la década de los 70s fue para poder correr software legacy en sistemas nuevos.
¿Qué opciones conocemos de virtualización?
Las dos opciones que conocemos de virtualización son las Virtual machines y los contenedores.
Las máquinas virtuales corren sobre un hypervisor, que a su vez corre sobre un sistema operativo. Este hypervisor abstrae la arquitectura de hardware subyacente, permitiendo que sobre él corran sistemas operativos completos. Esto provee un excelente aislamiento, pero tiene la desventaja de que ocupa mucho espacio habiendo cosas duplicadas por correr un sistema operativo dentro de otro.
El enfoque de contendores, en cambio, se maneja con un container engine que también corre sobre un sistema operativo, pero que permite utilizar herramientas del SO host, logrando un mejor rendimiento de los recursos.
Arq. multiprocessing
La arq. multiprocessing puede ser simétrica o asimétrica. La última ya no se usa, porque fue demostrado que es mucho más eficiente la simétrica, en la que hay un bus que posibilita que todos los procesadores se conecten con todos los bancos de memoria. En la arq. asimétrica, en cambio, hay procesadores que tienen acceso más directo a determinados bancos de memoria que otros. Si bien la ventaja de la arquitectura simétrica está clara, hay que tener en cuenta que el acceso de los distintos procesadores a los distintos bancos de memoria exige el uso de operaciones costosas. Es aquí donde entran en juego los conceptos de UMA y NUMA.
- UMA (Uniform memory access) indica que el acceso a cualquier banco de memoria será igual para cualquier procesador.
- NUMA, en cambio, indica que cada procesador tendrá control sobre un banco de memoria, y cualquier otro procesador que quiera acceder a su banco de memoria, deberá entonces pasar por el procesador que lo controla. En este caso, el procesador sería el ente que se encarga de manejar la sincronización de acceso al banco de memoria. NUMA es lo que se utiliza hoy día.