19 research outputs found

    Constant RMR Group Mutual Exclusion for Arbitrarily Many Processes and Sessions

    Get PDF
    Group mutual exclusion (GME), introduced by Joung in 1998, is a natural synchronization problem that generalizes the classical mutual exclusion and readers and writers problems. In GME a process requests a session before entering its critical section; processes are allowed to be in their critical sections simultaneously provided they have requested the same session. We present a GME algorithm that (1) is the first to achieve a constant Remote Memory Reference (RMR) complexity for both cache coherent and distributed shared memory machines; and (2) is the first that can be accessed by arbitrarily many dynamically allocated processes and with arbitrarily many session names. Neither of the existing GME algorithms satisfies either of these two important properties. In addition, our algorithm has constant space complexity per process and satisfies the two strong fairness properties, first-come-first-served and first-in-first-enabled. Our algorithm uses an atomic instruction set supported by most modern processor architectures, namely: read, write, fetch-and-store and compare-and-swap

    Process Synchronization with Readers and Writers Revisited

    Get PDF
    The readers-writers problem is one of the very well known problems in concurrency theory. It was first introduced by Courtois et.al. in 1971 [1] and requires the synchronization of processes trying to read and write a shared resource. Several readers are allowed to access the resource simultaneously, but a writer must be given exclusive access to that resource. Courtois et.al. gave semaphore-based solutions to what they called the first and second readers-writers problems. Both of their solutions are prone to starvation. The first allows readers to indefinitely lock out writers and the second allows writers to indefinitely lock out readers. This paper presents and proves correct a third semaphore-based solution, which is starvation-free for both reader and writer processes. To the best of our knowledge, this is the first fair semaphore-based solution that at the same time allows several readers to access the resource simultaneously

    Aplicaciones distribuidas: coordinación y sincronización

    Get PDF
    Una aplicación distribuida está compuesta por un conjunto de procesos. Los procesos pueden cooperar para realizar una tarea o competir por la utilización de un recurso. Un proceso cooperativo es aquel que puede afectar o ser afectado por otros procesos que se encuentran en ejecución en el sistema. Los procesos cooperativos pueden directamente compartir un espacio de dirección lógico (esto es, datos y código), o solamente comparte los datos a través de archivos. El acceso concurrente a los datos compartidos puede resultar en un inconsistencia de los mismos. Se necesitan mecanismos para asegurar un ordenamiento en la ejecución de los procesos cooperativos que comparten un espacio de direccionamiento lógico, tal que la consistencia en los datos sea respetada. Los mecanismos para asegurar el ordenamiento en la ejecución de procesos son: sincronización, exclusión mutua en las secciones críticas, alocación de recursos. El proyecto en estudio está basado en el análisis, comparación y búsqueda de nuevas alternativas de algoritmos distribuidos que se pueden aplicar para soportar la exclusión mutua o cooperación entre los procesos.Eje: Sistemas DistribuidosRed de Universidades con Carreras en Informática (RedUNCI

    Group Mutual Exclusion in Linear Time and Space

    Full text link
    We present two algorithms for the Group Mutual Exclusion (GME) Problem that satisfy the properties of Mutual Exclusion, Starvation Freedom, Bounded Exit, Concurrent Entry and First Come First Served. Both our algorithms use only simple read and write instructions, have O(N) Shared Space complexity and O(N) Remote Memory Reference (RMR) complexity in the Cache Coherency (CC) model. Our first algorithm is developed by generalizing the well-known Lamport's Bakery Algorithm for the classical mutual exclusion problem, while preserving its simplicity and elegance. However, it uses unbounded shared registers. Our second algorithm uses only bounded registers and is developed by generalizing Taubenfeld's Black and White Bakery Algorithm to solve the classical mutual exclusion problem using only bounded shared registers. We show that contrary to common perception our algorithms are the first to achieve these properties with these combination of complexities.Comment: A total of 21 pages including 5 figures and 3 appendices. The bounded shared registers algorithm in the old version has a subtle error (that has no easy fix) necessitating replacement. A correct, but fundamentally different, bounded shared registers algorithm, which has the same properties claimed in the old version is presented in this new version. Also, this version has an additional autho

    Aplicaciones distribuidas: coordinación y sincronización

    Get PDF
    Una aplicación distribuida está compuesta por un conjunto de procesos. Los procesos pueden cooperar para realizar una tarea o competir por la utilización de un recurso. Un proceso cooperativo es aquel que puede afectar o ser afectado por otros procesos que se encuentran en ejecución en el sistema. Los procesos cooperativos pueden directamente compartir un espacio de dirección lógico (esto es, datos y código), o solamente comparte los datos a través de archivos. El acceso concurrente a los datos compartidos puede resultar en un inconsistencia de los mismos. Se necesitan mecanismos para asegurar un ordenamiento en la ejecución de los procesos cooperativos que comparten un espacio de direccionamiento lógico, tal que la consistencia en los datos sea respetada. Los mecanismos para asegurar el ordenamiento en la ejecución de procesos son: sincronización, exclusión mutua en las secciones críticas, alocación de recursos. El proyecto en estudio está basado en el análisis, comparación y búsqueda de nuevas alternativas de algoritmos distribuidos que se pueden aplicar para soportar la exclusión mutua o cooperación entre los procesos.Eje: Sistemas DistribuidosRed de Universidades con Carreras en Informática (RedUNCI

    Scalable Synchronization with Mindicators

    Get PDF
    The Mindicator is a shared object that stores one value for each thread in a system, and can return the minimum of all thread’s values in constant time. In this paper, we explore applications of the Mindicator in synchronization algorithms. We introduce three new algorithms, designed for scalable Read-Copy-Update (RCU), fair Readers-Writer locking, and Group Mutual Exclusion. Experimental evaluation shows these algorithms to perform well while avoiding contention

    An Ω(nlogn)\Omega(n \log n) Lower Bound on the Cost of Mutual Exclusion

    Get PDF
    We prove an Ω(nlogn)\Omega(n \log n) lower bound on the number ofnon-busywaiting memory accesses by any deterministic algorithm solvingnn process mutual exclusion that communicates via shared registers.The cost of the algorithm is measured in the \emph{state change} costmodel, a variation of the cache coherent model. Our bound is tight inthis model. We introduce a novel information theoretic prooftechnique. We first establish a lower bound on the information neededby processes to solve mutual exclusion. Then we relate the amount ofinformation processes can acquire through shared memory accesses tothe cost they incur. We believe our proof technique is flexible andintuitive, and may be applied to a variety of other problems andsystem models

    Modelo temporizado de exclusión para grupos de procesos

    Get PDF
    En sistemas distribuidos las aplicaciones realizan trabajos que requieren acceso en forma exclusiva a un recurso o realizan trabajo en forma conjunta para el cual requieren de la utilización de un recurso, para poder mantener estos requerimientos es necesario contar con protocolos que garanticen el acceso a los recursos compartidos. Dependiendo del problema se puede resolver a través del tradicional algoritmo de exclusión mutua, o a través de las extensiones a k o grupo de procesos. En este trabajo, se considera el problema de exclusión mutua para grupos de procesos, que garantice las condiciones de exclusión mutua y concurrencia, minimizando el tiempo de respuesta en ambientes centralizados y distribuidos con restricciones de tiempo.In distributed systems, the applications can compete in the use of a resource or can work together and need a resource. To keep these requirements its necessary a protocol to guarantee the access to the shared resources. Depending on the kind of problem, we can solve through the traditional algorithms of mutual exclusion or through the extensions of k-process or group of process. In this article, we consider the mutual exclusion problem for group of process, providing the conditions of mutual exclusion and concurrency, minimizing the answer time in centralized and distributed systems with time restrictions.VII Workshop de Procesamiento Distribuido y Paralelo (WPDP)Red de Universidades con Carreras en Informática (RedUNCI
    corecore