Seminarium: Systemy Rozproszone
18 listopada 2021 12:15, sala 4070, transmisja online
Fork jest podstawowym wywołaniem systemowym używanym do tworzenia procesów. Dzięki swojemu sprytnemu zastosowaniu copy-on-write jest z nami do dziś.
Natomiast wykorzystanie pamięci przez coraz to nowsze aplikacje ciągle rośnie. On-Demand-Fork jest propozycją alternatywnego forka, która usprawnia jego działanie w aplikacjach intensywnie wykorzystujących pamięć, bez zmian w hardwarze czy w samym kodzie aplikacji. Opowiem jego działaniu, przykładach użycia, oraz czym się różni od bardziej znanego rozwiązania przyspieszającego forki: huge pages.
Zapraszam,
Cezary Bednarz
Bibliografia:
RCU jest prymitywem synchronizacyjnym wprowadzonym do kernela w październiku 2002. Charakteryzuje go duża szybkość, świetna skalowalność, i wysoka odporność na zakleszczenia. Pozwala na używanie danej struktury jednocześnie poprzez wielu czytelników i jednego pisarza.
W teorii RCU jest bardzo proste, najbardziej podstawowa implementacja wymaga tylko kilku linii kodu. Jednakże by spełnić wszystkie napotkanie w kernelu potrzeby i problemy, kernelowa implementacja jest znacznie większa i bardziej skomplikowana, i posiada rozbudowane API, z kilkoma rodzajami RCU (RCU, RCU-bh, RCU-sched, SRCU, QRCU). Skomplikowane API zwiększa szansę na jego niepoprawne użycie, co może skutkować (i poskutkowało) błędami bezpieczeństwa. Opowiem o tym jak API RCU zostało uproszczone, w odpowiedzi na błąd bezpieczeństwa spowodowany takim właśnie niepoprawnym użyciem.
Zapraszam,
Karol Baryła
Bibliografia: