9 repository-uri
Queues tasks, assigns them to CPUs, and preempts them as needed, enforcing policy and fairness through a scheduler with timers and deferred work.
Distinct from Tasks and Scheduling: Distinct from Tasks and Scheduling: focuses on low-level CPU scheduling and preemption in kernel context, not general task runners or automation.
Explore 9 awesome GitHub repositories matching part of an awesome list · CPU Task Scheduling and Preemption. Refine with filters or upvote what's useful.
30dayMakeOS is an educational hobby operating system project designed for the x86 architecture. It implements a monolithic kernel and a custom bootloader that transitions the CPU from real mode to 32-bit protected mode to enable flat memory addressing. The project focuses on low-level system development, featuring a custom graphics driver for direct pixel-buffer rendering and window management without an existing operating system. It includes an x86 bootloader that loads the kernel from disk into memory. The system covers core kernel capabilities including round-robin task scheduling for pro
Implements a round-robin task scheduler to ensure fair CPU distribution across active processes.
CppGuide is a curated collection of educational resources and practical guides focused on C++ server development, Linux kernel internals, concurrent programming, network protocols, and security exploitation. It provides structured learning paths for backend developers, covering everything from interview preparation to building high-performance network servers and understanding operating system fundamentals. The guide distinguishes itself by offering in-depth, hands-on tutorials that walk through real-world implementations, including building a Redis-like server from scratch, designing custom
Explains kernel-level task scheduling and preemption, a core operating system concept.
Swarm is a container clustering system that pools multiple Docker hosts into a single virtual host, enabling transparent container scheduling and management across the cluster. It exposes the standard Docker API so existing Docker-compatible tools and clients can operate on the cluster without any modifications. The system uses a distributed key-value store to maintain cluster state, enabling consistent scheduling decisions across nodes. A Docker-API proxy layer translates standard API calls into cluster-wide operations, while a host-pool abstraction hides individual host details from the cli
Distributes containers across hosts using a simple round-robin algorithm when no advanced scheduler is configured.
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
Assigns priority, period, and budget to protection domains for controlled CPU time allocation and round-robin execution.
Acest proiect este o colecție de documentație tehnică și ghiduri concepute ca un explainer pentru arhitectura calculatoarelor. Oferă resurse educaționale despre modul în care procesoarele și sistemele de operare execută programele, concentrându-se pe ciclul fetch-execute și relația fundamentală dintre hardware și kernel. Documentația acoperă o gamă largă de operațiuni de sistem de nivel scăzut, inclusiv ghiduri detaliate despre formatul binar executabil și linkabil (ELF), gestionarea memoriei virtuale și operațiunile la nivel de kernel. Explorează în mod specific mecanica scheduling-ului CPU, multitasking-ul preemptiv și utilizarea întreruperilor de timer pentru a gestiona execuția proceselor. Materialul explică în continuare fluxurile de lucru de gestionare a memoriei, cum ar fi traducerea adreselor, demand paging și copy-on-write page sharing. Acoperă, de asemenea, securitatea și controlul accesului prin gestionarea privilegiilor procesorului și aplicarea permisiunilor paginilor de memorie, precum și interfața de system call utilizată de programele din user-space pentru a solicita operațiuni privilegiate de kernel. Ghidurile detaliază, de asemenea, ciclul de viață al execuției programului, de la secvența inițială de boot și încărcarea binarului până la înlocuirea procesului și bootstrapping-ul proceselor din userland.
Provides a technical breakdown of how the kernel queues, assigns, and preempts tasks using timers.
This project is a customized OpenJDK distribution optimized for high-throughput distributed applications. It features a coroutine runtime engine that replaces kernel threads with lightweight symmetric coroutines to increase concurrency and reduce scheduling overhead while maintaining standard Java interface compatibility. The runtime distinguishes itself through a multi-tenant resource manager and specialized networking providers. It implements resource isolation for CPU and memory to prevent cross-tenant interference and integrates Remote Direct Memory Access for high-throughput, low-latency
Prevents single tasks from monopolizing the CPU by detecting timeouts and forcing them to yield control.
Acest proiect este un framework educațional și un set de instrumente conceput pentru dezvoltarea și testarea kernel-urilor de sistem de operare. Oferă un mediu structurat pentru implementarea primitivelor fundamentale de sistem, inclusiv gestionarea memoriei virtuale, programarea preemptivă a proceselor și organizarea sistemului de fișiere, folosind Rust și C. Framework-ul este orientat în mod specific către arhitecturile RISC-V și x86, servind drept laborator pentru învățarea modului de construire a software-ului de bază al sistemului de la zero. Proiectul se distinge prin suportul atât pentru implementarea pe bare-metal, cât și pentru emularea hardware, permițând dezvoltatorilor să valideze logica kernel-ului pe hardware fizic sau în medii simulate. Include un toolchain complet de build care gestionează compilarea cross-arhitectură și inițializarea firmware-ului, asigurând că kernel-ul poate fi corect bootstrapat și executat pe diferite platforme țintă. Sistemul acoperă o gamă largă de capabilități de nivel scăzut, inclusiv straturi de abstractizare hardware care decuplează logica sistemului de design-urile specifice ale procesoarelor și interfețe de apeluri de sistem care gestionează limita dintre aplicațiile user-space și serviciile kernel-ului. De asemenea, încorporează funcții de observabilitate, cum ar fi logarea la runtime și monitorizarea execuției, pentru a asista la analiza comportamentului sistemului în timpul dezvoltării.
Coordinates task execution using preemptive round-robin scheduling to ensure fair processor time distribution.
Acest proiect este un ghid tehnic de programare și o resursă educațională axată pe internele Go, mecanismele de runtime și funcționalitățile avansate ale limbajului. Oferă o analiză conceptuală detaliată a modelului de execuție al limbajului, inclusiv scheduler-ul său, analiza de escape a memoriei și mecanismele de garbage collection. Materialul se distinge prin incursiuni profunde în designul sistemelor cu concurență ridicată, explorând implementarea pool-urilor de worker-i și a canalelor de comunicare. Acoperă, de asemenea, programarea de rețea de nivel scăzut cu accent pe multiplexarea I/O și gestionarea stării TCP, alături de un studiu al teoriei sistemelor distribuite aplicând teoremele CAP și BASE pentru servicii scalabile. Domeniul de aplicare se extinde la optimizarea performanței prin profilarea CPU și a memoriei, gestionarea dependențelor modulelor și verificarea integrității, precum și aplicarea principiilor de arhitectură software precum inversarea dependenței. Examinează în continuare comportamentul polimorf al sistemului de tipuri și internele gestionării automate a memoriei.
Details how the runtime preempts long-running tasks to prevent processor starvation.
RPi-Monitor este o suită de monitorizare concepută pentru medii Linux embedded și computere cu o singură placă (SBC). Oferă un framework pentru colectarea telemetriei hardware în timp real, urmărirea metricilor de performanță a sistemului și vizualizarea datelor printr-un dashboard web. Sistemul este construit pentru a gestiona persistența datelor pe termen lung prin utilizarea bazelor de date round-robin cu dimensiune fixă, asigurând menținerea înregistrărilor istorice fără a depăși capacitatea de stocare. Proiectul se distinge prin accentul pus pe integrarea hardware-ului embedded și deployment-ul flexibil. Suportă monitorizarea senzorilor fizici externi și poate fi implementat în medii containerizate sau integrat direct în distribuții Linux embedded personalizate prin rețete de build. Pentru a acomoda sistemele de fișiere restricționate sau volatile, software-ul include un mod de operare read-only, în timp ce arhitectura sa modulară de plugin-uri permite adăugarea de scripturi personalizate și afișaje hardware externe. Dincolo de monitorizarea locală, sistemul funcționează ca un agent pentru infrastructura de rețea mai largă, expunând datele de telemetrie prin protocoale standardizate și endpoint-uri JSON. Include un motor de alertare bazat pe praguri pentru a declanșa notificări atunci când performanța deviază de la parametrii definiți și impune securitatea prin autentificare și integrare cu reverse proxy pentru a gestiona accesul la distanță la dashboard.
Persists historical performance metrics in fixed-size circular buffers to ensure long-term data tracking.