Seminarium: Systemy Rozproszone
10 listopada 2022 12:15, sala 4070, transmisja online
Wojciech Przytuła, Aleksandra Martyniuk
Wykrywanie błędów bezpieczeństwa w kodzie Rust przy użyciu analizatora RUDRA
Język Rust ma obecnie znakomitą renomę w aspekcie zapewniania bezpieczeństwa pamięci w aplikacjach. Obecne w nim mechanizmy statycznej analizy kodu uniemożliwiają bowiem wystąpienie całej gamy popularnych błędów. Tyle teoria, a co mówi praktyka? W rzeczywistości bezpieczeństwo standardowego kodu w Rust możemy udowodnić tylko przy założeniu, że wykorzystywany przezeń kod unsafe
również jest bezpieczny. Czy możemy obronić zasadność tego założenia w przypadku popularnych bibliotek Rust, spośród których ponad 25% wykorzystuje kod unsafe
? Sprawę pomaga rozstrzygnąć program RUDRA, analizator kodu unsafe
raportujący potencjalne błędy bezpieczeństwa w nim. Opowiem o typach błędów, które RUDRA wykrywa, a także przedstawię statystyki wykrytych problemów. Zapraszam,
Wojciech Przytuła
Bibliografia:
Wydajne zasady planowania dla zadań w skali mikrosekundowej
W dzisiejszych czasach dąży się do zminimalizowania latencji aplikacji przy jednoczesnym wykorzystywaniu dostępnych zasobów w możliwie najbardziej efektywny sposób. Wiele systemów stara się to osiągnąć poprzez odpowiednie przydzielanie rdzeni w zależności od aktualnego obciążenia konkretnych aplikacji. Niestety, odpowiednie wyważenie pomiędzy zminimalizowaniem latencji i zapewnieniem efektywności jest trudne, w związku z czym systemy zmuszone są do podejmowania niekorzystnych kompromisów. W szczególności dla krótkich zadań (rzędu 1μs) pozostaje w tej kwestii sporo miejsca na optymalizacje.
Systemy często poświęcają zbyt mało uwagi na politykę alokowania rdzeni i politykę równoważenia obciążenia. Opowiem o tym, jak odpowiednie połączenie tych polityk, wpływa na balans pomiędzy latencją i efektywnością użycia dostępnych zasobów dla krótkich zadań. Zapraszam,
Aleksandra Martyniuk
Bibliografia: