1 / 17

Ayudantía 3: Procesos y threads

UTFSM - Sistemas Operativos. Ayudantía 3: Procesos y threads. Contenido. Process/threads Scheduling Context switch Comunicación: Productor consumidor Inter-Process communication (IPC) Remote Procedure Calls (RPC) Remote Method Invocation (RMI). Preguntas de procesos.

nitara
Télécharger la présentation

Ayudantía 3: Procesos y threads

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. 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 - http://villaseca.wordpress.com

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

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

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

  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-processcommunication”. • 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 - http://villaseca.wordpress.com

  7. 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 - http://villaseca.wordpress.com

  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 - http://villaseca.wordpress.com

  9. 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 - http://villaseca.wordpress.com

  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 - http://villaseca.wordpress.com

  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 - http://villaseca.wordpress.com

  12. Productor-consumidor • Implementación (compartiendo memoria): #define BUFFER_SIZE 3 typedefstruct { . . . } item; item buffer[BUFFER_SIZE]; int in = 0; intout = 0; Ayudantía Sistemas Operativos - http://villaseca.wordpress.com

  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; //Setearproximo 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; returnitem; } Ayudantía Sistemas Operativos - http://villaseca.wordpress.com

  14. 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 - http://villaseca.wordpress.com

  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. • Unidireccionales o bidireccionales. Ayudantía Sistemas Operativos - http://villaseca.wordpress.com

  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 - http://villaseca.wordpress.com

  17. Otros métodos de comunicación • Sockets • Serialización • Remoteprocedurecalls (RPC) • Stubs: Un prototipo del procedimiento/función. • Marshalling: Traspasar los parámetros a la función que corresponde. • Existe un daemon. • Remotemethodinvocation (RMI) • Stub • Llamada a un objeto remoto. Ayudantía Sistemas Operativos - http://villaseca.wordpress.com

More Related