operating systems
22 articles tagged operating systems.
-
Linux Page Cache and Dirty-Page Writeback
How Linux caches file data in memory, serves reads and writes through cached pages, and flushes dirty data to durable storage.
-
Copy-on-Write fork() and Copying Page Faults
How Linux makes fork() cheap by sharing memory pages until parent or child writes to one.
-
Linux epoll Interest and Ready Lists
How epoll records monitored file descriptors, reports readiness, and changes an event loop’s obligations under level- and edge-triggered modes.
-
TLB Shootdowns and Cross-Core Translation Invalidation
How operating systems keep per-core address-translation caches correct when a process’s page tables change.
-
RCU Read-Side Critical Sections and Grace Periods
How RCU lets readers access shared data without locks while writers publish replacements and reclaim old versions safely.
-
Linux cgroup v2 memory.high and Memory Reclaim
How memory.high applies reclaim and throttling before memory.max can trigger an out-of-memory kill, including hierarchical accounting.
-
Linux io_uring Shared Rings and Batching
How io_uring moves requests through shared submission and completion rings, and how batching and polling reduce syscall and scheduling costs.
-
Linux Page Cache and Dirty-Page Writeback
How Linux serves file reads from memory and turns modified cached pages into storage writes and durable data.
-
Linux Futexes: User-Space Fast Paths and Kernel Wait Queues
Futexes let synchronization stay in user space when uncontended and use kernel wait queues only when threads must sleep.
-
Copy-on-Write Memory During Linux fork
How Linux lets forked processes share physical pages safely until a write requires a private copy.
-
Linux TLB Shootdowns on Multicore Systems
How Linux keeps per-CPU virtual-to-physical translation caches correct, and why invalidating them with IPIs can hurt multicore performance.
-
Cgroups v2 Resource Control for Containers
How cgroups v2 hierarchies account for and limit CPU time, memory, and process creation inside containers.
-
Linux epoll: Interest Lists, Ready Lists, and Triggers
How epoll tracks watched descriptors, reports readiness, and lets one thread handle many connections with level- or edge-triggered events.
-
Linux Page-Cache Readahead
How Linux detects sequential file access, reads pages early, and limits wasted I/O when access becomes sparse or random.
-
Linux Dirty Pages, Writeback, and fsync
How Linux caches file writes in RAM, writes them back in the background, and uses fsync to establish a durability boundary.
-
Linux Copy-on-Write Across forked Processes
How Linux shares forked processes’ pages, changes their page tables, and copies memory only when a write triggers a page fault.
-
TLB Shootdowns and Deferred Invalidation
How CPUs keep page-table changes safe, why TLB shootdowns interrupt other cores, and how batching reduces their performance cost.
-
Linux Futexes and User-Space Mutex Waiting
A futex lets a mutex use atomic user-space operations normally and enter the kernel only when a contending thread must sleep or be woken.
-
Windows Job Objects for Process Control
Windows job objects group processes so services can account for descendants, enforce resource limits, receive events, and terminate a whole workload.
-
Linux epoll Readiness Notification
How epoll tracks monitored file descriptors, reports readiness, and changes event-loop I/O with level-triggered and edge-triggered modes.
-
Linux PID Namespaces and the Responsibilities of PID 1
Understand how Linux PID namespaces provide isolated process IDs and why their PID 1 must handle signals and reap orphaned children.
-
Linux TLB Shootdowns and Their Performance Cost
How Linux keeps per-core address-translation caches consistent when page-table entries change, and why that coordination can slow workloads.