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: