The Scheduler | Internals for Interns

In the previous article we explored how Go’s memory allocator manages heap memory — grabbing large arenas from the OS, dividing them into spans and size classes, and using a three-level hierarchy (mcache, mcentral, mheap) to make most allocations lock-free. A key detail was that each P (processor) gets its own memory cache. But we never really explained what a P is, or how the runtime decides which goroutine runs on which thread. That’s the scheduler’s job, and that’s what we’re exploring today.

Internals for Interns
READ_ONCE(), WRITE_ONCE(), but not for Rust

The READ_ONCE() and WRITE_ONCE() macros are heavily used within the kernel; there are nearly 8, [...]

LWN.net
Go Scheduler

↑ ↓

Melatoni
Intro - Ruby, Ractors, and Lock-Free Data Structures