Core - Process Management & Scheduling #34
Owner
- Preemptive multitasking via custom IRQ0 ISR (1024 Hz PIT timer) drives context switches using ESP-swap (PUSHAD/POPAD), no TSS task-switching.
- Round-robin scheduler with priority-based quantum (quantum = priority × 8 ticks) and automatic reaping of finished/errored processes
- Process API - create, kill, terminate, sendMessage, proc_yield, proc_sleep_ms, proc_exit; parent-child tracking with smChildExited notification
- Resource binding - per-process resource list with automatic cleanup on death (sockets, timers, file handles); TCP sockets auto-bound to owning process
- Per-process StdIO - each process gets its own stdin/stdout/stderr POutBuf triple; legacy TCommandMethod callbacks wrapped as real processes
- VTerminal - multi-instance terminals with foreground process drain, Ctrl+C interrupt, background jobs (& suffix, JOBS/FG), per-terminal CWD and directory stack
- CLI/STI guards on kalloc/kfree to prevent heap corruption from preemption mid-allocation
- 8 KB per-process kernel stack, rand32() PIDs, DList-backed process table
- Preemptive multitasking via custom IRQ0 ISR (1024 Hz PIT timer) drives context switches using ESP-swap (PUSHAD/POPAD), no TSS task-switching.
- Round-robin scheduler with priority-based quantum (quantum = priority × 8 ticks) and automatic reaping of finished/errored processes
- Process API - create, kill, terminate, sendMessage, proc_yield, proc_sleep_ms, proc_exit; parent-child tracking with smChildExited notification
- Resource binding - per-process resource list with automatic cleanup on death (sockets, timers, file handles); TCP sockets auto-bound to owning process
- Per-process StdIO - each process gets its own stdin/stdout/stderr POutBuf triple; legacy TCommandMethod callbacks wrapped as real processes
- VTerminal - multi-instance terminals with foreground process drain, Ctrl+C interrupt, background jobs (& suffix, JOBS/FG), per-terminal CWD and directory stack
- CLI/STI guards on kalloc/kfree to prevent heap corruption from preemption mid-allocation
- 8 KB per-process kernel stack, rand32() PIDs, DList-backed process table
Component
Core
labels
Reference in New Issue
Block a user