La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Ayudantía 3: Procesos y threads

Presentaciones similares


Presentación del tema: "Ayudantía 3: Procesos y threads"— Transcripción de la presentación:

1 Ayudantía 3: Procesos y threads
UTFSM - Sistemas Operativos Ayudantía 3: Procesos y threads

2 Ayudantía Sistemas Operativos - http://villaseca.wordpress.com
Contenido Process/threads Scheduling Context switch Comunicación: Productor consumidor Inter-Process communication (IPC) Remote Procedure Calls (RPC) Remote Method Invocation (RMI) Ayudantía Sistemas Operativos -

3 Ayudantía Sistemas Operativos - http://villaseca.wordpress.com
Preguntas de procesos ¿Qué es un proceso? ¿y un trabajo? Un programa en ejecución. ¿Qué es el PCB? Ayudantía Sistemas Operativos -

4 Ayudantía Sistemas Operativos - http://villaseca.wordpress.com
Conceptos Proceso: Program counter Stack Data Y por debajo (PCB): Estado Registros (CPU) Scheduling Memoria (límite de memoria pedida) Usuarios Archivos abiertos Ayudantía Sistemas Operativos -

5 Ayudantía Sistemas Operativos - http://villaseca.wordpress.com
Ejercicios de fork() Explicación Ejercicio: Indicar pid, getppid(), getpid() de los casos que aparecerán en la pizarra. Ayudantía Sistemas Operativos -

6 Características de un thread
Un thread tiene acceso directo a la sección de data de un proceso, un proceso tiene una copia de la sección de data del proceso padre. Los threads se pueden comunicar con otros threads del mismo proceso, los procesos deben utilizar “inter-process communication”. Los threads casi no tienen overhead, los procesos sí. Un thread se crea altiro, un proceso debe copiar el proceso padre. Un thread puede controlar otros threads, un proceso sólo puede ser controlado por su proceso padre. Ayudantía Sistemas Operativos -

7 Ayudantía Sistemas Operativos - http://villaseca.wordpress.com
Preguntas de contexto ¿Qué 2 ventajas tiene un thread sobre múltiples procesos? ¿y una desventaja?  Los threads son baratos de crear y destruir.  Usan pocos recursos (no tienen espacios de memoria separados complétamente).  Deben confiar entre sí para no dañar la memoria compartida. Ayudantía Sistemas Operativos -

8 Recursos de threads y procesos
¿Qué recursos se usan cuando se crea un proceso?  Se colocan las instrucciones del programa y la “data” en la memoria, además de almacenar el/los threads. El código también se puede colocar en memoria. ¿Qué recursos se usan cuando se crea un thread?  Se debe crear un contexto, incluyendo una ubicación para almacenamiento de registros durante un cambio de contexto, y un stack local para almacenar las llamadas a procedimientos, valores de retorno y direcciones de retorno, además de almacenamiento local paralelo del thread. Ayudantía Sistemas Operativos -

9 Ayudantía Sistemas Operativos - http://villaseca.wordpress.com
Preguntas de contexto ¿Qué es un cambio de contexto?  El tiempo necesario para cambiar de un proceso a otro. Indique las distintas maneras de “crear-nuevo-proceso”  El padre sigue ejecutándose, el padre deja de ejecutarse hasta que terminen los hijos, padre e hijos comparten todas-algunas-ninguna de las variables. Ayudantía Sistemas Operativos -

10 Preguntas de scheduling (planificación)
¿Qué hace el planificador a largo plazo?  Determina qué trabajos pertenecen a la lista de trabajos corriendo/esperando. ¿Qué hace el planificador a corto plazo?  Determina cuál de los trabajos correrá en el próximo burst del CPU. ¿Cuál planificador tiene que ser el más rápido, para no desperdiciar recursos?  El de corto plazo. Ayudantía Sistemas Operativos -

11 Productor-consumidor
Describa el problema del productor-consumidor  Un consumidor no podrá ver un mensaje hasta que el productor lo haya hecho, el productor no puede hacer un mensaje si el buffer está lleno. Ayudantía Sistemas Operativos -

12 Productor-consumidor
Implementación (compartiendo memoria): #define BUFFER_SIZE 3 typedef struct { . . . } item; item buffer[BUFFER_SIZE]; int in = 0; int out = 0; Ayudantía Sistemas Operativos -

13 Productor-consumidor
while (true) { //Hacer un mensaje item = producirMensaje(); //No producir si buffer esta lleno while ( ((in + 1) % BUFFER_SIZE ) == out); //Meter mensaje en buffer buffer[in] = item; //Setear proximo elemento in = (in + 1) % BUFFER_SIZE; } while (true) { // No hacer nada, no hay mensajes while (in == out); // Consumir un mensaje item = buffer[out]; //Indicar posicion libre en buffer out = (out + 1) % BUFFER SIZE; return item; } Ayudantía Sistemas Operativos -

14 Ayudantía Sistemas Operativos - http://villaseca.wordpress.com
Ejercicio ¿Cuánto buffer puede usar el productor?  n-1 items. Modificar solución anterior para que use todo el buffer.  Agregando un arreglo compartido que indique posiciones libres del buffer, para así no comparar el último mensaje consumido con el último producido. Ayudantía Sistemas Operativos -

15 Comunicación entre procesos
Primitivas: enviar, recibir Directa: Links automáticos. Links son de a pares de procesos. Unidireccionales o bidireccionales. Indirecta: Existen casillas de correo únicas. Comunicación entre procesos se hace compartiendo la casilla. Varios procesos pueden compartir una casilla. Ayudantía Sistemas Operativos -

16 Ejercicio IPC indirecto (casillas de correo)
Un proceso P quiere esperar 2 mensajes, uno de la casilla A y uno de la casilla B. ¿Qué secuencia de enviar-recibir se debiera ejecutar? Si consideráramos mensajería sincrónica (una operación recibir hace que un proceso espere hasta que la casilla deje de estar vacía), idee un sistema que permita saber cuando una casilla está vacía. Recordar que hay bloqueo. ¿Y cómo se haría con mensajería asincrónica? Recordar que no hay bloqueo. Ayudantía Sistemas Operativos -

17 Otros métodos de comunicación
Sockets Serialización Remote procedure calls (RPC) Stubs: Un prototipo del procedimiento/función. Marshalling: Traspasar los parámetros a la función que corresponde. Existe un daemon. Remote method invocation (RMI) Stub Llamada a un objeto remoto. Ayudantía Sistemas Operativos -


Descargar ppt "Ayudantía 3: Procesos y threads"

Presentaciones similares


Anuncios Google