Ayudantía 3: Procesos y threads

Slides:



Advertisements
Presentaciones similares
Sistemas Operativos Procesos.
Advertisements

Profesor: Rodrigo Sanhueza Figueroa
Teoría de Sistemas Operativos Procesos Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz
Unidad 2 – Gestión de Procesos
Programación de Clientes Especialidad en Base de Datos.
Universidad Central de Venezuela Procesos e IPC 2do. Semestre 2006.
SISTEMAS OPERATIVOS Contenido: Descripción del proceso proceso nulo estado del procesador imagen del proceso información del BCP Miguel Ángel Martínez.
Procesos Un proceso es un programa en ejecución. Modelo de procesos secuenciales. Abstracción del SO.
Desventajas Poco eficiente: lectura y escritura en disco es lenta Necesita otro mecanismo de sincronización para acceder a los datos Son los procesos.
Conceptos Generales del Internet Alumna: Veronica Padilla Fernández.
Subsistema de Planificación de Procesos en GNU/Linux.
Ejercicios sobre la tarjeta de red i+c: Investiga y contesta.
Microkernels - Introducción Sistemas Operativos 2 – Usac 2009.
Alexis Obregón Cogle Grado Asociado en Tecnología de Redes y Diseño de Aplicaciones.
Una estrategia para evitar la sucesiones repetidas de instrucciones convertir la secuencia en un procedimiento e invocarlo cada vez que se necesite.
PARTICIONES EN UN DISCO DURO Diagnóstico y Mantenimiento INTE 3020 Elena López 15/11/2013.
Curso de Python Clase 5 Dpto. Telemática CUJAE Curso
Internet Protocols (IPs)
Semáforos y Comunicación entre Procesos
Proceso: Una instancia de un programa en ejecución
Capítulo 5 Silberschatz Galvin
La Máquina de Generar Distribuidores ¡LA MEJOR HERRAMIENTA PARA GENERAR DISTRIBUIDORES y PATROCINAR ON LINE!
Estructuras de Control.
Hardware de Computador
Índice Parte II. La asignatura en acción Herramientas de comunicación 82 Correo 83 Mensajería 85 Rastreo de finalización 87 Filtros 89 Calificación de.
Antonio Reynoso Lobato 2002 A
Teoría de Sistemas Operativos Archivos
ROBERTO PINEDA FLORES. ALEXIS JULIAN VELAZQUEZ NAVA.
SISTEMAS OPERATIVOS Sección Crítica.
Olimpiadas Chilenas de Informática - Formación
Procesos Concurrentes
Programación Avanzada
Métodos y parámetros.
Superescalares Scheduling estático.
Algunas Características de C++ no presentes en C
Paul Leger Procesos Paul Leger
ADMINISTRACION DE LA MEMORIA
HILOS EN SISTEMAS DISTRIBUIDOS
Monitores Mecanismo sincronización de nivel más alto que semáforos Construcción a nivel de lenguaje de programación que controla el acceso a datos compartidos.
Correo Electrónico *Es un servicio gratuito en el que puedes enviar y recibir mensajes de manera instantánea a través de Internet, incluyendo fotografías.
Algunas Características de C++ no presentes en C
Skype de Office 365 Capacitador: Lic. Aceves Escobar Mario Atzin.
ESUCOMEX profesor presentación power builder Lautaro Cabezas
Computación Curso 2017.
Carpetas y archivos.
Gestión de Procesos José Ruiz, Eudald Gómez.
Qué son y características generales
MEMORIAS. Alba Lus, Esther Escobar, Laura Hierro, Raquel Fdez.
PROCESOS COMENZAR.
Almacenamiento El computador tiene 2 aspectos
Sincronización de Procesos
Funcionamiento del servicio de correo electrónico
SINCRONIZACIÓN DE PROCESOS
PROGRAMACIÓN 1 INTRODUCCIÓN
LENGUAJE C.
ESTRUCTURA DE LOS SISTEMAS OPERATIVOS.
Unidad 2 Estructuras ESCUELA DE COMPUTACIÓN.
Sistemas Operativos Componentes Ejecutivo de Tiempo Real.
Capítulo 3: procesos.
“Ponemos la mejor Tecnología al alcance de TI”
MC Beatriz Beltrán Martínez Verano 2018
Es un sistema de almacenamiento online donde se puede crear, compartir o guardar archivos.
WOK para investigadores: Researcher ID
ESTRUCTURA DE SISTEMAS OPERATIVOS Carbajal Rojas karla.
Informática Ingeniería en Electrónica y Automática Industrial
Propuesta para el desarrollo del juego Ballons
Escribe el nombre de tu proyecto acá
SISTEMAS OPERATIVOS En el mundo de la informática se denomina sistema operativo al programa, o conjunto de ellos, que gestiona los recursos físicos de.
Memoria estática versus dinámica con Estructuras
Hilos de Procesamiento. Hilos Concepto Beneficios Hilos a nivel kérnel y a nivel usuario Modelos multihilos Hilos de Solaris 2 Hilos de Java.
Transcripción de la presentación:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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