Sincronizacion de procesos
|
|
|
- Alfredo Moreno Salinas
- hace 9 años
- Vistas:
Transcripción
1 Sincronizacion de procesos Sobre los procesos cooperantes: Pueden compartir espacios de direcciones o datos a través de un archivo. Problema a considerar: Como evitar la inconsistencia de los datos compartidos Como acceder a espacios critico de código compartido. Alternativas de sincronización Semáforos Monitores Paso de mensajes Sección crítica (definición) Sean un conjunto de procesos cooperantes. Cada proceso tiene un segmento de código en el cual puede modificar variables comunes, o un archivo, o una tabla. Llamamos sección crítica (SC) a ese segmento de código. Para ilustrar este problema podemos ver el problema presentado por Carretero Pérez en la sección Procesador 1 Procesador 2 PID = 500 Lee PID Registro o posición de memoria PID = 500 Incrementa y asigna PID Lee PID PID = 500 PID = 501 Escribe PID PID = 501 Incrementa y asigna PID PID = 501 PID = 501 Escribe PID Exclusión mutua Cuando un proceso esta ejecutando ese segmento de código crítico, ningún otro proceso puede ejecutarlo. La ejecución de la sección crítica es mutuamente exclusiva en el tiempo. Solución al problema de la sección crítica Condiciones para la solución: Página 72
2 Exclusión mutua Progresión: que ordenadamente todos los procesos puedan ejecutarse y entrar en la SC. Espera limitada: una vez que requirió entrar a la SC, que pueda hacerlo después de un tiempo determinado. La solución se implementa a través de diferentes algoritmos Aplicación del protocolo Las instrucciones de maquina (load, test, load) se ejecutan atómicamente. La solución para múltiples procesos la da el Algoritmo del panadero (bakery algorithm). Semáforos Es una herramienta de sincronización Sirve para solucionar el problema de la sección crítica. Sirve para solucionar problemas de sincronización. Implementación Es una variable entera sujeta a dos operaciones: wait y signal Estas operaciones se ejecutan de manera indivisible. Cuando un proceso modifica el valor del semáforo, otros procesos no pueden modificarlo simultáneamente. Se inicializa con valor no negativo Wait decrementa el valor del semáforo. Si el valor se hace negativo, el proceso se bloquea. Signal incrementa el valor del semáforo. Si el valor no es positivo, se desbloquea un proceso bloqueado por un wait. Repeat Until false; Entry section critical section Exit section Remainder section Esquema de la SC con semáforos Ejemplo Sean 2 procesos: A, que quiere ejecutar la sentencia X B, que quiere ejecutar la sentencia Y. Sem, es la variable común semáforo, inicializada en 0. Pero:... Y se debe ejecutar después que X Solución En proceso A: X; Signal(sem); Página 73
3 En proceso B: Wait(sem); Y; Alternativas en la espera Busy waiting: gasta CPU, ejecuta un loop hasta poder entrar a SC. Autobloqueo: cuando el proceso ve que tiene que esperar, se bloquea. Se pone en una cola asociada con el semáforo. Se rearranca por un wakeup cuando se ejecuta el signal en los procesos en SC. Monitores Es una construcción de alto nivel para sincronización. Es mas fácil de controlar que los semáforos. Se implementan como biblioteca de programas. Es un modulo de soft con 1 o + procedimientos, una secuencia de inicialización y datos locales. Ejemplos: Una estructura de datos compartida, puedo ponerla dentro de un monitor Características básicas Variables de datos locales solo se acceden a través de los procedimientos del monitor Un proceso entra al monitor invocando uno de sus procedimientos. Solo un proceso puede estar en el monitor en un momento dado (ofrece exclusión mutua) Tipo nombre-monitor = monitor; Declaración de variables Procedure entry P1(...); Begin...end;... Procedure entry Pn(...); Begin...end; Begin Código inicialización End. Sintaxis de un monitor Importante destacar! Asegura que solo un proceso a la vez puede estar activo dentro del monitor. El programador no necesita codificar explícitamente. Se agrega el constructor condition para sincronización. Interacción por pase de mensajes Se implementa por las primitivas send y receive El proceso emisor (E, sender) envía información (mensaje) al receptor (R, receiver). Página 74
4 Ventaja: se puede implementar en sistemas distribuidos, en multiprocesador, y mono con memoria compartida. Características de sincronización Envío bloqueante, recepción bloqueante. El E y el R se bloquean hasta que se entrega el mensaje (Rendezvous). Envío no bloqueante, recepcion bloqueante. El E puede continuar, pero R se bloquea hasta que llega el mensaje. Envío no bloqueante, recepción no bloqueante. Nadie espera El send no bloqueante es la forma mas útil en programación concurrente. Cuidado con la generación de mensajes excesiva. El programador debe controlar la recepción. El Envío no bloqueante, recepción bloqueante es útil para procesos servidores que ofrezcan servicio o recursos a otros procesos. En cuanto al tipo de comunicación fue visto en el apunte anterior de procesos Página 75
5 Deadlocks o Interbloqueos o Bloqueos mutuos o Abrazo mortal Una funcion del SO: DISTRIBUCION DE RECURSOS Recursos fisicos: CPU, memoria, dispositivos. Recursos logicos: archivos, semaforos y monitores Cada recurso puede tener instancias identicas (puede haber 2 impresoras del mismo tipo) Si son identicas, se puede asignar cualquier instancia del recurso Definicion de clase: es el conjunto de instancias de un recurso Pautas de asignacion No se pueden asignar mas recursos que los que hay. El proceso debe solicitar un recurso antes de usarlo. El proceso debe liberar un recurso despues de usarlo. Secuencia: solicitud, uso, liberacion System calls, estructuras y operaciones asociadas System calls: Request-release device Open file-close file Allocate free memory Operaciones wait y signal Tablas para registro de uso de recursos Deadlock (abrazo mortal o interbloqueo) Definicion: Un conjunto de procesos estan en deadlock cuando cada uno de ellos esta esperando por un recurso que esta siendo usado por otro proceso del conjunto Un estado de deadlock puede involucrar recursos de diferentes tipos. Ejemplo Supongamos un sistema con un scanner y una impresora. Un proceso A esta usando el scanner y necesita la impresora. Un proceso B esta usando la impresora y necesita el scanner. Resultado: deadlock Condiciones para que se cumpla deadlock Exclusion mutua Retencion y espera No apropiacion Espera circular Se deben dar simultaneamente y mantenerse Página 76
6 No son totalmente independientes: la espera circular depende de retencion y espera. Exclusion mutua Un recurso solo puede usarlo un proceso a la vez: es no compartible. Si otro proceso requiere el recurso tiene que esperar a que el proceso que lo tiene lo libere Retencion y esperar Debe haber un proceso que retenga por lo menos un recurso y que este esperando un recurso que tiene otro proceso retenido. No apropiacion El recurso debe ser liberado voluntariamente por el proceso que lo retiene cuando completa su tarea. Espera circular Los proceso P 1, P 2,P 3,...,P n... son procesos esperando recursos. P 1 espera un recurso que retiene P 2 P 2 espera un recurso que tiene P 3,... P n espera un recurso que tiene P 1 Grafos de asignacion de recursos Sirven para graficar el deadlock V, conjunto de vértices. Pueden ser procesos o recursos. Procesos: Representados por círculos. Recursos: Representados por rectángulos. Puntos: representan instancias de recursos. Un arco entre el proceso P i y el recurso R j indica que P i solicito una instancia del recurso R j (arco de requerimiento) Un arco entre el recurso R j y el proceso P i indica que el recurso R j fue asignado al proceso P i (arco de asignación) Si el grafo no contiene ciclos no hay deadlock Si el grafo contiene ciclos PUEDE SER que no hay deadlock Métodos para el tratamiento del deadlock Hay 3 métodos Usar un protocolo que asegure que NUNCA se entrara en estado de deadlock Permitir el estado de deadlock y luego recuperar Ignorar el problema y esperar que nunca haya un deadlock Página 77
7 Prevención: el nunca ocurrirá Método que asegura que por lo menos una de las condiciones no pueda mantenerse. Analicemos cada condición Prevención: La exclusión mutua Considerar que hay recursos compartibles y no compartibles. Mantener la exclusión mutua para los no compartibles Prevención: Retención y espera Garantía: Si un proceso requiere un recurso, debe liberar otros. Alternativas: Un proceso debe requerir y reservar todos los recursos a usar antes de comenzar la ejecución (precedencia de los system calls que hacer requerimiento antes de cualquier otro system call) El proceso puede requerir procesos solo cuando no tiene ninguno. Desventajas Baja utilización de recursos Posibilidad de inanición de alguno de los procesos (starvation, o espera infinita) Prevención: No apropiación Si un recurso no puede asignarse a un proceso y queda en wait, se liberan el resto de los recursos (apropiación). El proceso esperara ahora por todos sus recursos. Se aplica normalmente a recursos tales como ciclos de CPU y espacio de memoria que pueden ser salvados y restablecidos luego. Prevención: Espera circular Imponer un ordenamiento de los recursos: un proceso puede requerir recursos en un orden numérico ascendente. Sea F:RN, N conjunto de los naturales. F asigna un numero único a cada recurso (los números pequeños para recursos muy usados). Un proceso, que ya tiene R i puede requerir R j si y solo si F(R j ) > F(R i ) Ejemplo Prevención en Espera circular F(zip)=1; F(disco duro)=4, F(impresora)=7 Un proceso que ya tiene asignado el disco, puede pedir la impresora. Si ya tiene la impresora, no puede solicitar el zip. Como evitar el deadlock Existen algoritmos que previenen el deadlock. Página 78
8 Trabajan sobre el requerimiento de los recursos. Impiden que se cumplan las 4 condiciones. Efectos secundarios: baja utilización de los recursos y de la performance del sistema. Como evitar el deadlock: Algoritmos Algoritmo que determina el estado seguro de un sistema. Algoritmo del Banquero (para mas de una instancia por recurso) Detección del deadlock Si no contamos con prevención debemos contar con: Un algoritmo que examine si ocurrió un deadlock Un algoritmo para recuperación del deadlock Recuperacion desde el deadlock El operador lo puede resolver manualmente. Esperar que el sistema se recupere automaticamente desde el deadock. Abortando todos o algunos procesos o hasta que el ciclo desaparezca Sacandole recursos a procesos Recuperacion por apropiacion de recursos Considerar 3 puntos Selección de procesos victima: a cuales les saco los recursos y que recursos? Rollback: debemos volver hacia una instancia segura al proceso que le sacamos los recursos? Difícil. Lo aborto y reinicio? Es mas probable Starvation: asegurarnos de no sacarle los recursos siempre al mismo proceso Página 79
9 Práctica 5 Comunicación y sincronización de procesos Tuberías Una tubería es un mecanismo de comunicación y sincronización. Desde el punto de vista de su utilización, es como un pseudoarchivo mantenido por el sistema operativo. Conceptualmente, cada proceso ve la tubería como un conducto con dos extremos, uno de los cuales se utiliza para escribir o insertar datos y el otro para extraer o leer datos de la tubería. La escritura se realiza mediante el servicio que se utiliza para escribir datos en un archivo. De igual forma, la lectura se lleva a cabo mediante el servicio que se emplea para leer de un archivo. write Proceso de Usuario Proceso de Usuario read SO pipe Flujo de datos Figura 5.8 Carretero Pérez En POSIX existen tuberías sin nombre, o simplemente pipes, y tuberías con nombre, o FIFOS. Un pipe no tiene nombre y, por tanto, sólo puede ser utilizado entre los procesos que lo hereden a través de la llamada fork(). A continuación veremos un ejemplo de Carretero Pérez de ejecución de mandatos con tuberías. Podemos colocar el comando: $ ls wc que genera un listado de archivos y lo comunica a través de un pipe con wc que es el comando word count, para contar palabras, para mayor información coloque el comando: $ man wc El carácter le indica al intérprete bash que debe crear una tubería entre los dos procesos. A continuación se presenta el programa 5.9 de Carretero Pérez que permite la ejecución de este comando, mediante llamadas a sistema. Página 80
10 #include <sys/types.h> #include <stdio.h> #include <unistd.h> void main(void) { int fd[2]; pid_t pid; if (pipe(fd) < 0) { perror( Error al crear la tuberia ); exit(-1); } pid = fork(); switch(pid) { case -1: /* error */ perror( Error en el fork ); exit(-1); case 0: /* proceso hijo ejecuta ``ls'' */ close(fd[0]); /* cierra el pipe de lectura */ close(stdout_fileno); /* cierra la salida estandar */ dup(fd[1]); close(fd[1]); execlp(``ls'',``ls'',null); perror(``execlp''); exit(-1); default: /* proceso padre ejecuta ``wc'' */ close(fd[1]); /* cierra el pipe de escritura */ close(stdin_fileno); /* cierra la entrada estandar */ dup(fd[0]); close(fd[0]); execlp(``wc'',``wc'',null); perror(``execlp''); } } Se compila $ gcc -o programa programa.c Y se ejecuta $./programa Página 81
11 Otro ejemplo: Se trata simplemente de procesos en concurrencia sobre los 100 primeros caracteres de un archivo (se ejecutarán varios ejemplares del mismo programa). Para resolver el problema de la exclusión mutua sobre el acceso, se coloca un bloqueo bloqueante, utilizamos la función lockf(), cuyo primer parámetro es un descriptor de archivo abierto, ya sea para lectura o para lectura/escritura. El siguiente parámetro de operación es alguno de los siguientes: F_ULOCK: eliminación de bloqueos F_LOCK: bloqueo exclusivo en modo bloqueante F_TLOCK: bloqueo exclusivo en modo no bloqueante F_TEST: comprobación de existencia de un bloqueo El tercer parámetro es el tamaño, que permite especificar la extensión del bloqueo. La cual se expresa con respecto a la posición actual (el valor puede ser negativo para bloquear una zona anterior a la posición actual). Un tamaño nulo permite bloquear hasta el final del archivo (cualquiera que pueda ser en el futuro). #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <unistd.h> #include <sys/file.h> main() { } int d; char buffer[100]; d=open("archivo", O_RDWR O_CREAT,S_IRWXU, 0); write(d,buffer,100); if(lockf(d, F_LOCK, 100) == -1) perror("lockf"); else printf("proceso %d: bloqueo colocado\n", getpid()); sleep(5); printf("proceso %d: bloqueo eliminado\n", getpid()); lockf(d, F_ULOCK, 100); La llamada a open() abre el archivo en modo lectura/escritura, si archivo no existe lo crea. Luego la llamada a write() le escribe 100 caracteres, pero como buffer no ha sido inicializado le escribe basura, lo cual no nos importa en este caso. Se compila con: $ gcc -o bloqueo bloqueo.c Y se ejecutan varias copias: $./bloqueo &./bloqueo &./bloqueo & enviándolas al background, veremos que el primer proceso coloca el bloqueo sobre el archivo, espera 5 segundos y luego lo saca, sólo entonces el segundo proceso puede colocar Página 82
12 el bloqueo, esperar 5 segundos y luego sacarlo, para que el tercer proceso pueda hacer lo mismo. Autoevaluación 1) Cuál no es un mecanismo de sincronización válido entre procesos Unix? a) Cerrojos implementados sobre archivos. b) Un PIPE. c) Instrucciones test-and-set. d) Las señales. 2) Qué NO es cierto respecto a las propiedades que se deben cumplir en el problema de la sección crítica? a) No deben importar las velocidades relativas de los procesos. b) Exclusión mutua. c) Inanición d) No debe haber espera activa. 3) Se desea usar un semáforo S para asegurar que el inicio de una determinada actividad del proceso P2 comienza después de que finalice una actividad del proceso P1. Qué primitiva de semáforo debe usar cada proceso y cuál debe ser el valor inicial del semáforo? a) P1 wait(s) y P2 signal(s); S=0. b) P1 signal(s) y P2 wait(s); S=0. c) P1 wait(s) y P2 signal(s); S=1. d) P1 signal(s) y P2 wait(s); S=1. 4) Qué es falso acerca de los PIPES de Unix? a) Permiten comunicar a un proceso con el Sistema Operativo. b) Se puede utilizar para sincronizar procesos. c) Se puede utilizar para comunicar procesos. d) Tiene un buffer para amortiguar las velocidades en la comunicación entre procesos. 5) Qué es cierto acerca del algoritmo de la panadería de Lamport? a) Resuelve el problema de los lectores-escritores. b) Resuelve el problema del productor-consumidor. c) Resuelve el problema de la sección crítica para 2 procesos. d) Resuelve el problema de la sección crítica para n procesos. 6) Sea un programa concurrente con tres procesos iguales cuyo código consiste tan solo en incrementar en uno una variable V compartida entre ellos. Cuál de las siguientes opciones es correcta respecto al posible valor resultante de V después de la ejecución concurrente de los tres procesos si V vale 0 inicialmente? a) V tiene valor 1,5. b) V tiene valor 4. c) V tiene valor 0. d) V tiene valor 2. 7) Página 83
Sistemas Operativos: Programación de Sistemas. Curso Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J.
Tema 5 : Comunicación entre Procesos mediante Tuberías Sistemas Operativos: Programación de Sistemas Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J. Santana Pérez Curso 2006-07 Introducción Algunas
Sistemas Operativos Tema 11. Interbloqueo José Miguel Santos C. Rubén García - Alexis Quesada
Sistemas Operativos Tema 11. Interbloqueo 1998-2008 José Miguel Santos C. Rubén García - Alexis Quesada 1 Contenidos Caracterización del interbloqueo Estrategias de tratamiento del interbloqueo Métodos
Concurrencia, exclusión mutua y sincronización. Capítulo 5 HungriaBerbesi
Concurrencia, exclusión mutua y sincronización Capítulo 5 HungriaBerbesi 1 Concurrencia Múltiples aplicaciones Aplicaciones estructuradas Estructura del sistema operativo 2 Concurrencia 3 Sección Crítica:
Acceso coordinado a recursos compartidos
Programación Concurrente en Linux Acceso coordinado a recursos compartidos Alberto Lafuente, Dep. KAT/ATC de la UPV/EHU, bajo Licencia Creative Commons 1 Contenido 1. Recursos compartidos 2. Mecanismos
Sistemas Operativos (Parte 2)
Sistemas Operativos (Parte 2) M. en C. Mario Farias-Elinos e-mail: [email protected] web: http://www.ci.ulsa.mx/~elinos Maestría en Tecnologías de Información Contenido Proceso Scheduller Thread Sincronización
Tema 6. Gestión de Interbloqueo
Tema 6. Gestión de Interbloqueo Introducción (I) Protocolo de acceso a recursos compartidos: Solicitud. Utilización. Liberación. El sistema operativo suspende a los procesos cuyas solicitudes no pueden
Concurrencia: deberes. Concurrencia: Exclusión Mutua y Sincronización. Concurrencia. Dificultades con la Concurrencia
Concurrencia: deberes Concurrencia: Exclusión Mutua y Sincronización Capítulo 5 Comunicación entre procesos Compartir recursos Sincronización de múltiples procesos Asignación del tiempo de procesador Concurrencia
Interbloqueos. Módulo 7. Departamento de Informática Facultad de Ingeniería Universidad Nacional de la Patagonia San Juan Bosco
Interbloqueos Módulo 7 Departamento de Informática Facultad de Ingeniería Universidad Nacional de la Patagonia San Juan Bosco Módulo 7: Interbloqueos Modelo de Sistema Caracterización de Interbloqueos
Concurrencia: Exclusión mutua y Sincronización
Concurrencia: Exclusión mutua y Sincronización Prof. Carlos Figueira Basado en materiales de Yudith Cardinale (USB) Williams Stallings, Eugene Styer Concurrencia Múltiples aplicaciones Aplicaciones estructuradas
Sistemas operativos. Tema 6: Interbloqueo ( (deadlock)
Sistemas operativos Tema 6: Interbloqueo ( (deadlock) Concurrencia de procesos Conceptos de concurrencia y exclusión mutua. Herramientas de sincronización. n. Comunicación n entre procesos. Interbloqueo.
Concurrencia de Procesos
Concurrencia de Procesos Dos o mas procesos, se dice que son concurrentes o paralelos, cuando se ejecutan al mismo tiempo. Esta concurrencia puede darse en un sistema con un solo procesador (pseudo paralelismo)
Ejercicios sobre tuberías
Boletín 3. Ejercicios sobre tuberías July 14, 016 1. Indica de manera justificada si las siguientes afirmaciones sobre la utilización de tuberías como mecanismo de sincronización entre dos procesos son
Práctica 1: Intérprete de mandatos. Sistemas Operativos Área de Arquitectura y Tecnología de Computadores
Práctica 1: Intérprete de mandatos Introducción Desarrollo de un intérprete de mandatos (minishell) en UNIX/Linux en lenguaje C. Debe permitir: Ejecución de mandatos simples ls, cp, mv, rm, etc. Ejecución
Teoría de Sistemas Operativos Sincronización Procesos
Teoría de Sistemas Operativos Sincronización Procesos Departamento de Electrónica º Semestre, 00 Gabriel Astudillo Muñoz http://www.elo.utfsm.cl/~elo1 Dos o más procesos leen o escriben ciertas zonas compartidas
TEMA 3. CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO. Definición y objetivos de un S.O
TEMA 3. CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO Definición y objetivos de un S.O Definición y objetivos del sistema operativo Estructura, componentes y servicios de un S.O Llamadas al sistema
Concurrencia. Programación Concurrente. Espera ocupada. Primitivas IPC con bloqueo
Concurrencia Programación Concurrente Espera ocupada. Primitivas IPC con bloqueo Programación concurrente Los lenguajes concurrentes tienen elementos para: Crear procesos Sincronizar procesos Comunicar
Interbloqueo. Concurrencia: Interbloqueo e Inanición
Interbloqueo Concurrencia: Interbloqueo e Inanición Capítulo 6 Bloqueo permanente de un conjunto de procesos que compiten por recursos del sistema o por comunicación con los otros No existe una solución
SISTEMAS OPERATIVOS I (Sistemas) / SISTEMAS OPERATIVOS (Gestión) septiembre 2009
SISTEMAS OPERATIVOS I (Sistemas) / SISTEMAS OPERATIVOS (Gestión) septiembre 2009 4. (2 p) Dos procesos A y B se ejecutan concurrentemente en un determinado sistema. El proceso A ejecuta unas tareas ( Tareas
Concurrencia Condiciones de Carrera. Guillermo Román Díez
Concurrencia Condiciones de Carrera Guillermo Román Díez [email protected] Universidad Politécnica de Madrid Curso 2016-2017 Guillermo Román, UPM CC: Condiciones de Carrera 1/20 Condiciones de carrera Condición
Concurrencia. Primitivas IPC con bloqueo
Concurrencia Primitivas IPC con bloqueo Primitivas de IPC con bloqueo La solución de Peterson es correcta, pero tiene el defecto de requerir espera ocupada: Cuando un proceso quiere entrar en su región
Grafo acíclico orientado cuyos nodos corresponden a sentencias individuales.
GRAFOS DE PRECEDENCIA Grafo acíclico orientado cuyos nodos corresponden a sentencias individuales. Un arco de un nodo Si al nodo Sj significa que la sentencia Sj puede ejecutarse sólo cuando ha acabado
Sincronización entre procesos (aka: semáforos)
Sincronización entre procesos (aka: semáforos) DC - FCEyN - UBA Sistemas Operativos, 1c-2016 Dónde estamos? De dónde venimos? Race condition Semáforos Race condition Semáforos Primero repasemos brevemente
7. Programación Concurrente
7. Programación Concurrente 1. Qué es la programación concurrente? Se conoce por programación concurrente a la rama de la informática que trata de las técnicas de programación que se usan para expresar
Funciones POSIX III Funciones POSIX III. No Nombrados Nombrados. sem_open sem_open. sem_close sem_close. sem_unlink sem_unlink
Funciones POSIX III Funciones POSIX III Sincronización Sincronización Procesos Procesos Semáforos Semáforos (sem_t) (sem_t) Sincronización Sincronización Threads Threads Mutex Mutex (pthread_mutex_t) (pthread_mutex_t)
ABRAZO MORTAL - DEADLOCK - INTERBLOQUEO
ABRAZO MORTAL - DEADLOCK - INTERBLOQUEO 1 DEFINICION DE DEADLOCK Un conjunto de procesos está en estado de "DEADLOCK" cuando cada proceso del conjunto está esperando por un evento que solo puede ser causado
Unidad 1: Gestión de Procesos
Unidad 1: Gestión de Procesos Tema 1, Concurrencia: Exclusión mutua y sincronización. 1.1 Problema de la sección crítica, alternativas al uso de semáforos: - Regiones críticas, Monitores, Variables de
Primitivas de Sincronización (continuación) MONITORES: Primitiva de alto nivel, es a nivel de lenguajes como: ADA, PASCAL, JAVA.
Primitivas de Sincronización (continuación) MONITORES: Primitiva de alto nivel, es a nivel de lenguajes como: ADA, PASCAL, JAVA. Carácterísticas: Construcción de alto nivel. Estructura de datos estática:
SISTEMAS OPERATIVOS I (Sistemas) / SISTEMAS OPERATIVOS (Gestión) septiembre 2009
SISTEMAS OPERATIVOS I (Sistemas) / SISTEMAS OPERATIVOS (Gestión) septiembre 2009 4. (2 p) Dos procesos A y B se ejecutan concurrentemente en un determinado sistema. El proceso A ejecuta unas tareas ( Tareas
Sistemas operativos. Hasta ahora hemos visto. Relación programa-sistema operativo Gestión de memoria
Sistemas operativos UPCO ICAI Departamento de Electrónica y Automática 1 Hasta ahora hemos visto Relación programa-sistema operativo Gestión de memoria Reserva para la ejecución Pilas, heap, memoria de
Concurrencia Monitores. Guillermo Román Díez
Concurrencia Monitores Guillermo Román Díez [email protected] Universidad Politécnica de Madrid Curso 2016-2017 Guillermo Román, UPM CC: Monitores 1/25 Recursos Compartidos Pregunta La especificación de
CONCURRENCIA. Sincronización. Sistemas Operativos y Distribuidos. Prof. Javier Echaiz 1. Material Adicional (SOSD Mod 4)
Material Adicional (SOSD Mod 4) Concurrencia Exclusión mutua y sincronización CONCURRENCIA Slides de Samuel Oporto Díaz 2 Concurrencia La concurrencia es la simultaneidad de hechos. Un programa concurrente
Resumen Tema 5: Proceso de transacciones
Resumen Tema 5: Proceso de transacciones Transacción Unidad lógica de procesamiento secuencial compuesta por una o mas acciones que se ejecutan en bloque sobre una BD. Sentencias: Begin/end transaction.
Mensajes. Interbloqueo
CONCURRENCIA DE PROCESOS Preparado por: Angel Chata Tintaya ([email protected]) Resumen Los procesos comparten variables globales, comparten y compiten por recursos, se ejecutan simultáneamente intercalándose
*** SOLUCIONES *** SISTEMAS OPERATIVOS Examen Parcial 24 de Abril de 2010
Calificación SISTEMAS OPERATIVOS Examen Parcial 24 de Abril de 2010 1 2 3 4 Nombre *** SOLUCIONES *** Titulación Dispone de tres horas para realizar el examen 1 (5 puntos) Test. En cada uno de los siguientes
Sistemas Operativos. Procesos
Sistemas Operativos Procesos Agenda Proceso. Definición de proceso. Contador de programa. Memoria de los procesos. Estados de los procesos. Transiciones entre los estados. Bloque descriptor de proceso
Estados de un proceso
Semáforos Estados de un proceso Inactivo Listo Ejecutando Completo Escribimos p.state := ready p. state := running Bloqueado Para indicar que un proceso cambia de estado Semáforo Es un tipo de dato abstracto
Introducción a Sistemas Operativos: Concurrencia
Introducción a Sistemas Operativos: Concurrencia Clips xxx Fr ancisco J Ballesteros 1. Semáforos Quizá la abstracción más conocida para sincronizar procesos en programación concurrente controlar el acceso
Semáforos. Lecturas: Ben-Ari, secciones 4.1, 4.2, 4.3, 4.6 Andrews, intro. cap. 4 y sección 4.1. Exclusión mutua con semáforos
Lecturas: Ben-Ari, secciones 4.1, 4.2, 4.3, 4.6 Andrews, intro. cap. 4 y sección 4.1 Manuel Carro Universidad Politécnica de Madrid Este texto se distribuye bajo los términos de la Creative Commons License
Funciones POSIX (I): Introducción
Funciones POSIX I Funciones POSIX I Llamadas al Llamadas al Sistema Sistema Gestión Básica Gestión Básica de Procesos de Procesos Procesos Procesos fork fork Señales Señales getpid getpid Memoria Memoria
Lecturas: Ben-Ari, secciones 4.1, 4.2, 4.3, 4.6 Andrews, intro. cap. 4 y sección 4.1
Semáforos Lecturas: Ben-Ari, secciones 4.1, 4.2, 4.3, 4.6 Andrews, intro. cap. 4 y sección 4.1 Manuel Carro Universidad Politécnica de Madrid Este texto se distribuye bajo los términos de la Creative Commons
Lecturas: Ben-Ari, secciones 4.1, 4.2, 4.3, 4.6 Andrews, intro. cap. 4 y sección 4.1. Exclusión mutua con semáforos
Lecturas: Ben-Ari, secciones 4.1, 4.2, 4.3, 4.6 Andrews, intro. cap. 4 y sección 4.1 Manuel Carro Universidad Politécnica de Madrid Este texto se distribuye bajo los términos de la Creative Commons License
SEMAFOROS. if hay procesos suspendidos en este semáforo then despertar a uno de ellos else S = S + 1
1 de 21 22/12/2007 21:48 SEMAFOROS 1. DEFINICIONES 1.1. Semáforo general 1.2. Semáforo binario 1.3. Semáforo con cola de procesos bloqueados 1.4. Semáforo con espera activa (busy-wait) 1.5. Consecuencias
Procesos e Hilos en C
Procesos e Hilos en C 6 de febrero de 2012 En esta sesión vamos a escribir programas en lenguaje C que utilicen hilos y procesos para comparar el rendimiento del sistema ante la gestión de unos y otros.
4.6.- Integridad: Control de concurrencia.
4.6.- Integridad: Control de concurrencia. 4.6.1.- Introducción 4.6.2.- Técnicas de Bloqueo. 4.6.2.1.- Bloqueo (variable cerrojo) Tipos, protocolos Problemas. Interbloqueo Granularidad 4.6.2.2.- Marcas
CAPITULO 6. Control de Concurrencia y Recuperación
CAPITULO 6 Control de Concurrencia y Recuperación 6.1 Protocolos de Bloqueo Un protocolo de bloqueo nace de la necesidad creada cuando una transacción solicita un bloqueo de un modo particular sobre un
SISTEMAS OPERATIVOS, 10 de septiembre de 2009 Examen Convocatoria Extraordinaria
Calificación 1 2 3 SISTEMAS OPERATIVOS, 10 de septiembre de 2009 Examen Convocatoria Extraordinaria Nombre Titulación Dispone de dos horas para realizar el examen 1 (6 puntos) Test. En cada uno de los
1 ( 3,5 puntos) Responda, justificando sus respuestas, a las siguientes cuestiones:
Universidad de Las Palmas de Gran Canaria Escuela Universitaria de Informática Facultad de Informática Sistemas Operativos Convocatoria de Junio, 26 de Junio de 2003 SOLUCIONES Calificación 1 2 3 4 Nombre
1. Sistema Operativo Unix
. Sistema Operativo Unix. Introducción al S.O. Unix y su entorno.2 Subsistema de Archivos.3 Subsistema de Procesos.4 Políticas de Gestión de Memoria Dpto. Lenguajes y Sistemas Informáticos. Universidad
Contenido 1. INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS PROCESOS Prólogo...
1 Prólogo... xv 1. INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS... 1 1.1. Conceptos generales sobre sistemas operativos... 2 1.1.1. Funciones del sistema operativo... 2 1.1.2. Componentes del sistema operativo...
Lección 6: Ejemplos de programación con semáforos
Lección 6: Ejemplos de programación con semáforos El problema de la cena de los filósofos El problema de los lectores y escritores Ejercicios Gestión de concurrencia mediante paso de testigo (implementación
TAREA 1. INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS.
1 TAREA 1. INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS. 1- Cuáles son las principales funciones de un sistema operativo? Los Sistemas Operativos tienen como objetivos o funciones principales lo siguiente; Comodidad;
Introducción a los Sistemas Operativos S.O.
Introducción a los Sistemas Operativos S.O. Contenido 1. Conceptos 2. Evolución de los Sistemas Operativos 3. Administración del Entorno de Hardware 1. CONCEPTOS 1.1. Definición de Sistema Operativo Es
Sistemas Operativos Practica 1: procesos y concurrencia.
Sistemas Operativos Practica 1: procesos y concurrencia. Objetivos: Introducir al alumno a los conceptos de programa, concurrencia, paralelismo y proceso o tarea. Manejo del concepto de concurrencia haciendo
UNIDAD 3 MEMORIA COMÚN. El problema de exclusión mutua
UNIDAD 3 MEMORIA COMÚN El problema de exclusión mutua Exclusión mutua Exclusión mutua significa asegurar que un recurso compartido (variable, estructura de datos, etc.) sea accedida por un solo hilo a
PARADIGMA y LENGUAJES DE PROGRAMACIÓN
CATEDRA CARRERA: PARADIGMA y LENGUAJES DE PROGRAMACIÓN LICENCIATURA EN SISTEMAS DE INFORMACION FACULTAD DE CIENCIAS EXACTAS QUIMICAS Y NATURALES UNIVERSIDAD NACIONAL DE MISIONES Año 2017 2do Cuatrimestre
Introducción a Sistemas Operativos: Ficheros
Introducción a Sistemas Operativos: Ficheros Clips Fr ancisco J Ballesteros 1. Entrada/Salida Es importante saber cómo utilizar ficheros. En UNIX, es aún más importante dado que gran parte de los recursos,
TEMA 4. ESTRUCTURAS DE CONTROL
M.P. Sesmero, P. de Toledo, F.J. Ordoñez, J. Gómez-Romero, J.A. Iglesias, J.L. Mira Programación TEMA 4. ESTRUCTURAS DE CONTROL Grado en Ingeniería en Tecnologías Industriales Programación CONTENIDOS 4.1.
Concurrencia en UNIX / LINUX. Introducción: Procesos e Hilos POSIX
Concurrencia en UNIX / LINUX Introducción: Procesos e Hilos POSIX El estándar POSIX POSIX: Interfaz de sistemas operativos portables. Basado en UNIX A pesar de que UNIX es ya de por sí estándar, había
SISTEMA DE FICHEROS EN UNIX
SISTEMA DE FICHEROS EN UNIX SISTEMA DE FICHEROS EN UNIX CONTENIDOS: - El subsistema de ficheros en la arquitectura general de Unix. - El buffer caché. - Estructura del buffer caché. - Funcionamiento del
Paradigma de paso de mensajes
Paradigma de paso de mensajes Curso 2011-2012 Índice Visión lógica del paradigma de paso de mensajes. Operaciones básicas en paso de mensajes. Operaciones bloqueantes. Operaciones no bloqueantes. MPI:
ENTRADA-SALIDA. 2. Dispositivos de Carácter: Envía o recibe un flujo de caracteres No es direccionable, no tiene operación de búsqueda
Tipos de Dispositivos ENTRADA-SALIDA 1. Dispositivos de Bloque: Almacena información en bloques de tamaño fijo (512b hasta 32Kb) Se puede leer o escribir un bloque en forma independiente 2. Dispositivos
TEMA 2: PROCESOS E HILOS: CONCURRENCIA, SINCRONIZACIÓN Y COMUNICACIÓN
TEMA 2: PROCESOS E HILOS: CONCURRENCIA, SINCRONIZACIÓN Y COMUNICACIÓN 1. Introducción Definición de proceso (tarea según los fabricantes): Programa en ejecución. Cálculo computacional que puede hacerse
Tema 3. Paso de mensajes. mensajes. Bibliografía. Sistemas de paso de mensajes (2) Sistemas de paso de mensajes. Ventajas del paso de.
Tema 3. Paso de mensajes Bibliografía Programación Concurrente J. Palma, C. Garrido, F. Sánchez, A. Quesada, 2003 Capítulo 7 Principles of Concurrent and Distributed Programming M. Ben-Ari. Prentice Hall,
Tema 12: El sistema operativo y los procesos
Tema 12: El sistema operativo y los procesos Solicitado: Tarea 06 Arquitecturas de una computadora y el funcionamiento del software M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com [email protected]
Control de concurrencia en bases de datos relacionales
OpenStax-CNX module: m18939 1 Control de concurrencia en bases de datos relacionales Miguel-Angel Sicilia This work is produced by OpenStax-CNX and licensed under the Creative Commons Attribution License
Capítulo 2 Introducción a los sistemas operativos
Sistemas operativos: una visión aplicada Capítulo 2 Introducción a los sistemas operativos Contenido Qué es un sistema operativo? Arranque del computador Componentes y estructura de un sistema operativo
1. Procesos vs Hilos 2. Cuando se ejecutan los procesos 3. Fork 4. Clone 5. Cómo se ejucuta el fork? 6. do_fork() 7. copy_process 8.
1. Procesos vs Hilos 2. Cuando se ejecutan los procesos 3. Fork 4. Clone 5. Cómo se ejucuta el fork? 6. do_fork() 7. copy_process 8. Código Proceso Manejados por el sistema operativo Memoria independiente
Programación Orientada a Objetos en C++
Unidad I Programación Orientada a Objetos en C++ Programación Orientada a Objetos en C++ Programación I - 0416202 Contenido Esta lección abarca los siguientes temas: Estructura y declaración de una clase
Concurrencia, exclusión mutua y sincronización.
Resumen de sistemas operativos. Segundo Corte. Secciones 703M- 704M y 705M Msc Hungria Berbesi Concurrencia, exclusión mutua y sincronización. Multiporgramación: consiste en la gestión de varios procesos
Programación Concurrente y Paralela. Unidad 1 Introducción
Programación Concurrente y Paralela Unidad 1 Introducción Contenido 1.1 Concepto de Concurrencia 1.2 Exclusión Mutua y Sincronización 1.3 Corrección en Sistemas Concurrentes 1.4 Consideraciones sobre el
Unidad 2: Gestión de Procesos
Unidad 2: Gestión de Procesos Tema 6, Concurrencia: Exclusión mutua y sincronización. 6.1 Principios generales de concurrencia. 6.2 EM: Soluciones software (Algoritmos de Dekker y Peterson). 6.3 EM: Soluciones
Procesos Definición y Estados
Procesos Definición y Estados Profesorado de Informática CeRP del Suroeste, Uruguay Contenidos Qué es un proceso Estructuras de datos para gestionar procesos API para trabajar con procesos Hilos (threads).
Arquitecturas cliente/servidor
Arquitecturas cliente/servidor Creación de Sockets Cliente Servidor 1 Creación de Sockets Cliente/Servidor Sockets en TCP Concepto de Hilos Definición de DAEMON Sockets en UDP 2 THREADS 3 Qué es un thread?
Principios de Computadoras II
Departamento de Ingeniería Electrónica y Computadoras Ing. Ricardo Coppo [email protected] Qué es un Objeto? Un objeto es una instancia de una clase Las clases actuán como modelos que permiten la creación
Sincronización de Procesos. Módulo 6. Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur. Sincronización de Procesos
Sincronización de Procesos Módulo 6 Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Sincronización de Procesos Fundamentos El Problema de la Sección Crítica La Solución
Transacciones, Recuperación y Control de Concurrencia
Transacciones, Recuperación y Control de Concurrencia Transacciones Transacción: colección de operaciones que forman una única unidad lógica de trabajo en una BD Control concurrencia Sistemas multiusuario:
Tema 3: Concurrencia de procesos
Tema 3: Concurrencia de procesos Yolanda Blanco Fernández [email protected] Concurrencia, Tiempo Real y Paralelismo Concurrencia: Convivencia de un conjunto de procesos en un mismo ordenador. Sistemas
Palabras reservadas de C++ y C. Una palabra reservada no puede declararse como un identificador, esto haría un conflicto entre conectores y funciones.
Palabras reservadas de C++ y C Una palabra reservada no puede declararse como un identificador, esto haría un conflicto entre conectores y funciones. A continuación se muestra el link del listado de palabras
Concurrencia entre Procesos.
Concurrencia entre Procesos. Sistemas Operativos Tema 3. 1 Procesamiento concurrente. Procesamiento concurrente: base de los sistemas operativos modernos (multiprogramados): Un conjunto de procesos que
Tema 6: Clases. Índice
Tema 6: Clases Antonio J. Sierra Índice 1. Fundamentos. 2. Declaración de objetos. 3. Asignación de objetos a variables referencia. 4. Métodos. 5. Constructores. 6. this. 7. Recogida de basura. 8. Modelado
Tipos de Diseño. Ing. Elizabeth Guerrero V.
Tipos de Diseño Ing. Elizabeth Guerrero V. Tipos de Diseño Tipos de diseño de Procesos: Centralizado, Distribuido y Cooperativo Procesos Centralizados Un sistema centralizado está formado por un computador
Sistemas Operativos II Junio 2006 Nombre:
Sistemas Operativos II Junio 2006 Nombre: ITIS Castellano Ejercicio 1 [1 punto] 1. Por qué es más eficiente el cambio de contexto entre threads (hilos) que entre procesos? 2. Describe brevemente la diferencia
SINCRONIZACIÓN DE PROCESOS
SINCRONIZACIÓN DE PROCESOS 1 Introducción Los procesos acceden a datos o recursos compartidos El acceso puede provocar que el estado final de los datos no sea correcto, generando incoherencias debido a
Tema 1: Programación Multiproceso. Curso
Tema 1: Programación Multiproceso. Curso 2012-2013 1 Patricia Hurtado Sayas Índice de contenidos: 1. Elementos funcionales de un SI. Repaso. 2. Concepto de Proceso o Tarea. 1. PCB, Bloque de Control de
