Seminarium: Systemy Rozproszone
3 listopada 2022 12:15, sala 4070, transmisja online
Karol Baryła, Rafał Czarnecki



PKRU-Safe: Automatically Locking Down the Heap Between Safe and Unsafe Languages



Nowoczesne języki odporne na błędy pamięci (np. Rust) pozwalają wyeliminować całą klasę błędów bezpieczeństwa. Problemem jest przepisanie kodu na bezpieczne języki - nie zawsze jest to możliwe lub sensowne oraz wymaga ogromnego nakładu pracy. Rozwiązaniem pośrednim jest przepisywanie aplikacji po kawałku. Niestety, błąd w niebezpiecznej części tak przepisywanej aplikacji wpływa na całą pamięć procesu, więc faktyczne bezpieczeństwo otrzymujemy dopiero po zakończeniu takiego przepisywania.

Zaprezentuję rozwiązanie (PKRU-Safe) pozwalające korzystać ze zwiększonego bezpieczeństwa na bieżąco, poprzez izolację pamięci wykorzystywanej tylko przez część bezpieczną od tej należącej do części niebezpiecznej oraz współdzielonej między nimi. Rozwiązanie bazuje na Intel MPK oraz wymaga od programisty oznaczenia granicy między strefą bezpieczną i niebezpieczną.

Zapraszam,
Karol Baryła



Bibliografia:





Temeraire - hugepage-aware allocator



Alokacja pamięci potrafi być dosyć kosztowna w przypadku WSC (warehouse-scale computer) i może wpłynąć na wydajność aplikacji ze względu na rozłożenie danych. Jej optymalizacja może przynieść zauważalną poprawę zarówno poprzez zmniejszenie liczby cykli procesora zużywanych na działanie alokatora, jak i minimalizację fragmentacji pamięci.

Na seminarium przedstawię czym są hugepages oraz opowiem o implementacji i designie Temeraire - alokatorze wykorzystującym je do poprawy działania TCMalloca, głównie poprzez zmniejszenie missów Translation Lookaside Buffera oraz mądre przydzialanie pamięci, tak aby zmniejszyć jej fragmentację i tym samym poprawić liczbę zapytań na sekundę o 7.7% i zmniejszyć zużycie RAMu o 2.4% na testowanych przez autorów WSC.

Zapraszam,
Rafał Czarnecki



Bibliografia: