MUTEX. QUE ES CONCURRENCIA - MUTEX  Son el mecanismo que nos ayuda en la sincronización para proteger una sección crítica en nuestro código.  Estas.

Slides:



Advertisements
Presentaciones similares
GESTION DE PROCESOS.
Advertisements

Tabla de Contenido Concurrencia.
I.T.E.S.R.C. Romina Tamez Andrea Martínez Ma. De Lourdes Solís
T5-multithreading SO-Grado Q1.
Daniel Morillo Jorge Boscán Gregory Carrasco
POO en C++: Sintaxis En el .h debe aparecer la declaración de la clase: class NombreClase { private: // atributos y métodos privados public: // atributos.
Base de la biblioteca de threads a nivel usuario del proyecto SODIUM.
Aplicaciones Multihilo
Comunicación y sincronización entre procesos
Servidor de Batalla Naval.
Bloqueos Mortales Cecilia Hernández Bloqueos Mortales Definición Un proceso/hebra esta bloqueada cuando esta esperando por un evento que nunca ocurrirá.
Signal, kill, sigaction y máscara de señales
Concurrencia: Exclusión Mútua y Sincronización
Conceptos generales: Concurrencia: Existencia simultánea de varios procesos en ejecución. IMPORTANTE: EXISTENCIA SIMULTÁNEA NO IMPLICA EJECUCIÓN SIMULTÁNEA.
Comunicación y sincronización entre procesos Realizado por Kepa Bengoetxea Kortazar
Sincronización de Procesos Semáforos Emely Arráiz Ene-Mar 08.
Semáforos Cecilia Hernández
Ing Florencia Ferrigno Tecnicas Digitales 3
Unidad III Administración de procesos
Archivos.
Sistemas en tiempo real (STR)
Programación Orientada a Objetos usando CONSTRUCTORES DESTRUCTORES.
 El acceso concurrente a datos compartidos puede dar pie a inconsistencia de datos  Mantener la consistencia de los datos requiere mecanismos para asegurar.
Programming with POSIX* Threads Intel Software College.
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.
Sincronización de Procesos
Sincronización de Procesos
Tema 9.6: Sincronización de Procesos
Monitores Cabudare, noviembre de 2010 Universidad Fermín Toro
Desarrollador Profesional de Juegos Programación III Unidad III Mutex, Semáforos y Condicion de Sincronización Bajo Linux.
Programación secuencial vs programación concurrente
INFORMATICA III ESCUELA DE INGENIERIA ELECTRONICA DEPARTAMENTO DE SISTEMAS E INFORMATICA.
Sincronización de Procesos
Antivirus métodos de contagio:
Materia: Técnicas Digitales 3
Administrador de procesos
Programando con Hilos POSIX* Intel Software College.
Desarrollador Profesional de Juegos Programación III Unidad III Programación con Threads Bajo Linux.
 Un virus es una entidad biológica que para reproducirse necesita de una célula huésped. Cada partícula de virus o virión es un agente potencialmente.
Por Luis Esteban Monsalve Martínez
Desarrollador Profesional de Juegos Programación III Unidad II Trabajando con bloqueo de datos.
Desarrollador Profesional de Juegos Programación III Unidad II introducción a Mutex Secciones críticas.
Desarrollador Profesional de Juegos Programación III Unidad III Mutex, Semáforos y Condicion de Sincronización Bajo Linux.
 Un firewall es un programa de software o una pieza de hardware que ayuda a filtrar hackers, virus y gusanos que intentan llegar a su computadora a través.
UNIDAD 8 Lista Enlazada: Eliminar Deseamos eliminar un elemento llamado elem de la lista enlazada. Es posible que la variable ini sea modificada. main(){
Desventajas Poco eficiente: lectura y escritura en disco es lenta Necesita otro mecanismo de sincronización para acceder a los datos Son los procesos.
Resumen de Sistemas Operativos I Msc./Ing. Antonio Mena.
1 Tema 7: Concurrencia y Sincronización Sistemas Operativos.
Seguridad Informática. Índice ● Métodos de protección – Protección local ● Antivirus – ¿Qué es? – ¿Qué hace? – Protección perimetral ● Firewall – ¿Qué.
PROGRAMACIÓN ORIENTADA A OBJETOS SEGUNDA UNIDAD: “CLASES, OBJETOS Y MÉTODOS” IRVING YAIR SALAS CHÁVEZ ING. EN SISTEMAS COMPUTACIONALES - ITSLP.
Semáforos y Comunicación entre Procesos
SISTEMAS OPERATIVOS Sección Crítica.
Comunicación, Sincronización y Concurrencia de procesos
Jornadas técnicas del GUL
Conceptos Básicos de Programación
Paul Leger Procesos (capitulo 2) Paul Leger
Exclusión mutua de secciones
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.
Sincronización de Procesos
L.I. Gerardo Ortiz Rivera
Exclusión mutua Un Algoritmo Centralizado Algoritmo Descentralizado
PROCESOS COMENZAR.
Sincronización de procesos
BLOQUEO Y CANDADEO DE ENERGIAS
Sistemas Operativos Semáforos II.
COORDINACIÓN Y SINCRONIZACIÓN DE PROCESOS: 1.1. Concurrencia 1.2. Semáforos 1.3. Sección Critica 1.4. Bloqueos.
EJECUCION PARALELA THREADS Y FIBERS
¿Como bloquear un contacto? ejemplo:. ¿Cómo desbloquear tu número si te tienen bloqueado?
MONITORES INTEGRANTES: Arias Marcelo Tnt. Espín Roberto Tnt. Rosero Santiago.
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:

MUTEX

QUE ES CONCURRENCIA - MUTEX  Son el mecanismo que nos ayuda en la sincronización para proteger una sección crítica en nuestro código.  Estas secciones críticas serán los datos a los que se acceda de forma concurrente.  Los mutexes son buenos sólo para administrar la exclusión mutua para cierto recurso compartido o pieza de código.  Actua como candado Mutex actúa como un candado

ESTADOS DE CONCURRENCIA - MUTEX  Estado Abierto.  Elimina o abre el mutex  Si existe uno o varios hilos este se desbloquea exactamente 1 el resto espera bloqueado  Estado cerrado.  Intenta cerrar el mutex,si no esta cerrado se cierra todo en automático  Si esta cerrado el hilo se bloquea

FUNCIONES PARA MUTEX FunciónDescripción pthread_mutex_initInicializa una variable de tipo pthread_mutex_t pthread_mutex_destroyDestruye una variable mutex pthread_mutex_lockProtege la sección crítica (operación P) pthread_mutex_unlockLibera la protección de la sección crítica (op. V) pthread_mutex_trylockComo pthread_mutex_lock pero sin bloqueo

FUNCIONES PARA MUTEX pthread_mutex_init: inicializa una variable de tipo pthread_mutex_t Dos parámetros Puntero a una variable pthread_mutex_t (mutex) objeto atributo de mutex (attr) Se inicializa por defecto haciendo el segundo parámetro NULL Devuelve 0 si se ha podido inicializar el mutex. #include int pthread_mutex_init (pthread_mutex_t *mutex, const pthread_mutexattr_t *attr);  #include  pthread_mutex_t my_lock;  if (pthread_mutex_init(&my_lock, NULL)!=0)  perror(“No puedo inicializar my_lock”);

FUNCIONES PARA MUTEX  pthread_mutex_destroy: destruye la variable mutex El mutex no se destruye hasta que está completamente vacío (no hay threads en espera) Devuelve 0 si se ha podido liberar el mutex. #include int pthread_mutex_destroy (pthread_mutex_t *mutex);

FUNCIONES PARA MUTEX  pthread_mutex_lock: operación P de semáforos Código de la sección de entrada que protege la sección crítica Si el candado está cerrado, el thread que la invoca se suspende hasta que el candado quede libre Devuelve 0 si se ha podido bloquear el mutex. pthread_mutex_trylock: igual que pthread_mutex_lock pero no bloquea al proceso llamante si el candado está ocupado Devuelve 0 si se ha podido bloquear el mutex. #include int pthread_mutex_lock (pthread_mutex_t *mutex); #include int pthread_mutex_trylock (pthread_mutex_t *mutex);

FUNCIONES PARA MUTEX  pthread_mutex_unlock: operación V de semáforos Libera el candado cuando un thread termina su sección crítica Si hay algún thread suspendido en la cola del candado,despierta al primero. Devuelve 0 si se ha podido desbloquear el mutex. Ejemplo #include pthread_mutex_t my_lock; pthread_mutex_init(&mylock, NULL); pthread_mutex_lock(&my_lock); /* Sección crítica */ pthread_mutex_unlock(&my_lock);

EJEMPLO PRACTICO  Técnica utilizada por algunos virus (un mutex) para controlar el acceso a recursos (programas u otros virus) y evitar que más de un proceso utilice el mismo recurso al mismo tiempo. Esto dificulta la detección por parte de los antivirus. Los virus que utilizan mutex pueden incluir otros virus en su interior, al igual que lo hacen otros tipos de virus como, por ejemplo, los polimórficos.