22 repositorios
Mechanisms such as mutexes and semaphores used to coordinate access to shared resources between processes.
Distinct from Resource Loading Synchronization: Candidates focus on session sharing or UI resource loading rather than general process synchronization locks.
Explore 22 awesome GitHub repositories matching operating systems & systems programming · Process Synchronization Locks. Refine with filters or upvote what's useful.
Boost is a collection of portable, high-performance source libraries that extend the C++ standard library. It provides a wide range of reusable components, data structures, and algorithms designed to add capabilities to the base language across different platforms. The project is distinguished by its extensive focus on compile-time template metaprogramming and generic programming. It implements advanced architectural patterns such as policy-based design, concept-based type validation, and the use of SFINAE for conditional template resolution to minimize runtime overhead. The library covers a
Coordinates shared resource access using mutexes, semaphores, and condition variables between processes.
This project is an Android RPA framework designed for automating user interfaces and system tasks on rooted Android devices using Python and ADB. It provides a suite of tools for rooted device management, allowing for programmatic control of system settings, application lifecycles, and shell command execution via a remote API. The framework distinguishes itself through a combination of dynamic instrumentation and AI integration. It can inject scripts into running processes to hook Java interfaces and modifies application behavior in real time. Additionally, it supports large language model in
Restricts API access to a single device instance to prevent concurrent process interference.
This project is a Python data science curriculum and programming tutorial collection. It provides a structured set of educational notebooks and scripts designed to teach data analysis, machine learning, and deep learning. The repository serves as a learning path for building and tuning predictive models, including regression, decision trees, and neural networks. It includes a data visualization guide for creating financial time-series plots and a multiprocessing reference for implementing parallel task execution and shared memory synchronization. The curriculum covers broader capability area
Implements synchronization locks to prevent data corruption when multiple processes access shared memory.
Hazelcast is a distributed data platform that combines an in-memory data grid with a stream processing engine to support real-time analytics and event-driven applications. It functions as a partitioned, distributed key-value store that replicates data across cluster nodes to provide low-latency access and high availability. The platform also serves as a distributed SQL query engine, allowing users to execute standard SQL statements against both in-memory datasets and external data sources. What distinguishes Hazelcast is its use of a distributed consensus subsystem to maintain strongly consis
Improve performance for non-mutating operations by executing logic on entries without acquiring locks or checking lock status.
Transitions is an object-oriented finite state machine library for Python. It provides a framework for managing valid states and the logic for moving between them, including implementations for asynchronous state machines and thread-safe state managers. The library supports hierarchical state machines that allow states to be nested to organize complex subtasks and logical contexts. It includes tools for generating visual diagrams of states and transitions to document machine logic. The project covers state management primitives such as lifecycle callbacks, conditional transition guarding, an
Uses reentrant locks to prevent race conditions during simultaneous state transition triggers.
Masuit.Tools is a comprehensive static utility library for .NET and ASP.NET Core development. It provides a broad collection of reusable helper methods and infrastructure components that cover common programming tasks without requiring dependency injection or instance management. The library is organized as flat utility classes, making its functionality directly accessible from anywhere in a project. The toolkit distinguishes itself through a wide range of integrated capabilities that go beyond typical utility libraries. It includes a multithreaded range-request file downloader with pause and
Provides a utility to run database queries under a read-uncommitted transaction to avoid blocking.
Concurrent Ruby is a comprehensive concurrency toolkit for the Ruby language that provides thread-safe data structures, synchronization primitives, and asynchronous execution patterns. It implements core concurrency abstractions including an actor model framework where isolated actors communicate through asynchronous message passing, a future and promise system for composing non-blocking operations, and thread pool executors that manage reusable worker threads for concurrent task execution. The library distinguishes itself through a broad set of coordination mechanisms that go beyond basic th
Implements non-blocking lock acquisition that returns immediately with a boolean instead of blocking the caller.
InterviewGuide is a comprehensive technical interview preparation platform that covers the full spectrum of software engineering recruitment, from foundational computer science concepts through to offer negotiation. It provides structured learning paths across algorithms, operating systems, databases, networking, and programming languages, with a particular emphasis on C++ and Go. The platform aggregates real interview experiences and company-specific questions from major tech employers, offering candidates a searchable database of past written exam problems and detailed accounts of actual int
Coordinates access to shared resources using semaphores, mutexes, condition variables, and monitors to prevent race conditions.
This is an open-source, crowd-sourced wiki textbook that teaches Linux system programming in C. It covers the core operating system concepts of process management through the fork-exec-wait model, dynamic memory allocation using implicit free list heap allocators, inode-based file systems, inter-process communication via pipes and shared memory, POSIX threads with synchronization primitives, signal-based asynchronous notification, virtual memory with page table translation, and runtime diagnostics using Valgrind and GDB. The textbook distinguishes itself by providing practical, implementation
Explains trylock-based deadlock avoidance with non-blocking lock attempts and rollback.
Este proyecto es un polyfill de compatibilidad de PHP diseñado para realizar backport de funciones y constantes principales de PHP 7.2 a versiones anteriores del lenguaje. Sirve como una extensión de la biblioteca estándar de PHP y backport de versión, proporcionando una capa de compatibilidad que llena los vacíos en el núcleo de PHP para asegurar un comportamiento consistente en diferentes entornos. La biblioteca permite la portabilidad de código entre versiones implementando funciones de la biblioteca estándar faltantes, permitiendo que las características del lenguaje más nuevas se ejecuten en entornos PHP heredados. Esto asegura que las aplicaciones puedan mantener una interfaz consistente y permanecer compatibles con las bibliotecas actuales incluso cuando se ejecutan en versiones obsoletas.
Sets a time-to-live for locks to ensure automatic release if a process crashes.
Esta biblioteca de concurrencia de Java proporciona un conjunto de herramientas para gestionar la ejecución multihilo, la sincronización y la consistencia de la memoria. Sirve como un framework integral para implementar la ejecución concurrente a través de atómicos sin bloqueo (lock-free), colecciones seguras para hilos, primitivas de coordinación de tareas y grupos de trabajadores (worker pools). El proyecto incluye un kit de herramientas de sincronización de hilos dedicado que cuenta con latches, barreras y semáforos para coordinar el tiempo y el orden de las tareas concurrentes. También proporciona una suite de colecciones concurrentes de mapas, colas y listas que permiten compartir datos sin bloqueo manual, junto con un framework de operaciones atómicas para actualizaciones sin bloqueo a tipos y referencias básicos. La biblioteca cubre áreas de capacidad amplias, incluyendo la gestión de grupos de hilos para optimizar la utilización de recursos, el análisis del modelo de memoria para garantizar la visibilidad de los datos y varios mecanismos de gestión de bloqueos para evitar condiciones de carrera. Estas herramientas apoyan colectivamente el desarrollo de aplicaciones multihilo que mantienen transiciones de estado consistentes a través de la memoria compartida.
Provides reentrant locks that allow threads to acquire the same lock multiple times without deadlocking.
Este proyecto es un repositorio instructivo y recurso de aprendizaje que proporciona una colección completa de notas de estudio, guías de programación y ejemplos de código ejecutables. Sirve como guía para el desarrollo web y de Java SE, presentando una biblioteca de muestras de código que demuestran algoritmos comunes e implementaciones técnicas. El repositorio se centra en el análisis del núcleo y el tiempo de ejecución del lenguaje, con tutoriales detallados sobre multihilo y concurrencia. Proporciona implementaciones prácticas de arquitectura de software y patrones de diseño, como los patrones singleton y strategy, así como exploraciones de la Java Virtual Machine y el bytecode. El proyecto cubre una amplia gama de capacidades, incluyendo fundamentos del lenguaje como genéricos y anotaciones, conceptos básicos de desarrollo web que involucran el manejo de solicitudes HTTP y gestión de sesiones, y primitivas de concurrencia para el ciclo de vida de hilos y sincronización de recursos. También incluye utilidades para seguridad, procesamiento de datos y generación dinámica de páginas.
Orchestrates various locking strategies, including reentrant and read-write locks, to control shared resource access.
ZIO is a functional effect system for the JVM that models asynchronous and concurrent programs as pure, composable values with typed error handling and dependency injection. Its core identity is built on fiber-based concurrency, where lightweight, non-blocking fibers execute millions of concurrent tasks with structured lifecycle management, and a dual-channel error model that separates expected business failures from unexpected system defects at compile time. The system provides effect-typed dependency injection through a layer-based dependency graph, pull-based reactive stream processing with
Acquires reentrant locks that the same fiber can re-enter multiple times.
Esta es una librería de PHP que proporciona interfaces estandarizadas para el almacenamiento en caché de datos a través de las especificaciones PSR-6 y PSR-16. Funciona como un gestor de pool de caché y adaptador de caché distribuido, permitiendo a las aplicaciones organizar pares de clave-valor en repositorios y espacios de nombres lógicos. El proyecto incluye una herramienta dedicada de prevención de estampidas de caché (cache stampede) que protege a los sistemas de picos de CPU durante la expiración de valores. Esto se logra mediante mecanismos de bloqueo para solicitudes concurrentes y expiración temprana probabilística. La librería admite la serialización de objetos con cifrado y compresión opcionales para traducir datos complejos a formatos almacenables. Proporciona una capa de abstracción de almacenamiento multi-backend, permitiendo la persistencia de datos a través de memoria, sistemas de archivos y bases de datos distribuidas. Otras capacidades incluyen la recuperación de caché basada en callbacks y espacios de nombres basados en claves para la segregación de datos.
Prevents multiple processes from recomputing the same expired value by locking concurrent requests during the cache miss period.
ShedLock es un gestor de bloqueos distribuidos diseñado para evitar que las tareas programadas se ejecuten simultáneamente a través de múltiples nodos en un sistema distribuido. Actúa como un coordinador de tareas que asegura una ejecución única de trabajos temporizados gestionando los tiempos de vida de los bloqueos y utilizando proveedores de bloqueo externos. El sistema utiliza proveedores respaldados por bases de datos para almacenar estados de ejecución de tareas en bases de datos externas, sincronizando bloqueos a través de nodos de cluster activos. Incluye un sincronizador tolerante a la deriva del reloj que maneja discrepancias de tiempo entre nodos distribuidos mediante el uso de marcas de tiempo compartidas y tiempos de vida de bloqueo flexibles. El proyecto proporciona mecanismos para la exclusión mutua de recursos compartidos y la coordinación de tareas entre múltiples nodos. Admite la expiración automática de bloqueos para prevenir deadlocks durante fallos de nodos y mantiene tiempos mínimos de retención de bloqueo para asegurar que las tareas se completen antes de que se libere un bloqueo. La implementación utiliza una abstracción agnóstica del proveedor para desacoplar la lógica de bloqueo de varios backends de bases de datos.
Automatically releases locks after a predefined maximum time to prevent permanent deadlocks during node crashes.
Orioledb es un motor de almacenamiento nativo de la nube para PostgreSQL diseñado para reemplazar la capa de almacenamiento por defecto para mejorar la escalabilidad vertical y el rendimiento en hardware moderno. Funciona como un almacén de tablas organizado por índices, organizando las filas de la tabla directamente dentro del índice primario para acelerar la recuperación de datos. El motor utiliza un sistema de almacenamiento de log de deshacer (undo log) para gestionar el versionado de datos, lo que elimina la necesidad de vacuuming manual y evita el crecimiento excesivo de las tablas (table bloat). Reduce aún más la huella en disco a través de la compresión de datos a nivel de bloque y de página. El proyecto proporciona capacidades para la gestión avanzada de índices y el mantenimiento automatizado de bases de datos. Incluye características para la recuperación de alta disponibilidad a través de logging a nivel de fila, así como herramientas para analizar la utilización del espacio y verificar la integridad de las tablas.
Enables high-throughput concurrent reads by linking in-memory pages directly to storage to bypass buffer mapping.
Redsync is a distributed lock manager and Go Redis client extension designed to ensure exclusive access to shared resources. It implements mutual exclusion across multiple processes by using a Redis backend to coordinate synchronization and prevent race conditions in distributed environments. The library maintains lock validity through quorum-based consensus, requiring successful writes to a majority of independent Redis nodes. It utilizes Lua-scripted atomic operations for acquisition and release, while employing value-based ownership validation and time-to-live expiration to prevent deadloc
Prevents deadlocks by associating a time-to-live value with every lock to ensure automatic expiration if the owner fails.
BLEUnlock is a macOS automation tool and proximity-based system controller that monitors the range of trusted Bluetooth Low Energy devices to automate screen security and hardware-based unlocking. It functions as a background utility that identifies and filters nearby devices by their unique identifiers and signal strength to trigger system actions. The system automatically manages screen lock states, waking the display and unlocking the computer when a paired device enters a defined signal range, or locking the screen and starting the screensaver when the device moves out of range. Beyond s
Changes the system lock state automatically based on the presence of paired Bluetooth Low Energy devices.
HyperDbg is a hardware-assisted kernel-mode debugging platform that leverages virtualization to monitor and control system execution. By utilizing hypervisor-level primitives, it enables deep system analysis and instrumentation without relying on standard operating system debugging interfaces. The framework provides a comprehensive environment for inspecting both kernel and user-mode processes, allowing for granular control over execution flow and system state. The project distinguishes itself through a transparent debugging layer designed to remain invisible to the target environment. It emp
Releases held spinlocks to allow other processes or threads to access protected resources during debugging.
Whatsie is a web application desktop wrapper designed to turn web interfaces, specifically messaging services, into standalone desktop applications. It provides a dedicated window environment with a custom icon and system tray integration. The project includes security and privacy layers such as password-protected session locking with automatic timeouts and the ability to purge persistent application data and web caches. It also features native hardware permission management for controlling camera and microphone access. The application supports native system notifications, file download hand
Prevents multiple application copies using a lock file and inter-process communication.