Tuning Virtual Memory for Performance
Tuning Virtual Memory for Performance
diplomová práce (OBHÁJENO)
Zobrazit/ otevřít
Trvalý odkaz
http://hdl.handle.net/20.500.11956/9908Identifikátory
SIS: 45698
Kolekce
- Kvalifikační práce [11264]
Autor
Vedoucí práce
Oponent práce
Yaghob, Jakub
Fakulta / součást
Matematicko-fyzikální fakulta
Obor
Softwarové systémy
Katedra / ústav / klinika
Katedra softwarového inženýrství
Datum obhajoby
21. 5. 2007
Nakladatel
Univerzita Karlova, Matematicko-fyzikální fakultaJazyk
Angličtina
Známka
Výborně
Většina dnešních operačních systémů implementuje virtuální paměť a pro aplikační (uživatelskou) vrstvu poskytuje pouze pohled na virtuální vrstvu. Je známo, že výkonnost některých aplikací je výrazně ovlivněna aktuálním použitím fyzické paměti, které je určeno momentálním virtuálním a fyzickým mapováním. Mapování je pod plnou kontrolou operačního systému a není deterministické, což vede k sub-optimalitě a nedeterminismu ve výkonu aplikace. Cílem práce je umožnit ladění výkonu aplikace daného mapováním, a to jak z režimu jádra, tak i z uživatelského režimu. Modifikovali jsme aktuální jádro operačního systému Linux a připravili tak rozhraní, které aplikaci umožní měnit rozložení paměti na základě strategií implementovaných jako moduly jádra. Naprogramovali jsme strategie optimalizované pro CPU cache a ukázali jsme, že tento přístup může pomoci v řešení jak sub-optimality, tak i nedeterminismu ve výkonu některých aplikací.
Most of the current operating systems implement virtual memory management and provide only a virtual layer for the user land. It is known that the performance of some applications (especially memory intensive) is influenced by the current use of physical addresses specified by virtual memory mapping performed by the operating system and is not fully deterministic. The problem results in both sub-optimal and non-deterministic performance. This thesis focuses on the user space approach to virtual memory tuning for an application with special requirements. The Linux kernel was modified to provide a simple interface for the user space, which enables a process specific physical memory layout manipulation on strategies implemented as kernel modules. We have implemented CPU cache sensitive strategies and shown that this can improve both the optimality and determinism of performance for some applications.