On-the-Fly Garbage Collection

Slides:



Advertisements
Podobne prezentacje
Temat 2: Podstawy programowania Algorytmy – 1 z 2 _________________________________________________________________________________________________________________.
Advertisements

Proces doboru próby. Badana populacja – (zbiorowość generalna, populacja generalna) ogół rzeczywistych jednostek, o których chcemy uzyskać informacje.
Witam na szkoleniu Colway. SZKOLENIE Z PREZENTOWANIA PIERWSZEGO PLANU FINANSOWEGO COLWAY.
INFORMA CJA o wynikach kontroli artykułów dla dzieci III kwartał 2014 r.
Tworzenie odwołania zewnętrznego (łącza) do zakresu komórek w innym skoroszycie Możliwości efektywnego stosowania odwołań zewnętrznych Odwołania zewnętrzne.
Pionierka ogół umiejętności związanych z budowaniem przez harcerzy.
Występowanie, charakterystyka, rozmnażanie, wylęganie, zagrożenia, sposoby ochrony BOCIAN BIAŁY Opracowanie: Uczniowie Szkoły Podstawowej im. mjr. Henryka.
Agresja i przemoc w środowisku szkolnym -metody postępowania w sytuacjach trudnych.
Teoria gry organizacyjnej Każdy człowiek wciąż jest uczestnikiem wielu różnych gier. Teoria gier zajmuje się wyborami podejmowanymi przez ludzi w warunkach.
Sprawozdawczość. Podstawowe terminy Okres sprawozdawczy  3 kolejne miesiące, licząc od daty zawarcia umowy o dofinansowanie projektu Rodzaje raportów.
Finansowanie wybranych działań w parkach narodowych przy udziale środków funduszu leśnego - zakres finansowy Warszawa, 06 kwietnia 2016r.
Ryzyko a stopa zwrotu. Standardowe narzędzia inwestowania Analiza fundamentalna – ocena kondycji i perspektyw rozwoju podmiotu emitującego papiery wartościowe.
Bezpieczeństwo i zdrowie w pracy dotyczy każdego. Jest dobre dla ciebie. Dobre dla firmy. Partnerstwo dla prewencji Co badanie ESENER może nam powiedzieć.
Trening cardio Gdy chcemy zrzucić kilka kilogramów i pozbyć się cellulitu, warto zdecydować się na trening cardio, który nie tylko pomoże spalić tłuszcz,
Czyli Jędrki, Emki i Zuźki. Każdy człowiek ma w sobie wielkie możliwości, musi je tylko odkryć !
„Jak uczyć dzieci na temat przemocy i wykorzystywania”
Wprowadzenie Celem naszej prezentacji jest przypomnienie podstawowych informacji na temat bezpiecznego powrotu do domu i nie tylko. A więc zaczynamy…;)
Zmienne losowe Zmienne losowe oznacza się dużymi literami alfabetu łacińskiego, na przykład X, Y, Z. Natomiast wartości jakie one przyjmują odpowiednio.
MOTYWACJA. Słowo motywacja składa się z dwóch części: Motyw i Akcja. Aby podjąć działanie (akcję), trzeba mieć do tego odpowiednie motywy. Łaciński źródłosłów.
Oferujemy sprzedaż ręcznie wytwarzanych przez nas kartek na różne okazje (mi. na Boże narodzenie, Wielkanoc itp.). Kartki wykonywane będą z powszechne.
Algorytmy Informatyka Zakres rozszerzony
KARTY RATOWNICZE W POLSCE
Przygotowała Dominika Karpińska - psycholog. Nie każdy ból dorastania jest depresją, ale też nie każdy można zbyć wzruszeniem ramion i stwierdzeniem;
KOMBINATORYKA.
Teoria masowej obsługi Michał Suchanek Katedra Ekonomiki i Funkcjonowania Przedsiębiorstw Transportowych.
Budżet rodzinny Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego.
Menu Jednomiany Wyrażenia algebraiczne -definicja Mnożenie i dzielenie sum algebraicznych przez jednomian Mnożenie sum algebraicznych Wzory skróconego.
POLITECHNIKA RZESZOWSKA im. Ignacego Łukasiewicza WYDZIAŁ ELEKTROTECHNIKI I INFORMATYKI ZAKŁAD METROLOGII I SYSTEMÓW POMIAROWYCH METROLOGIA Andrzej Rylski.
Strategia Rozwoju Powiatu Kluczborskiego planowanie strategiczne w JST Małgorzata Ziółkowska tel kom
Bezpieczeństwo przy pracy z ciekłym azotem
Optymalna wielkość produkcji przedsiębiorstwa działającego w doskonałej konkurencji (analiza krótkookresowa) Przypomnijmy założenia modelu doskonałej.
Definiowanie i planowanie zadań typu P 1.  Planowanie zadań typu P  Zadania typu P to zadania unikalne służące zwykle dokonaniu jednorazowej, konkretnej.
WYDZIAŁ OSWIATY URZEDU MIASTA POZNANIA REKRUTACJA ZASADY REKRUTACJI DO SZKÓŁ PONADGIMAZJALNYCH WSPOMAGANEJ SYSTEMEM KOMPUTEROWYM.
1 Definiowanie i planowanie zadań budżetowych typu B.
, + - = 0,5 CZYTAJ DOKŁADNIE ZADANIA I POLECENIA. IM TRUDNIEJSZE ZADANIE, TYM BARDZIEJ WARTO JE PRZECZYTAĆ KILKA RAZY.
Najważniejsze Informacje o dawstwie szpiku
Kluczowe elementy skutecznej strategii analizy danych internetowych
Najważniejsze Informacje o dawstwie szpiku
Schematy blokowe.
DEFINICJA I ZASTOSOWANIE W JĘZYKU HASKELL
System wspomagania decyzji DSS do wyznaczania matematycznego modelu zmiennej nieobserwowalnej dr inż. Tomasz Janiczek.
Bezpieczeństwo w sieci
Najważniejsze informacje o dawstwie szpiku
Liczby pierwsze.
ALGORYTMY I STRUKTURY DANYCH
Wstęp do Informatyki - Wykład 3
Który system wybrać?.
Optymalizacja programów Open-Source
Konflikt interesów.
Rekrutacja do przedszkoli w Gminie Strzyżów
Materiały pochodzą z Platformy Edukacyjnej Portalu
CEL: - Osiągnąć równość płci oraz wzmocnić pozycję kobiet
Tworzenie modelu: przeglądanie wyników, redukcja rozmiarów modelu.
Jak korzystać z usługi Video s i Raportu Kontaktów
EXCEL Wykład 4.
Problem Plecakowy (Problem złodzieja okradającego sklep)
SYSTEM KONTROLI FREKWENCJI
Najważniejsze reguły ankietowania
Pisemne dzielenie liczb naturalnych
To naprawdę bardzo proste!
FORMUŁOWANIE HIPOTEZ STATYSTYCZNYCH
Implementacja rekurencji w języku Haskell
Znajdowanie liczb pierwszych w zbiorze
o których prawdopodobnie nie wiesz lub nie myślisz:
wspomaganej systemem komputerowym NABÓR 2015
Duchowa adopcja Dzieci dzieciom
Wyrok WSA w Bydgoszczy z dnia 27 października 2016 r., I SA/Bd 613/16
Ministerstwo Rolnictwa i Rozwoju Wsi
Program na dziś Wprowadzenie Logika prezentacji i artykułu
To naprawdę bardzo proste!
Zapis prezentacji:

On-the-Fly Garbage Collection Algorytm odśmiecania jest wykonywany współbieżnie z danym programem On-the-Fly Garbage Collection Zwalnianie pamięci, do której nie ma już dostępu poprzez zmienne programu Agata Hejmej

Mark and Sweep Strategia odśmiecania: * raz na jakiś czas badane są wskaźniki w pamięci programu * zaznacza się wszystkie elementy bezpośrednio dostępne poprzez zmienne programu * rekurencyjnie zaznacza się wszystkie elementy z nich dostępne, aż nie ma żadnych nowych zaznaczeń * niezaznaczone elementy to śmieci, które się zwalnia

safety – dostępne z programu elementy pamięci nie mogą być zwalniane Najważniejsze własności odśmiecacza pamięci: safety – dostępne z programu elementy pamięci nie mogą być zwalniane liveness – wszystkie śmieci muszą być w końcu zwolnione

Algorytmy typu On-the-Fly Garbage Collector, które są bezpieczne i żywotne są trudne do zaprojektowania. Jeszcze trudniejsze jest udowodnienie poprawności ich działania! Pierwsze rozwiązanie – algorytm używający 3-kolorowego zaznaczania (Dijkstra i inni) Algorytm zbyt skomplikowany, żeby udowodnić jego bezpieczeństwo i żywotność! Główna motywacja dla Ben-Ari'ego do stworzenia algorytmu używającego 2-kolorowego zaznaczania.

mutator – reprezentuje operacje programu na pamięci Algorytm Ben-Ari'ego opisuje działanie dwóch współbieżnych procesów: mutator – reprezentuje operacje programu na pamięci collector – zajmuje się odśmiecaniem

Pamięć programu: * tablica elementów zwanych węzłami (nodes) * children – węzły na które wskazuje dany węzeł * roots – węzły, do których jest bezpośredni dostęp z programu * nil – węzeł który zawsze wskazuje na siebie (należy do roots) * free list – węzeł, który wskazuje na listę niezaalokowanych elementów (należy do roots) * marking – każdy węzeł jest oznaczony jako czarny (jest do niego dostęp) albo biały (nie ma dostępu)

Odśmiecanie jest niezależne od wartości jakie znajdują się w węzłach pamięci. Dlatego operacje mutatora na wskaźnikach mogą być zamodelowane jako pojedyncze abstrakcyjne operacje, które przekierowują wskaźnik z jednego dostępnego węzła na inny dostępny węzeł. Mutator 1. Przekierowuje wskaźnik z jednego dostępnego węzła na inny dostępny węzeł (target node). 2. Koloruje na czarno węzeł, na który teraz wskazuje wskaźnik (target node).

Collector 1. Koloruje na czarno wszystkie węzły root. 2. Bada każdy węzeł w pamięci. Jeżeli jest czarny, koloruje jego dzieci na czarno. 3. Zlicza czarne węzły. Jeśli ich ilość wzrosła od ostatniego cyklu propagacyjnego, wraca do kroku 1. 4. Bada każdy węzeł w pamięci. Jeżeli węzeł jest biały, dołącza go do free list. Jeśli jest czarny koloruje go na biało.

Po co krok drugi mutatora?

Jakie własności modelu chcemy sprawdzić? Modelowanie Algorytmu Ben-Ari'ego w CCS. Jakie własności modelu chcemy sprawdzić? Jakie akcje? Musimy wiedzieć czy węzeł jest dostępny (acc - accessible) oraz kiedy jest zwolniony (coll - collected). safety – akcja colli nie może nigdy wystąpić, jeśli akcja acci może wystąpić. liveness – akcja acci zawsze będzie mogła się wydarzyć.

Niestety! Rezultat analizy konkretnego modelu nie musi się przenosić na działanie algorytmu w ogólności. Nasza analiza może być traktowana jako dobry sposób na odkrycie możliwych problemów. Nie jest na pewno dowodem na bezpieczeństwo i żywotność Algorytmu Ben-Ari'ego!

Ze względu na ograniczenia CWB w analizie za model przyjęto: memory size = 4 roots = 2 (nil oraz free list) InitSons = (nil, 3, 4, nil) InitColors = (white, white, white, white) Otrzymany model to GC4.

GC4 Safety GC4 Liveness !

Liveness – dla każdego węzła i jest tak, że o ile collector będzie działał, to w końcu będzie mogła być wykonana akcja acci GC4 Liveness uff...!

Czy pokazanie bezpieczeństwa i żywotności naszego modelu mówi nam dużo na temat Algorytmu Ben-Ari'ego w ogólności?

Nie koniecznie! Jeśli zamieni się kolejność kroków Mutatora, nie powinna być spełniona własność Safety. A nasz model mówi, że jest! Jest tak dlatego, że rozmiar modelowanej pamięci jest za mały, co nie pozwala na uchwycenie problemu, który powstaje. (tylko 4 węzły, przy większej ich liczbie generuje się zbyt wiele stanów, by zamodelować to w CWB)