Zero-Copy, DMA, and High-Performance Buffers
The previous chapters covered how memory is addressed, allocated, and kept correct. This final deep dive of the stage is about moving data without moving it, which is the heart of high-throughput s...
The previous chapters covered how memory is addressed, allocated, and kept correct. This final deep dive of the stage is about moving data without moving it, which is the heart of high-throughput s...
Stage 5 showed how a process is an isolated container, how threads share the address space inside it, and how pipelines move work without growing without bound. Stage 6 turns to the memory those pr...
The previous article described buffered and direct I/O, and noted that a buffered write returns before the data reaches the device. This chapter explains where that data waits and what it takes to ...
The first four chapters of this stage described the address space as a whole, the tables that translate it, the faults that fill it, and the mappings that project files into it. This chapter goes d...
The previous chapter introduced virtual addresses and the page tables that translate them, but kept the translation itself at a distance. This chapter opens that mechanism. It is the second article...
The previous chapter ended by noting that a cleared present bit does not always mean the process is wrong. This chapter follows that thread. It is the third article of Stage 6. A page fault is the...
The previous chapter closed by pointing at mmap as the place where many page faults are born. This chapter opens that mechanism. It is the fourth article of Stage 6. mmap is the system call that m...
The previous chapters described how memory is addressed, translated, faulted in, mapped, laid out, and allocated. This final chapter of the stage asks the hard question that sits on top of all of i...
The previous chapter described the heap as the region for data whose lifetime or size is not known at compile time. This chapter goes inside it to the allocator, the machinery that actually hands o...
The previous article showed that a file descriptor points at an open file description, which in turn points at an underlying object. This chapter explains what that object is and how a textual path...