22 dépôts
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.
Ce projet est un polyfill de compatibilité PHP conçu pour backporter les fonctions et constantes principales de PHP 7.2 vers des versions plus anciennes du langage. Il sert d'extension de bibliothèque standard PHP et de backport de version, fournissant une couche de compatibilité qui comble les lacunes du cœur de PHP pour assurer un comportement cohérent à travers différents environnements. La bibliothèque permet la portabilité du code entre les versions en implémentant les fonctions de bibliothèque standard manquantes, permettant aux nouvelles fonctionnalités du langage de s'exécuter sur des environnements PHP hérités. Cela garantit que les applications peuvent maintenir une interface cohérente et rester compatibles avec les bibliothèques actuelles même lorsqu'elles s'exécutent sur des versions obsolètes.
Sets a time-to-live for locks to ensure automatic release if a process crashes.
Cette bibliothèque de concurrence Java fournit une suite d'outils pour gérer l'exécution multi-thread, la synchronisation et la cohérence de la mémoire. Elle sert de framework complet pour implémenter l'exécution concurrente via des atomiques sans verrou, des collections thread-safe, des primitives de coordination de tâches et des pools de travailleurs. Le projet inclut une boîte à outils de synchronisation de threads dédiée comprenant des verrous, des barrières et des sémaphores pour coordonner le timing et l'ordre des tâches concurrentes. Il fournit également une suite de collections concurrentes de maps, files d'attente et listes qui permettent le partage de données sans verrouillage manuel, ainsi qu'un framework d'opérations atomiques pour les mises à jour sans verrouillage des types de base et des références. La bibliothèque couvre de vastes domaines de capacité, incluant la gestion de pool de threads pour optimiser l'utilisation des ressources, l'analyse du modèle de mémoire pour assurer la visibilité des données et divers mécanismes de gestion de verrouillage pour prévenir les conditions de course. Ces outils soutiennent collectivement le développement d'applications multi-thread qui maintiennent des transitions d'état cohérentes à travers la mémoire partagée.
Provides reentrant locks that allow threads to acquire the same lock multiple times without deadlocking.
Ce projet est un dépôt pédagogique et une ressource d'apprentissage fournissant une collection complète de notes d'étude, de guides de programmation et d'exemples de code exécutables. Il sert de guide pour le développement Java SE et web Java, présentant une bibliothèque d'exemples de code qui démontrent des algorithmes courants et des implémentations techniques. Le dépôt se concentre sur l'analyse du cœur du langage et du runtime, avec des tutoriels détaillés sur le multithreading et la concurrence. Il fournit des implémentations pratiques de l'architecture logicielle et des modèles de conception (design patterns), tels que les modèles singleton et stratégie, ainsi que des explorations de la Java Virtual Machine et du bytecode. Le projet couvre un large éventail de capacités, notamment les fondamentaux du langage comme les génériques et les annotations, les bases du développement web impliquant la gestion des requêtes HTTP et des sessions, et les primitives de concurrence pour le cycle de vie des threads et la synchronisation des ressources. Il inclut également des utilitaires pour la sécurité, le traitement des données et la génération de pages dynamiques.
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.
Il s'agit d'une bibliothèque PHP fournissant des interfaces standardisées pour la mise en cache de données via les spécifications PSR-6 et PSR-16. Elle fonctionne comme un gestionnaire de pool de cache et un adaptateur de cache distribué, permettant aux applications d'organiser les paires clé-valeur en dépôts logiques et espaces de noms. Le projet inclut un outil dédié à la prévention du cache stampede qui protège les systèmes contre les pics de CPU lors de l'expiration des valeurs. Ceci est réalisé via des mécanismes de verrouillage pour les requêtes concurrentes et une expiration anticipée probabiliste. La bibliothèque prend en charge la sérialisation d'objets avec chiffrement et compression optionnels pour traduire des données complexes en formats stockables. Elle fournit une couche d'abstraction de stockage multi-backend, permettant la persistance des données à travers la mémoire, les systèmes de fichiers et les bases de données distribuées. Les autres capacités incluent la récupération de cache basée sur des callbacks et le namespacing basé sur les clés pour la ségrégation des données.
Prevents multiple processes from recomputing the same expired value by locking concurrent requests during the cache miss period.
ShedLock est un gestionnaire de verrouillage distribué conçu pour empêcher les tâches planifiées de s'exécuter simultanément à travers de multiples nœuds dans un système distribué. Il agit comme un coordinateur de tâches qui garantit une exécution unique des travaux planifiés en gérant les durées de vie des verrous et en utilisant des fournisseurs de verrouillage externes. Le système utilise des fournisseurs basés sur une base de données pour stocker les états d'exécution des tâches dans des bases de données externes, synchronisant les verrous à travers les nœuds de cluster actifs. Il inclut un synchroniseur tolérant à la dérive d'horloge qui gère les écarts de temps entre les nœuds distribués via l'utilisation d'horodatages partagés et de durées de vie de verrou flexibles. Le projet fournit des mécanismes pour l'exclusion mutuelle des ressources partagées et la coordination des tâches multi-nœuds. Il prend en charge l'expiration automatique des verrous pour prévenir les blocages lors des plantages de nœuds et maintient des durées de maintien de verrou minimales pour garantir que les tâches se terminent avant qu'un verrou ne soit libéré. L'implémentation utilise une abstraction agnostique au fournisseur pour découpler la logique de verrouillage de divers backends de base de données.
Automatically releases locks after a predefined maximum time to prevent permanent deadlocks during node crashes.
Orioledb est un moteur de stockage cloud-native pour PostgreSQL conçu pour remplacer la couche de stockage par défaut afin d'améliorer l'évolutivité verticale et les performances sur le matériel moderne. Il fonctionne comme un magasin de tables organisé par index, organisant les lignes de table directement au sein de l'index primaire pour accélérer la récupération des données. Le moteur utilise un système de stockage de journal d'annulation (undo log) pour gérer le versionnage des données, ce qui élimine le besoin de vacuuming manuel et empêche le gonflement des tables. Il réduit en outre l'empreinte disque via la compression de données au niveau des blocs et des pages. Le projet fournit des capacités pour la gestion avancée des index et la maintenance automatisée des bases de données. Il inclut des fonctionnalités pour la récupération haute disponibilité via la journalisation au niveau des lignes, ainsi que des outils pour analyser l'utilisation de l'espace et vérifier l'intégrité des tables.
Enables high-throughput concurrent reads by linking in-memory pages directly to storage to bypass buffer mapping.
Redsync est un gestionnaire de verrous distribués et une extension client Redis pour Go, conçue pour garantir un accès exclusif aux ressources partagées. Il implémente l'exclusion mutuelle entre plusieurs processus en utilisant un backend Redis pour coordonner la synchronisation et prévenir les conditions de concurrence dans les environnements distribués. La bibliothèque maintient la validité des verrous grâce à un consensus basé sur le quorum, exigeant des écritures réussies sur une majorité de nœuds Redis indépendants. Elle utilise des opérations atomiques via des scripts Lua pour l'acquisition et la libération, tout en employant une validation de propriété basée sur la valeur et une expiration TTL (Time-To-Live) pour éviter les interblocages. Le projet offre des fonctionnalités de coordination distribuée et de synchronisation d'applications, utilisant une stratégie de réessai côté client pour gérer les délais d'attente lors de l'acquisition de ressources.
Prevents deadlocks by associating a time-to-live value with every lock to ensure automatic expiration if the owner fails.
BLEUnlock est un outil d'automatisation macOS et un contrôleur système basé sur la proximité qui surveille la portée des appareils Bluetooth Low Energy de confiance pour automatiser la sécurité de l'écran et le déverrouillage matériel. Il fonctionne comme un utilitaire d'arrière-plan qui identifie et filtre les appareils à proximité par leurs identifiants uniques et la force du signal pour déclencher des actions système. Le système gère automatiquement les états de verrouillage de l'écran, réveillant l'affichage et déverrouillant l'ordinateur lorsqu'un appareil appairé entre dans une plage de signal définie, ou verrouillant l'écran et lançant l'économiseur d'écran lorsque l'appareil sort de cette plage. Au-delà de la sécurité, l'outil fournit une gestion système basée sur la proximité, incluant la possibilité de mettre en pause ou de reprendre la lecture multimédia et d'exécuter des scripts shell définis par l'utilisateur en réponse aux événements de verrouillage et de déverrouillage.
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.