Zero-Copy, DMA, and High-Performance Buffers
Earlier chapters showed how memory is addressed, allocated, and kept correct. This final chapter of the stage shows how to move data without copying it. That is the core idea behind fast systems. T...
Earlier chapters showed how memory is addressed, allocated, and kept correct. This final chapter of the stage shows how to move data without copying it. That is the core idea behind fast systems. T...
Stage 5 showed a process as an isolated container. It showed threads sharing the address space inside that container. It showed pipelines moving work without growing without bound. Stage 6 looks at...
The previous article described two kinds of I/O. Buffered I/O goes through the kernel cache. Direct I/O goes straight to the device. With buffered I/O, your write call returns before the device sto...
The first four chapters of this stage described the address space as a whole. They covered the tables that translate it, the faults that fill it, and the mappings that project files into it. This c...
The previous chapter introduced virtual addresses and the page tables that translate them. It kept the translation itself at a distance. This chapter opens up that mechanism. It is the second artic...
The previous chapter noted that a cleared present bit does not always mean the process is wrong. This chapter continues that idea. It is the third article in Stage 6. A page fault is the CPU askin...
The previous chapter showed that mmap is where many page faults start. This chapter explains how that mechanism works. This is the fourth article in Stage 6. mmap is a system call. It maps a regio...
The earlier chapters showed how memory is addressed, translated, faulted in, mapped, laid out, and allocated. This final chapter asks a hard question about all of that. Is the program using that me...
The previous chapter described the heap. The heap holds data whose size or lifetime is not known when the program is compiled. This chapter looks inside the heap at the allocator. The allocator is ...
The previous article showed that a file descriptor points at an open file description. That description points at an underlying object. This chapter explains what that object is and how a textual p...