In the 1990s, it was observed that Translation Lookaside Buffer (TLB)
coverage was shrinking as a percentage of physical memory. Consequently, the relative amount of program time spent servicing TLB misses was increasing despite efforts to offset the costs with hardware innovations. One means of reducing TLB misses is to increase TLB coverage by utilising multiple
page sizes called superpages, available in modern processors. Operating system support for superpages is complicated by the fact that hardware requires the pages to be naturally aligned and physically contiguous
limiting what memory can be used as a superpage. The potential unavailability
of superpages is problematic on architectures that limit the placement
of pages with different sizes. Furthermore, there is no guarantee that superpages
are a performance benefit for all workloads due to differences in the TLB hierarchy for different Memory Management Units (MMU) and the cost of monitoring whether pages should be promoted or demoted. This complicates
cost calculations for fully transparent superpage usage as the potential
gain or loss is dependant on the workload characteristics. This dissertation details the design, implementation and evaluation of a system whereby user space explicitly request superpages with a reasonable
probability of their availability. It begins by describing a policy that manages
the physical contiguity requirement before describing how the cost of allocating new superpages can be reduced. It then describes a reservation policy as an alternative to superpage demotion for architectures with limitations on page placement. While superpages are explicitly requested from
user space, this dissertation describes how applications can utilise superpages
without requiring source modification. The design was validated by being incorporated
into the Linux® kernel and evaluated on a common GNU/Linux distribution. The results show that superpages do reduce the time spent
servicing TLB misses which can thus grant a performance improvement.