14 dépôts
Primitives for coordinating execution flow and sharing memory between concurrent execution units.
Distinct from Process Coordinators: Focuses on the synchronization primitives themselves rather than high-level architectural coordination
Explore 14 awesome GitHub repositories matching software engineering & architecture · Thread and Process Synchronization. Refine with filters or upvote what's useful.
Proton GE Custom is a compatibility layer designed to execute Windows games on Linux by translating binary instructions and API calls. It focuses on improving game stability and performance through a Wine-based translation system. The project utilizes custom patches and per-game configuration overrides to resolve specific application crashes and glitches. It implements specialized media foundation patching to ensure stable playback of proprietary cinematic formats and adds support for High Dynamic Range output. The software covers a range of gaming optimizations, including raw input latency
Synchronizes in-process execution primitives via a kernel module to increase system stability.
POCO is a comprehensive C++ application framework that provides a cross-platform set of libraries for building network-centric applications. It offers a unified abstraction layer that wraps platform-specific APIs, enabling the same code to run across desktop, server, mobile, IoT, and embedded systems. The framework is organized into modular libraries that can be compiled and linked selectively, allowing developers to include only the components their application needs. The framework distinguishes itself through its broad coverage of application infrastructure needs, including threading and sy
Provides threading primitives, mutexes, events, and semaphores for coordinating concurrent execution.
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
Teaches mutex, semaphore, and condition variable usage for coordinating concurrent threads.
seL4 is a formally verified microkernel whose C implementation is backed by machine-checked mathematical proofs of correctness, confidentiality, integrity, and availability. It enforces strict isolation between processes through hardware-enforced address space separation and a capability-based access control system, where each process holds explicit rights only to the resources it has been granted. The kernel exposes hardware resources through a minimal API of system calls that manage threads, address spaces, and inter-process communication, with synchronous IPC supporting sender-identifying b
Uses mutexes, semaphores, and binary semaphores for mutual exclusion and coordination among component threads.
Ce projet est une ressource de découverte open source qui fournit des listes organisées de code réutilisable et de bibliothèques pour aider les développeurs à trouver des solutions techniques à des tâches spécifiques. Il utilise un système d'indexation par catégories pour organiser divers outils logiciels selon leurs capacités fonctionnelles. Le dépôt est structuré comme une collection de documentation basée sur Markdown et de contenu statique, servant de répertoire pour la découverte manuelle et la référence. Le répertoire couvre un large éventail de domaines de compétences, incluant le développement d'applications multiplateformes, la création d'outils de cybersécurité, l'implémentation de protocoles réseau et les flux de travail en calcul scientifique. Il inclut également des ressources pour l'automatisation du web scraping, le stockage de données et les interfaces multimédias.
Lists primitives for coordinating execution flow and sharing memory between concurrent threads and processes.
Ce projet est une collection de bibliothèques single-header fournissant une implémentation sans dépendance des systèmes fondamentaux de moteur de jeu. Il sert de boîte à outils portable pour le développement de jeux 2D, se concentrant sur le chargement d'assets, l'optimisation graphique et la coordination système de bas niveau. Les bibliothèques offrent des capacités spécialisées pour le rendu de sprites 2D et le traitement d'assets, incluant la compilation d'atlas de textures et le rendu par lots pour réduire les draw calls. Il inclut un pipeline dédié pour analyser les fichiers Aseprite et les données de carte au format JSON provenant de Tiled. La boîte à outils couvre plusieurs domaines fonctionnels, incluant la détection de collision 2D utilisant des raycasts et des sweep tests, le streaming audio et le déclenchement d'échantillons, et la coordination multithreading via des pools de tâches. Sa couche réseau implémente la fiabilité basée sur UDP et le transport chiffré TLS pour une communication client-serveur sécurisée.
Implements multithreading coordination via task pools and locks to balance processor load.
Asterinas est un noyau de système d'exploitation sécurisé en mémoire conçu pour prévenir les data races et la corruption mémoire. Il fonctionne comme un noyau compatible Linux-ABI, permettant l'exécution de binaires Linux existants et de charges de travail conteneurisées tout en offrant un modèle de distribution de système d'exploitation déclaratif. Le projet se distingue en agissant comme un hôte de conteneurs pour machines virtuelles et un OS invité pour le confidential computing, lui permettant de s'exécuter au sein d'environnements d'exécution isolés matériellement comme Intel TDX. Il implémente une base de calcul de confiance minimale en isolant les opérations dangereuses de bas niveau et sépare les mécanismes fondamentaux du noyau des implémentations de politiques spécifiques. Le système couvre un large éventail de capacités, incluant la gestion de la mémoire physique et virtuelle, le multi-processing symétrique et l'abstraction matérielle pour diverses architectures CPU. Il inclut également le support pour les runtimes de conteneurs sécurisés, un ensemble complet de primitives réseau et socket, ainsi qu'une toolchain spécialisée pour la compilation et l'émulation du noyau. Le projet prend en charge le déploiement multi-architecture sur les plateformes x86-64, RISC-V 64 et LoongArch 64.
Implements primitives for coordinating execution flow and sharing memory between concurrent execution units to prevent data races.
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 a toolkit of latches, barriers, and semaphores to coordinate the timing and order of concurrent tasks.
This project provides instructional and reference materials for C++ development, focusing on the Qt framework. It serves as a guide and example library for network programming, cross-platform builds, multithreaded execution, and GUI customization. The collection features specialized patterns for building user interfaces and customizing widgets through custom painting and styling. It also provides a reference for implementing client-server communication and managing concurrent tasks using synchronization primitives. The project covers a broad range of capabilities, including cross-platform ap
Provides a reference for managing concurrent tasks using synchronization primitives to ensure thread-safe memory access.
Easyloggingpp is a header-only C++ logging framework and diagnostic tool designed for recording system events and diagnostic messages. It functions as a thread-safe logging library that synchronizes access across multiple concurrent execution threads to prevent data corruption during event recording. The framework features an asynchronous logger that processes messages on a background thread to minimize latency and prevent blocking the main application. It also acts as a log dispatcher, capable of routing data to local files, system syslog facilities, or remote network destinations for system
Implements mutexes and synchronization primitives to ensure thread-safe access to shared logging state.
Ce projet est un framework complet pour le développement d'applications iOS, centré sur la construction d'applications mobiles qui présentent des composants d'interface utilisateur personnalisés, une gestion de tâches asynchrone et une persistance de données locale. Il sert de base de connaissances technique pour l'ingénierie logicielle, fournissant des outils pour organiser et publier des analyses architecturales et des notes au format Markdown. Le framework se distingue par une couche de stockage robuste basée sur des documents qui utilise des enregistrements au format BSON pour effectuer des opérations CRUD au sein d'un magasin de documents NoSQL. Il fournit des capacités d'intégration système étendues, incluant une communication spécialisée par extension d'application, le passage de messages entre bacs à sable et la présentation native de feuilles de partage, permettant une interaction transparente entre l'application hôte et les services au niveau du système. Le projet couvre une large surface de capacités, incluant une gestion avancée de la concurrence avec synchronisation thread-safe, le déchargement du rendu UI en arrière-plan pour maintenir la réactivité et une prise en charge complète de l'internationalisation. Il inclut également des utilitaires axés sur les développeurs pour la génération de types statiques, le mapping automatique de ressources et la construction de prototypes interactifs, aux côtés d'outils spécialisés pour la surveillance de balises géographiques et la génération de graphiques adaptatifs.
Uses semaphores to block threads until resources are available or tasks complete.
Mezzano is a self-hosted operating system written entirely in Common Lisp. It employs a language-integrated kernel architecture where both the kernel and user-space applications execute within a single, unified high-level language runtime. The system is designed for both bare-metal environments, booting from physical external media, and as a guest operating system within virtual machine software. It implements symmetric multiprocessing to distribute computational workloads across multiple CPU cores. The environment includes capabilities for automated memory recovery via generational garbage
Coordinates background workloads using thread pools and synchronization mechanisms to prevent execution blocking.
nix is a Unix system API library and Rust system programming interface that provides type-safe bindings for invoking low-level system calls. It serves as a low-level operating system wrapper and POSIX compatibility layer, allowing for kernel interactions and administrative tasks through safe wrappers around platform-specific APIs. The project provides a kernel device interface for controlling hardware devices, managing kernel modules, and configuring terminal interfaces. It differentiates itself by offering type-safe wrappers for memory mapping and zero-copy input-output operations to reduce
Provides type-safe bindings for thread synchronization and process coordination primitives.
This project provides a header-only C++ wrapper for the Node-API, serving as a framework for building high-performance native addons for Node.js. It acts as a bridge between C++ and JavaScript, offering an object-oriented interface that simplifies the creation of compiled extensions while managing the complexities of the language boundary. The library distinguishes itself by providing type-safe abstractions for data marshalling and memory management, ensuring that native and script-side objects are tracked and reclaimed correctly. It includes mechanisms for coordinating asynchronous tasks bet
Coordinates communication between background native threads and the main execution thread to prevent data corruption.