Co oznacza Atom?
Atom to współbieżny i specyficzny dla domeny język programowania, który jest używany w aplikacjach czasu rzeczywistego i osadzonych. Oferuje harmonogramowanie zadań w czasie kompilacji i generuje kod z ulepszonym wykorzystaniem pamięci i czasem wykonywania. Model współbieżności Atom eliminuje wymagania dotyczące algorytmów wzajemnego wykluczania.
Techoteka wyjaśnia Atom
Opracowany w 2007 roku Atom został wydany jako oprogramowanie typu open source w kwietniu tego roku. Został zaprojektowany w celu maksymalizacji operacji wykonywanych w danym cyklu zegara bez naruszania semantyki operacji atomowych. Jednak Atom równoważy również obciążenia przetwarzania i minimalizuje opóźnienia czasowe.
Opis obwodu Atom składa się z zestawu elementów stanu i reguł. Każda reguła składa się z dwóch komponentów: aktualizacji stanu i warunków włączania. Gdy reguły są włączone, akcje są wybierane do wykonania atomowego. Regułom przypisuje się priorytet liniowy i globalny, a wiele reguł może być zapisanych do tego samego elementu stanu. Zależności danych między regułami tworzą graf. Grafy cykliczne są preferowane jako reguły i mogą być komponowane sekwencyjnie. Kompilatory porządkują reguły w celu zminimalizowania krawędzi, które są przekazywane z reguł o niskim do wysokiego priorytetu. Ponieważ pary reguł wykluczają się wzajemnie, krawędzie nie są krytyczne dla grafu zależności danych reguł.
Obiekty atomów (znane również jako obiekty aktywne) są aktywnymi jednostkami podobnymi do serwerów wielowątkowych. Wszystkie przetworzone wiadomości tworzą nowe wątki w obiektach. Wątki są czasami tworzone jednocześnie podczas tworzenia obiektu w celu wykonywania wewnętrznych działań. Wykonywanie wątku nie jest wyprzedzające i tylko jeden wątek jest aktywny w obiekcie w danym momencie. Wątki odnoszą się do warunków aktywacji, które określają stany obiektów zgodne z wykonywaniem. Modele atomów są powiązane z funkcjami (takimi jak powiadomienie o stanie, stany abstrakcyjne i predykaty stanu) i są zintegrowane z przekazywaniem wiadomości i planowaniem wątków.