Summary
Here is a quick summary for you!
We have now seen how real page tables are built; not necessarily just as linear arrays but as more complex data structures. The trade-offs such tables present are in time and space. The bigger the table, the faster a TLB miss can be serviced, as well as the converse. Therefore, the right choice of structure depends strongly on the constraints of the given environment.
In a memory-constrained system (like many older systems), small structures make sense; in a system with a reasonable amount of memory and with workloads that actively use a large number of pages, a bigger table that speeds up TLB misses might be the right choice. With software-managed TLBs, the entire space of data structures opens up to the delight of the operating system innovator (hint: that’s you). What new structures can you come up with? What problems do they solve? Think of these questions as you fall asleep, and dream the big dreams that only operating-system developers can dream.
Get hands-on with 1400+ tech skills courses.