VMA merging in Linux
Spojování VMA regionů v operačním systému Linux
diplomová práce (OBHÁJENO)
Zobrazit/ otevřít
Trvalý odkaz
http://hdl.handle.net/20.500.11956/176288Identifikátory
SIS: 233551
Kolekce
- Kvalifikační práce [11242]
Autor
Vedoucí práce
Konzultant práce
Tůma, Petr
Oponent práce
Bulej, Lubomír
Fakulta / součást
Matematicko-fyzikální fakulta
Obor
Softwarové systémy
Katedra / ústav / klinika
Katedra distribuovaných a spolehlivých systémů
Datum obhajoby
13. 9. 2022
Nakladatel
Univerzita Karlova, Matematicko-fyzikální fakultaJazyk
Angličtina
Známka
Výborně
Klíčová slova (česky)
Linux|kernel|virtual memory|CKlíčová slova (anglicky)
Linux|kernel|virtual memory|CTato práce se zaobírá se správou virtuální paměti v Linuxovém ker- nelu. Soubory nebo zařízení mohou být mapována do virtuální paměti pomocí systémového volání mmap(), které je také schopné vytvořit takzvané anonymní mapování. Ty nic nemapují a slouží pouze jako metoda alokace paměti, která může specifikovat ochranu paměti a příznaky pro vytvořenou anonymní oblast virtuální paměti (VMA). Mapování lze sloučit nebo rozdělit v závislosti na jeho příznacích, ochraně paměti, umístění ve virtuální paměti a dalších parametrech. Nicméně v některých případech, i když dvě VMA mají prakticky identické parametry, nemůžou být úspěšně sloučeny kvůli omezení implementace. Tato práce se zaměřuje na anonymní VMA a jejich parametry page offset a anon vma, které v některých případech brání sloučení v současném mainline kernelu. Je demonstrováno, že ve většině případů lze s přiměřeným úsilím odstranit překážky a dojde k sloučení. vi
This thesis deals with virtual memory management in the Linux kernel. Files or devices can be mapped into virtual memory using the mmap() sys- tem call, which is also capable of creating so-called anonymous mappings. Those do not map anything and serve only as a memory allocation method that can specify memory protection and flags for the created anonymous virtual memory area (VMA). A mapping can be merged or split depending on its flags, memory protection, location in the virtual memory and other parameters. However, in some cases even when two VMAs have practically identical parameters, they may not merge successfully because of implementation limitations. This thesis con- centrates on anonymous VMAs and their page offset and anon vma parameters, which in some cases prevent a merge in the current mainline kernel. It is demon- strated that in most of the cases with reasonable amount of effort the obstacles can be removed and the merges happen. v