Coloquio Flashcards

1
Q

¿Cuál es la relación proceso - SO?

A
  • Un programa solo se puede ejecutar si el SO crea un proceso
  • El SO intercala la ejecución de los procesos en el orden que maximice la utilización del procesador.
  • El SO ayuda a la creación de nuevos procesos por parte
    de los usuarios

Además: la secuencia de instrucciones del proceso se llama traza, el procesador ejecuta varios mensajes intercalando trazas secuencialmente

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

¿Cuál es el modelo de estados más básico?

A

Un estado puede estar en ejecución o no.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

¿Cómo es el modelo de colas para un proceso?

A

–Enter-> [Queue] -Dispatch-> [[Processor]] 1.-Exit-» 2.-Pause-> (a enter)
https://drive.google.com/file/d/1qzYzP9GWUZW1o2l5kQY_bCz5mGv8vO8-/view?usp=share_link

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

¿Cómo es el modelo de 5 estados?

A
  • Nuevo/new: el proceso existe pero su imagen está incompleta
  • Listo/ready (para ser ejecutado)
  • Bloqueado/blocked (esperando un evento)
  • Terminado/exit (esperando a que se elimine la imagen)
  • En ejecución/running
    https://drive.google.com/file/d/1m9oj8ax3MIuUTTd_l8yywvQup7dhDo9c/view?usp=share_link
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

¿Qué es un proceso suspendido?

A

Proceso suspendido: su imagen ha sido copiada al almacenamiento secundario. Puede estar bloqueado o listo a la vez.
La multiprogramación surge para mantener al procesador ocupado cuando los procesos esperan E/S, pero a veces la memoria está llena de procesos bloqueados y el procesador está libre. Entonces, se toma un proceso bloqueado y se lo suspende.

https://drive.google.com/file/d/15xSehDPRDkAooijcmG5_Go8LGqufow-S/view?usp=share_link

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

¿Qué es la planificación y para qué sirve?

A

Es una función para: repartir el tiempo del procesador de manera justa entre procesos, prevenir su inanición, reducir el overhead (aumentar la eficiencia) y permitir que se prioricen procesos si hace falta.

-Largo plazo: añadir procesos a la pool.
-Mediano plazo: añadir procesos a la memoria principal.
-Corto plazo: elegir qué procesos ejecutar.
-E/S: qué pedido de E/S atender.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

¿Cómo es la planificación de corto plazo?

A

-Se lo conoce como scheduler.
-Se ejecuta cuando ocurre cualquier evento (interrupciones, llamadas, señales).
-Objetivo: distribuir el uso del procesador para optimizar algo del sistema, que puede ser un requerimiento del usuario o del sistema. Se establecen prioridades.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

¿Cuáles son las políticas de planificación?

A

Ver tabla: https://drive.google.com/file/d/1AxxuBNFWOPgFYwQULEKrlHFvfwahGpnU/view?usp=sharing

-w: time spent waiting
-e: time spent running
-s: service time
-Modo de decisión preferente: se puede detener procesos en ejecución y llevarlos a listo nuevamente.
-Modo de decisión no preferente: los procesos en ejecución solo pueden pasar a terminado o bloqueado.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

¿Cómo es la planificación FCFS (primero en llegar, primero en servir)?

A

Es un sistema de cola puro, no preferente, que favorece procesos largos/ que necesitan mucho tiempo en el CPU.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

¿Cómo es la planificación Round Robin?

A

Es un sistema que se basa en un reloj que interrumpe cada cierto tiempo. Favorece a los procesos cortos y medianos.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

¿Cómo es la planificación SPN (primero el más corto)?

A

Es un sistema no preferente que puede causar inanición en los procesos más largos.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

¿Cómo es la planificación SRT (primero el menor tiempo restante)?

A

Es una versión preferente del SPN, basada en elegir al que le quede menos tiempo para ser completado.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

¿Cómo es la planificación HRRN (primero el de mayor tasa de respuesta)?

A

Se calcula R = (w+s)/s para cada proceso y se elige el de mayor.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

¿Cómo es la planificación realimentada?

A

Se penalizan a los procesos largos y antiguos, que pueden terminar en inanición.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

¿Cómo es la planificación justa?

A

El usuario asigna diferentes prioridades a los grupos de procesos y el tiempo en el CPU para cada uno se divide de acuerdo a eso y a su tamaño.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

¿Cuáles son las opciones para IPC (comunicación entre procesos)?

A

-Señales.
-FIFOs/Named Pipes.
-Colas de mensajes.
-Semáforos.
-Memoria compartida.
-Sockets.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

¿Cómo se comunican los procesos a través de señales?

A
  • Definición de señal: interrupción de software (utilizada por el SO) que se presenta a un proceso en ejecución excepcionalmente.
  • Hay diferentes prioridades y algunas señales se pueden ignorar.
  • Se pueden predecir e incorporar en el programa cómo responder antes señales.
  • Un proceso puede enviar una señal a otro proceso.
  • Ejemplos: errores de lógica o de memoria fuera de rango, finalización de procesos hijos o timer, llamadas a kill/raise, pedidos del usuario de frenar/detener programas, etc.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

¿Cómo se generan las señales?

A

1- Errores: un programa intenta algo inválido.
2- Eventos externos: operación E/S u otro proceso.
3- Pedidos explícitos: se usa una función como kill(), SIGSTOP, SIGINT, etc.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

¿Qué pasa cuando se genera una señal?

A

1- Queda pendiente (poco tiempo).
2- Se la presenta al proceso.
3- Se realiza una acción predefinida por defecto salvo que el proceso decida ignorarla o definir otra función de respuesta (definiendo un handler).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

¿Cómo se define un handler?

A

Lo define el programador con el resto del programa. El SO lo llama cuando detecta la señal. Puede volver normalmente tras modificar alguna bandera global o puede terminar un programa o llevar el control a otro punto del programa.

Se utiliza sigaction() según signal.h: int sigaction (int signum, const struct sigaction *restrict action, struct sigaction *restrict old-action).
-signum: ID de la señal,
- sighandler_t sa_handler: Su valor puede ser SIG_DFL,
SIG_IGN, o un puntero a una funcion que impementa el handler,
- sigset_t sa_mask: define un conjunto de señales a bloquear mientras el handler se ejecuta,
- int sa_flags: diferentes banderas para el comportamiento.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

¿Qué es un FIFO o Named Pipe?

A

Un FIFO es un archivo especial atemporal y con nombre, a diferencia de un pipe tradicional.
Procesos completamente independientes entre sí pueden usar su nombre para comunicarse por medio de él, pero solo si fue previamente abierto para la lectura y escritura (sino, SIGPIPE y EOF).
Es creado con mkfifo() de sys/stat.h.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

¿Qué cambió con la versión System V de Unix en IPC?

A
  • Aparecieron objetos IPC: colas de mensajes, semáforos, memoria compartida.
  • Cada uno tiene un ID único asociado, que permite que el kernel lo identifique.
  • Para acceder a ellos, hay que verificar permisos de acceso como los de los archivos.
  • Incluyen una estructura ipc_perm: ID para el usuario dueño y creador de procesos, modo de acceso, ID de objeto.
  • con ftok(), se obtiene del kernel el ID de objeto IPC.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

¿Cómo funciona una cola de mensajes?

A

-Los procesos pueden escribir mensajes que serán leídos por otros.
-El SO tiene una cola msgque, en la que cada elemento apunta a un msgid_ds.
-Cada mensaje es una estructura msgbuf (mtype o etiqueta y mtext o string del contenido) y tiene un ID que permite que caulquier proceso lo seleccione.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

¿Cómo se crea o accede a una cola de mensajes?

A

Se la puede crear o acceder a ella con msgget(key, msgflg), donde key es el ID devuelto por ftok() y msgflg define su comportamiento.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q

¿Cómo se escribe en la cola de mensajes?

A

Se usa msgsnd():
-msqid es el resultado de msgget,
-msgp es el contenido a cargar,
-msgsz es el tamaño,
-msgflg es 0 si se quiere una llamada bloqueante e IPC_NOWAIT si se quiere descartar el mensaje si la cola está llena.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q

¿Cómo se lee la cola de mensajes?

A

Se usa msgrcv():
-id es el resultado de msgget,
-msgp es el contenido a leer,
-msgsz es el tamaño,
-msgtyp devuelve el mensaje más viejo de ese tipo o de cualquier tipo si es 0,
-msgflg es bloqueante salvo que sea IPC_NOWAIT.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
27
Q

¿Cómo se elimina una cola de mensajes?

A

Se necesita permiso de escritura.
Se usa msgctl:
-msqid es el identificador,
-cmd es IPC_RMID,
-msqid_ds es una estructura de control que se usa con otros cmd.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
28
Q

¿Qué es la memoria compartida?

A

La memoria compartida es un área en la que los procesos pueden escribir y leer información. Funciona como si múltiples procesos hubiesen llamado a malloc() y recibido el mismo espacio de memoria. Es el método IPC más rápido porque no involucra llamadas al sistema. La sincronización la realiza el programador y los procesos se acoplan/desacoplan.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
29
Q

¿Cómo se crea la memoria compartida?

A

Se usa shmget:
-key es lo obtenido con ftok()
-size es el tamaño de memoria deseado
-shmflg puede incluir IPC_CREAT que crea el segmento si no existía antes

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
30
Q

¿Cómo se conecta un segmento a un espacio de memoria compartida?

A

Se usa shmat:
-shmid es lo obtenido con shmget()
-shmaddr es la dirección de memoria pretendida o 0 (a discreción del SO)
-shmflg

Los hijos reciben los segmentos compartidos también.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
31
Q

¿Cómo se desconecta un segmento de la memoria compartida?

A

Se usa shmdt:
-shmaddr es la misma dirección que en shmat

No se destruye el segmento con esta función.

32
Q

¿Cómo se lee o escribe en memoria compartida?

A

Se puede usar cualquier función que lea o escriba a partir de un puntero.

33
Q

¿Cómo se destruye el área de memoria compartida?

A

Se usa shmctl:
-shmid es el identificador del segmento según shmget()
-IPC_RMID es una constante
-NULL

34
Q

¿Cómo funcionan los archivos mapeados en memoria?

A

Se carga una porción de un archivo en memoria. Se obtiene un puntero al espacio de memoria donde está mapeado ese archivo, y permite el acceso de lectura/escritura por múltiples procesos.

35
Q

¿Cómo se mapea un archivo en memoria?

A
  1. Se abre un archivo con fd = open(“mapfile”, O_RDWR)
  2. Se mapea con mmap:
    -devuelve un puntero
    -addr elige la dirección (o 0 elige solo)
    -len es la cantidad de bytes a mapear
    -prot es el tipo de acceso
    -flags
    -filedes es el descriptor de archivo
    -off es el offset en el archivo para comenzar a mapear
  3. Se accede mediante un puntero como en memoria compartida
  4. Se desmapea con munmap:
    -addr
    -len
36
Q

¿Qué es un socket?

A

Es una forma de IPC basada en un modelo cliente-servidor, en el cual el cliente conoce la dirección del servidor pero este no sabe de la existencia del cliente. Una vez que hay contacto, se pueden mandar y recibir datos, sin necesidad de diferentes interfaces de programación para cada protocolo.

37
Q

¿Qué tipos de sockets existen?

A

Según dónde están los dos procesos:
-Local si están en el mismo sistema
-Remota si están en diferentes sistemas
Según la clase de socket:
-Unix
-Internet
-X25
-Raw

38
Q

¿Qué tipos de protocolos existen?

A

-Protocolos basados en caracteres
-Protocolos basados en paquetes: hay un wrapper que encapsula a los datos.
Los sockets incluyen a los dos tipos.

39
Q

¿Qué estilos de comunicación existen?

A

-SOCK_STREAM es orientado a conexión full duplex, con control de errores
-SOCK_DGRAM no tiene orden secuencial y acepta mensajes sin conexión, mientras se especifique la dirección cada vez
-SOCK_RAW es de bajo nivel y la app implementa el protocolo

40
Q

¿Cómo se crea un socket?

A

Se usa socket:
-domain: tipo de socket
-type: estilo de comunicación
-protocol: 0 por defecto según domain y type
Devuelve un fd.

41
Q

¿Qué hace la estructura sockaddr?

A

Es una estructura que almacena una dirección con las características del entorno en que se aplica. Es importante conocerla y controlarla desde el lado del servidor pero se puede dejar al criterio del SO con los clientes.
struct sockaddr:
-sa_family: tipo de dirección (AF_UNIX, AF_INET, etc)
-sa_data: valor de dirección

42
Q

¿Cómo se asocia una dirección al socket?

A

Cada familia de protocolos castea en sockaddr sus propios valores para sa_family y sa_data. Es opcional para clientes pero esencial para servidores.
Luego, se usa bind:
-sd: fd devuelto por socket()
-my_addr
-addrlen
Devuelve 0 si la llamada fue exitosa, -1 si no.

43
Q

¿Cómo funciona el modo Unix SIN conexión?

A

Se usan sendto() y recvfrom():
-sockfd
-buf a transmitir/de recepción (puntero a la primera dirección)
-len es sizeof(buf)
-flags
-des_addr/src_addr son estructuras sockaddr
-addrlen

44
Q

¿Cómo funciona el modo Unix CON conexión?

A

El servidor se liga al socket y espera la conexión. No hay que especificar las direcciones en cada envío.
Se usan listen/accept para gestionar una conexión y connect para solicitar una conexión:
-sockfd
-backlog (listen) es la cantidad de conexiones simultáneas admitidas
-addr y addrlen (accept/connect)
Accept devuelve un fd o -1. Connect devuelve 0 o -1.

45
Q

¿Qué hace la estructura sockaddr_in?

A

Es la estructura paralela a sockaddr pero para conexiones por internet. Parámetros:
-sin_family: AF_INET
-sin_port es el número de puerto
-sin_addr es la dirección de Internet, es una dirección IP en forma de estructura. Incluye a un uint32_t y se puede rellenar con inet_aton().
Se asocia a sockaddr con un casting y se usa el mismo bind().

46
Q

¿Qué es el orden de bytes?

A

El orden de bytes es la forma de almacenar cantidades. Puede ser en dos formatos diferentes, Big o Little Endian según qué byte (más o menos significativo) está en la posición más baja de memoria. También existe Middle Endian, las arquitecturas de procesador que pueden trabajar con las dos.

47
Q

¿Qué números de puerto y direcciones se usan?

A

Los servidores eligen un puerto y el SO se lo otorga o da error. El cliente puede pedir un puerto cualquiera (>1023).
No hace falta conocer direcciones IP para asociarlas, se puede usar directamente htonl(), y se toma cualquier dirección disponible en el host.

48
Q

¿Cómo se envían y reciben datos con socket con Internet?

A

Se pueden usar write/read clásicos, usando fd como socket descriptor. Si se quieren usar flags, send/recv.

49
Q

¿Cómo funciona el procesamiento de datos distribuido?

A

Se parte la función de cálculo para un servicio. Se distribuyen las bases de datos, el control de los dispositivos y el control de las interacciones en diferentes capas y dispositivos.

50
Q

¿Cómo puede distribuirse una aplicación cliente-servidor tipo?

A

Cliente:
-servicios de presentación
-lógica de aplicación
-lógica de base de datos (que envía una petición y recibe una rta)
-software de comunicaciones (IPC)
-sistema operativo del cliente
-plataforma de hardware
Servidor:
-lógica de base de datos (que recibe una petición y envía una rta)
-software de comunicaciones (IPC)
-sistema operativo del servidor
-plataforma de hardware

51
Q

¿Cómo se distribuye un cliente-servidor basado en una máquina central?

A

Cliente:
Servidor:
-lógica de presentación
-lógica de aplicación
-lógica de base de datos
-SGBD

52
Q

¿Cómo se distribuye un cliente-servidor basado en el servidor?

A

Cliente:
-lógica de presentación
Servidor:
-lógica de aplicación
-lógica de base de datos
-SGBD

53
Q

¿Cómo se distribuye un cliente-servidor cooperativo?

A

Cliente (grueso):
-lógica de presentación
-lógica de aplicación
Servidor:
-lógica de aplicación
-lógica de base de datos
-SGBD

54
Q

¿Cómo se distribuye un cliente-servidor basado en el cliente?

A

Cliente (grueso):
-lógica de presentación
-lógica de aplicación
-lógica de base de datos
Servidor:
-lógica de base de datos
-SGBD

55
Q

¿Cuáles son las ventajas y desventajas de los clientes gruesos?

A

Pros:
-menos carga en los servidores
-se saca provecho de las máquinas de los clientes
Contras:
-se tiene que actualizar las máquinas más seguido
-la capacidad de red necesaria es mayor
-hay que actualizar las aplicaciones de cliente más seguido

56
Q

¿Qué es el caché de archivos en sistemas distribuidos?

A

Se guardan copias de los registros a los que se accedió recientemente.
Para:
-descongestionar la red
-acceder menos veces a servidores remotos

57
Q

¿Qué es la consistencia en el caché de archivos en sistemas distribuidos?

A

Es cuando los sistemas locales tienen copias exactas de los datos del sistema remoto.
Se usa el bloqueo para que no se modifique al mismo tiempo el mismo archivo.
Hay que sobre todo evitar que el servidor distribuya datos obsoletos a múltiples clientes.

58
Q

¿Qué es el sistema Sprite para la consistencia del caché de archivos?

A

-No hay restricciones para la lectura
-Cuando un proceso abre un archivo para escritura, se actualiza y se notifica a los lectores de que sus copias ya no son válidas.

59
Q

¿Qué es el middleware?

A

El middleware es una capa de software que actúa como intermediario entre los sistemas operativos, las aplicaciones y las bases de datos. Proporciona servicios y funciones para facilitar la comunicación, la interoperabilidad, la gestión de transacciones, la seguridad y otros aspectos en sistemas de software distribuidos y heterogéneos. Permite que los clientes y los servidores se enlacen sin importar las distintas interfaces, uniformando los métodos de acceso. Las aplicaciones operan sobre una interfaz uniforme de programación (API).

60
Q

¿Cómo se comunican procesos remotos?

A

No se puede usar la memoria principal, entonces se basa en send(addr,&ptr) y receive(addr,&ptr), que a su vez pueden ser bloqueantes o no. Hay dos opciones:
-paso distribuido de mensajes
-llamadas a procesos/procedimientos remotos

61
Q

¿Qué es la transmisión confiable?

A

El sistema de transmisión confiable asegura la entrega de mensajes mediante un protocolo de transporte que incluye funciones como control de errores, generación de ACK, retransmisión y ordenamiento de mensajes. En caso de fallo en la entrega, se notifica al transmisor. Por otro lado, un sistema que solo envía mensajes sin garantizar su entrega es más simple y flexible, pero si se requiere confirmación, la aplicación debe implementarlo por sí misma.

62
Q

¿Qué son las llamadas a procedimiento remoto?

A

Las llamadas a Procedimiento Remoto (RPC) permiten que programas en máquinas diferentes interactúen mediante llamadas y retornos a procedimientos simples. Es un enfoque ampliamente aceptado y facilita la portabilidad entre sistemas operativos. Funciona como un refinamiento del paso de mensajes fiable y bloqueante. El objetivo es que la llamada sea transparente para el usuario.

63
Q

¿Qué son las agrupaciones o clusters?

A

Las agrupaciones (Clusters) son una alternativa al Multiproceso Simétrico (SMP) para mejorar el rendimiento y la disponibilidad. Consisten en un conjunto de computadoras interconectadas que trabajan como un único recurso, creando la ilusión de ser una sola máquina. Cada elemento del cluster es un sistema completo que puede funcionar independientemente.

64
Q

¿Cuáles son las ventajas de las agrupaciones?

A
  • Escalabilidad total y incremental.
  • Alta disponibilidad, ya que el fallo de un nodo no afecta el servicio.
  • Mejor relación rendimiento/precio en comparación con máquinas grandes.
65
Q

¿Qué configuraciones de agrupaciones existen?

A
  • Agrupaciones Secundarias Activas: Cada equipo es un servidor separado, con sistemas que no comparten discos y requieren gestión para la copia constante de datos.
  • Nada Compartido: Varios servidores están conectados a discos comunes, con cada volumen asignado a un servidor único. En caso de falla, los volúmenes se transfieren a otro servidor.
  • Compartir Disco: Múltiples servidores acceden simultáneamente a los mismos discos, requiriendo bloqueo para garantizar el acceso único a los datos.
66
Q

¿Qué es la gestión de fallos como concepto de diseño de SO?

A
  • Una agrupación de alta disponibilidad proporciona una alta probabilidad de disponibilidad de recursos. En caso de fallo, el sistema operativo no garantiza el estado de las transacciones parcialmente ejecutadas. Una agrupación tolerante a fallos asegura la disponibilidad constante de recursos. La restauración automática puede generar ciclos difíciles de controlar.
  • Failover (resistencia a fallos) implica cambiar una aplicación y sus datos de un sistema fallido a un sistema alternativo.
  • Failback (restauración de fallos) es la restauración de aplicaciones y datos al sistema original una vez reparado.
67
Q

¿Qué partes involucra la computación paralela ?

A
  • Compilador paralelo: determina en tiempo de compilación qué partes de la aplicación pueden ejecutarse en paralelo, dependiendo del problema y del diseño del compilador.
    • Aplicaciones paralelas: se diseña la aplicación desde el principio, utilizando el paso de mensajes para mover datos. Es complicado pero puede ser muy beneficioso.
  • Computación paramétrica: Útil cuando el núcleo de la aplicación debe ejecutarse varias veces con diferentes parámetros, requiriendo una capa de herramientas para procesar y organizar datos y trabajos de manera efectiva.
68
Q

¿Cómo se comparan las agrupaciones y el multiprocesamiento simétrico (SMP)?

A
  • SMP es más fácil de gestionar y configurar, además de ocupar menos espacio físico y requerir menos potencia que una agrupación.
  • Las agrupaciones son mejores en escalabilidad incremental y total, y en disponibilidad.
69
Q

¿Cuáles son las principales arquitecturas de computadoras paralelas?

A
  • Memoria distribuida: Consiste en una colección de computadoras seriales (nodos) trabajando en conjunto para resolver un problema. Cada nodo tiene acceso a su propia memoria y puede acceder a la memoria de otros nodos mediante una red de comunicación de alta velocidad. Los datos se intercambian entre nodos como mensajes.
  • Memoria compartida: En esta arquitectura, múltiples procesadores comparten el acceso a un espacio de memoria global a través de un bus de memoria de alta velocidad. Generalmente se utilizan entre 2 y 16 procesadores debido a las limitaciones de velocidad impuestas por el bus de memoria compartida.
70
Q

¿Qué es la taxonomía de Flynn?

A

La Taxonomía de Flynn clasifica las computadoras, su arquitectura y sus sistemas operativos de acuerdo a la capacidad de un sistema de procesar uno o más flujos simultáneos de datos e instrucciones. Puede ser:
- SISD
- SIMD
- MISD
- MIMD

71
Q

¿Cómo funciona el SISD?

A

SISD (Single Instruction, Single Data): un solo flujo de instrucciones opera sobre un solo conjunto de datos. Es el tipo más simple y se encuentra en las computadoras convencionales.

72
Q

¿Cómo funciona el SIMD?

A

SIMD (Single Instruction, Multiple Data): una sola instrucción se aplica a múltiples datos simultáneamente. Ej: GPU.

73
Q

¿Cómo funciona el MISD?

A

MISD (Multiple Instruction, Single Data): poco común en la práctica, implica múltiples instrucciones operando sobre un solo conjunto de datos.

74
Q

¿Cómo funciona el MIMD?

A

MIMD (Multiple Instruction, Multiple Data): múltiples instrucciones se ejecutan en paralelo en diferentes conjuntos de datos. Ej: supercomputadoras, clústeres de computadoras.

75
Q

¿Cómo se resuelve el balance de carga en la programación paralela?

A

Balance de Carga: Distribuir tareas de manera equitativa entre los procesadores para evitar cuellos de botella y maximizar la utilización de recursos.
Bien cuando: misma tarea sobre distintos datos.
Mal cuando: tiempos de procesamiento muy diferentes.

76
Q

¿Cómo se resuelve la cantidad de comunicaciones en la programación paralela?

A

Minimización de Comunicaciones: Reducir la cantidad de datos transferidos entre procesadores para evitar la sobrecarga de la red y mejorar la eficiencia. El tiempo puede gastarse en computación, ocio o comunicación. Se usa la Superposición de Comunicación y Computación: Realizar cálculos mientras se espera la finalización de operaciones de comunicación para aprovechar al máximo los recursos.

77
Q
A