Multitasking y Comunicaciones Conceptos. Mecanismos de sincronización. IPCs. Problemas clásicos. Comunicaciones. Flashcards

(30 cards)

1
Q

Multithreading:
Qué recursos comparte? Cuáles son los mecanismos de sincronización? Cuáles son las características clave?

A

Recursos Compartidos
● Heap
● Data Segment
● File Descriptors
● Code Segment (read-only)

Sincronización
Soporte threading del SO (pthread-mutex, etc)
● Soporte threading del runtime (threads Java, .Net, etc)
● Inter Process Communication (IPC)

Características clave
● Sencillo compartir información entre threads.
● Alto acoplamiento entre componentes del sistema.
● Escasa estabilidad => 1 thread defectuoso afecta todo el sistema.
● Escalabilidad muy limitada.

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

Multiprocessing:
Qué recursos comparte? Cuáles son los mecanismos de sincronización? Cuáles son las características clave?

A

Recursos Compartidos
● Code Segment (read-only)
● InterProcess Communication (IPCs):
○ Signals
○ Shared Memory
○ Sockets

Sincronización
○ Pipes / Fifos
○ Semáforos

Características clave
● No es trivial compartir información entre procesos.
● Componentes separados, en general simples.
● Más escalable y más estable que multi-threading.
● Sin tolerancia a fallos de hardware, sistema operativo, etc.

CHrome le gana a firefox gracias a pasar a multiprocessing. Firefox crasheaba con tantas ventanas porq eran hilos

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

Multicomputing:
Qué recursos comparte? Cuáles son los mecanismos de sincronización? Cuáles son las características clave?

A

Recursos Compartidos
● Ninguno

Sincronización
● Mensajes Ad-Hoc entre Computadoras
=> necesidad de implementar mecanismos de sincronización.

Características clave
● Comunicación de red => problemas por limitaciones de ancho de banda,
latencia y pérdida de mensajes.
● Comunicación entre procesos: compleja y central al diseño del sistema.
● Alta escalabilidad y tolerantes a fallos.

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

Cuáles son las propiedades de programas concurrentes?

A

Se analizan para ver si un algoritmo es bueno:

Safety properties (siempre verdadera - invariante)
● Exclusión mutua
● Ausencia de deadlocks

Liveness properties (eventualmente verdadera)
● Ausencia de starvation
● Fairness

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

Asegurar estado safety de propiedades de un sistema se transforma en un pilar
de la teoría de concurrencia. Cómo se puede asegurar?

A

Basada en Algoritmos:
Sin existencia de abstracciones
especiales.
· Condiciones lógicas simples para
asegurar el cumplimiento de cierta
Critical Section.

Basada en abstracciones:
Basada en abstracciones provistas por
el SO.
· Permite construir mecanismos
compuestos por combinaciones de las
mismas.

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

Qué ejemplos hay de safety basado en algoritmos? qué definiciones son importantes?

A

Algoritmos de espera: Dekker, Lamport (del panadero), Peterson, etc.
Busy-Waiting: responsable de la mayoría de los problemas de performance
en sistemas concurrentes.
● Spin-lock: caso más simple de Busy-Wait ( while (flag); )

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

Cómo funciona el algoritmo de peterson para 2 procesos?

A

Proceso 0:
bool flag[2] = {false, false};
int turn;
P0: flag[0] = true;
turn = 1;
while (flag[1] && turn == 1);
/* critical section code */
flag[0] = false;

Proceso 1:
P1: flag[1] = true;
turn = 0;
while (flag[0] && turn == 0) ;
/* critical section code */
flag[1] = false;

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

Qué ejemplos hay de safety basado en abstracciones?

A

Operaciones atómicas: Mecanismos provistos por un lenguaje para
actualizar variables/objetos sin utilizar mecanismos de sincronización
○ Contadores atómicos de tipos POD (int, char, double, etc.)
○ CAS (Compare and Swap): Operación por excelencia para actualizar
contenedores de forma segura en ambientes multithreading.

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

Qué características tienen los semaforos?

A

Variable entera utilizada para acceder a
recursos compartidos (e.g. Shared Mem)
● El mismo queda definido por los valores que
puede adoptar (e.g. S = {0,1,2})
● Operaciones válidas:
○ signal (P): Incrementa el valor de S
○ wait (V): Decrementa el valor de S
● Mutex (S = {0,1})
○ Utilizado para acceder a secciones
críticas

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

Qué son los monitores?

A

Tnego recursos que quiero compartir pero no quiero que se accedan desordenadamente, entonces las ingreso en un monitor que genera una cola de tareas para q sea sincronizado. Normalmetne se usaba clases como en java

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

Qué son las condition variables?

A

Ejemplo práctico de un monitor
● Mutex debe ser adquirido antes de realizar una operación
● Operaciones válidas:
○ wait: Bloquea al proceso hasta que otro proceso lo despierte
○ notify / notify_all: Despierta a un proceso / todos los procesos
esperando que se cumpla una condición

Ejemplo:
Proceso N°1
cv.acquire()
while not an_item_is_available():
cv.wait()
get_an_available_item()
cv.release()

Proceso N°2
cv.acquire()
make_an_item_available()
cv.notify() / cv.notify_all()
cv.release()

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

Las condvars hace busy wait? Cómo hacen?

A

No, Usan una syscall que hace que un proceso esté durmiendo y se despierte, sin necesidad de que esté running todo el tiempo

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

Como funcionan las barreras?

A

N threads/procesos deben ejecutar M tareas
● Cada thread/proceso ejecuta su tarea y espera a que sus pares terminen
de hacer lo mismo
● Cuando todos los threads/procesos hayan terminado de ejecutar una
ronda de tareas, proceden a ejecutar una nueva ronda

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

Qué es un Rendezvous? (cita)

A

Un rendezvous es una primitiva de sincronización que permite que dos procesos concurrentes intercambien datos de forma coordinada.
Características
Es una sincronización entre dos tareas.
Permite que las tareas intercambien datos y coordinen su ejecución.
El proceso que solicita el rendezvous debe esperar en el punto de reencuentro hasta que el proceso llamado llegue allí.
Los procesos pueden intercambiar datos durante el rendezvous.
Los datos intercambiados corresponden a parámetros y resultados de una llamada.

Igual que la barrera pero usa una blockingqueue

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

Qué caracteristicas tienen los IPCs?

A

Inter-Process Communication

Permiten la comunicación entre dos o
más procesos
● Provistos por el SO
● Creación y destrucción exceden
la vida del proceso
○ Usuario es responsable de la vida
de los mismos
○ Proceso Launcher y Terminator para
administrar la vida de los mismos
● Usualmente identificados por nombre
● En Linux todos los IPCs son vistos como diferentes tipos de archivos

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

Qué comparaciones hay entre mecanismos de sincronización e IPCs?

A

Semáforo - Semaforo
?? - Shared memory
Monitor - File Lock
Barrera - ??
Rendezvous - Signal / Queue / Pipes / Fifos / Sockets

17
Q

Qué son las signals?

A

Existen 31 tipos distintos (kill -l)
● Cada proceso decide cuales handlear
(Ej. libcURL y SIGALRM)
● SIGSTOP y SIGKILL son la excepción
● Ejemplos de signals estándar
○ SIGINT y SIGTERM: Graceful Quit
○ SIGSEGV: Problemas en la memoria
○ SIGABRT: Code assertions
● Propagación de signals en threads. (Masks setting)

18
Q

Qué es el IPC Shares memory?

A

Mecanismo provisto por el SO (Linux) para
compartir recursos
● Abstracción inexistente en threads: heap entre
dos threads de un mismo proceso es compartido
● Su tamaño se define al ser creada
● Mutex es necesario solo si dos procesos no
pueden acceder a la memoria al mismo tiempo
(e.g. shared counter)

19
Q

Caracteristicas de los file locks? (ipc)

A

Control de acceso a un file descriptor
int flock(int fd, int operation);
● Existen dos tipos:
○ Shared lock (R): Read only lock.
Múltiples read locks permitidos
○ Exclusive lock (W): RW lock.
Sólo un exclusive lock a la vez por
File

20
Q

Caracteriticas de los Pipes y Fifos? (ipc)

A

Pasaje de información directa entre 2 procesos
● Linux: API de un archivo para la escritura/lectura
● Unnamed Pipes (Pipes)
○ Comunicación entre procesos padre e hijo
○ Dejan de existir al finalizar el proceso
● Named Pipes (FIFO)
○ Comunicación entre dos procesos cualesquiera
○ Viven en el SO por lo cual excede la vida del proceso
● ¿Cuál es el tamaño de un pipe?

21
Q

Qué son las Message Queues (System V)?

A

IPC
Procesos escriben / reciben bloques de bytes
● Campo mtype
○ Identifica el tipo de mensaje
○ Sender debe enviar mensajes con mtype > 0
○ Receptor con mtype = 0 recibe mensajes
sin importar el mtype
○ Caso esotérico: Receptor con mtype < 0
● Mensajes leídos son removidos de la cola
● Buffer size definido durante la creación

22
Q

Características de sockets?

A

Permite comunicar dos procesos a través
de un canal de comunicación (endpoint)
int socket(int domain, int type, 0);
● Domain ○ AF_UNIX - Unix socket ○ AF_INET / AF_INET6 - Network Socket ● Type (Protocolos de comunicación) ○ SOCK_DGRAM => UDP ○ SOCK_STREAM => TCP ○ SOCK_RAW => ??

23
Q

De qué se trata el problema productor consumidor?

A

Productores agregan paquetes en el buffer
● Consumidores extraen paquetes del buffer
● Situaciones de bloqueo
○ Productor intenta agregar un paquete
cuando el buffer está lleno
○ Consumidor intenta extraer un paquete
cuando el buffer está vacío
● Acceso al buffer debe ser sincronizado
● El buffer es acotado o infinito?

Relacionado con blocking queue

24
Q

De qué se trata el problema lector escritor?

A

Procesos intentan acceder a una memoria
compartida
● Dos tipos de procesos (Lectores y Escritores)
● Tipos de problemas definidos en función de las
propiedades fairness y starvation
○ Prioridad Lectores : Escritores esperan a que
lectores liberen recurso compartido
○ Prioridad Escritores : Lectores esperan a que
Escritores liberen recurso compartido
○ Lectores y Escritores acceden a recurso
compartido por tiempo limita

25
Cuales son las capas del modelo TCP/IP
Application Transport Internet Network Access Aplicaciones de usuario, representación de datos Comunicación punto a punto Lógica de transmisión de datos sobre la red Transferencia física confiable, libre de errores
26
Cuales son las capas del modelo OSI
Application Presentation Session Transport Network Data Link Physical Aplicaciones de usuario Representación de datos Manejo de conexiones y sesión Transferencia confiable, libre de errores Establecer, mantener y terminar conexiones. Transmisión Sincronización, control de errores y envío de frames Manejo del medio físico para transmitir bits
27
Cuántos bits tiene un datagrama ip?
32 bits
28
Cuál es la diferencia entre TCP y UDP?
TCP Orientado a conexión ● Asegura entrega y orden UDP Orientado a datos ● Sin garantías: best effort
29
Cuál es la diferencia entre Mensajes Sincrónicos vs Asincrónicos?
En mensajes sincronicos, el cliente se queda bloqueado esperando la respuesta, en cambio en los asincronicos no.
30