Seminarium: Systemy Rozproszone
13 października 2022 12:15, sala 4070, transmisja online
Michał Radwański, Maksymilian Grochowski



Zepsute porządki na zależnościach w jądrze Linuksa



Różne architektury sprzętowe posiadają różny model spójności pamięci. Swoje własne modele mają języki takie jak C, co również niekoniecznie idzie w parze z potrzebami programistów, w szczególności takich projektów jak jądro Linuksa.

Porządek na zależnościach jest to porządek, który ogranicza sposób w jakim da się zaobserwować stan pamięci z punktu widzenia różnych rdzeni procesora w trakcie wykonania programu.

Od dawna wśród programistów jądra istniała obawa przed kompilatorem, który inaczej rozumiejąc pojęcie spójności pamięci, w efekcie wyprodukuje błędny kod. Różne optymalizacje kompilatora mogą doprowadzić do sytuacji, w której mimo że w świetle modelu pamięci jądra Linuksa (z angielskiego LKMM) istnieje pewien porządek na zależnościach, po optymalizacjach kompilatora porządek ten zanika.

W trakcie prezentacji przybliżę na czym polegają różne założenia wchodzące w skład LKMM oraz jak się one porównują do standardu C11, a także opiszę metodę automatycznego wykrywania zepsutych porządków na zależnościach.

Zapraszam,
Michał Radwański



Bibliografia:





Systemowe szeregowanie procesów z wykorzystaniem Nest



Aby wspierać silnie współbieżne aplikacje, standardowy scheduler Linuksa (CFS) rozprowadza zadania (przy ich tworzeniu i budzeniu) po rdzeniach systemu. Jednakże zostało zauważone, że w środowisku serwerowym taka strategia prowadzi do kierowania procesów do długo nie wykorzystywanych rdzeni, które działają z mniejszą częstotliwością. Prowadzi to do strat wydajności i energii.

W trakcie prezentacji przedstawię propozycję modyfikacji standardowego schedulera, tak aby starał się brać pod uwagę zmienne taktowanie rdzeni procesora, a także wydajność i pobór energii jakie modyfikacja ta osiąga w porównaniu do oryginalnego schedulera, a także innej modyfikacji tego schedulera (SMove).

Zapraszam,
Maksymilian Grochowski



Bibliografia: