Moje doświadczenie dotyczy teorii / logiki złożoności (gdzie przez większość czasu jest tylko jeden proces) oraz przetwarzania rozproszonego (gdzie jest procesów, a jeden lub więcej może zawieść z czasem). Jednak chcę teraz móc powiedzieć coś o procesie odradzania / tworzenia / wydzielania innego procesu. Czy istnieje rygor w obliczeniach równoległych, systemach operacyjnych itp., Który to wyjaśnia?
Motywacja:
Próbuję skonstruować modele, które wyodrębnią niektóre cechy interakcji molekularnych. Chciałbym powiedzieć, że zestaw reakcji chemicznych jest procesem niezależnym i że w pewnym etapie czasu powstaje kolejny niezależny proces . Intuicyjnie te rzeczy wydają się niezależnymi procesami, ponieważ nie mają ze sobą kontaktu po czasie - lub bardzo mało kontaktu, a jedynie „wiadomości”.T S ' T
Bardziej formalnie:
(1) Czy istnieją wcześniej zdefiniowane definicje CS, które wychwytują pojęcie jednego procesu odradzającego inny niezależny proces? Szczególnie interesuje mnie możliwość wytyczenia miejsca, w którym zatrzymuje, a i dlaczego to jest „rozsądne”.S ′
(2) Jeśli istnieje więcej niż jedna odpowiedź na (1), jakie są zalety i wady różnych definicji?
(Uwaga: nie mam pojęcia, jak odpowiednio to oznaczyć i planuję ponownie oznaczyć w zależności od odpowiedzi).
źródło
fork
wywołanie systemowe w systemach operacyjnych uniksopodobnych jest bardzo eleganckie. Możesz to postrzegać jako operację atomową, która powiela bieżący proces. Przed rozwidleniem był tylko jeden proces , zaś po rozwidleniu były dwa procesy i . Jeśli nadmiernie uprościmy rzeczy, i są identyczne we wszystkich innych aspektach, z wyjątkiem tego, że istnieje jednobitowy wskaźnik, który informuje , że jest to „nowy” proces, podczas gdy wie, że jest to proces „oryginalny”. Po tym i mogą kontynuować osobno, a nawet mogąS S ′ S S ′ S ′ S S S ′Odpowiedzi:
Oczywiście istnieje wiele systemów do modelowania procesów. Należą one do kategorii algeb procesu . Kluczowymi przykładami są -calculus , CCS , ACP i CSP .π
Rachunki procesów mają podstawowe mechanizmy określania zachowania procesu, w tym: wysyłanie i odbieranie wiadomości (synchronicznie lub asynchronicznie), tworzenie procesów równoległych, niedeterministyczny wybór między zachowaniami oraz replikacja procesów. Chociaż kamień nazębny jest niewielki pod względem liczby konstruktów, są one bardzo ekspresyjne i przeprowadzono wiele badań w celu zbadania ich właściwości.
W -calculus różni się od pozostałych tym, że pozwala w istocie, procesy są przekazywane jako wartości klas. W rzeczywistości umożliwia przekazywanie nazw kanałów jako wartości pierwszej klasy, umożliwiając zmiany w topologii dynamicznej. Prawdopodobnie jest to rachunek, którego potrzebujesz, ponieważ oferuje on największą dynamikę.π
CSP (komunikowanie procesów sekwencyjnych) jest trochę dziwne, patrząc z perspektywy modelowania cząsteczek. Ma wiele teorii wsparcia i narzędzi. (Wymyślony przez CAR Hoare.)
CCS i ACP mają mniejszą dynamikę niż calculus, ale są znacznie łatwiejsze do analizy i symulacji. Solidny zestaw narzędzi o nazwie CRL (i CRL2) jest dostępny dla ACP. Podobne narzędzia z pewnością istnieją w CCS.μ μπ μ μ
Zacznę od zbadania powiązanej pracy (patrz poniżej), a następnie znajdę, który formalizm modelowania pasuje do tego, czego szukasz.
W rzeczywistości przeprowadzono sporo pracy przy modelowaniu reakcji chemicznych i procesów biologicznych przy użyciu algebry procesowej. Prawdopodobnie najlepszym miejscem do obejrzenia jest lista publikacji Lucy Cardelli . Cała jego linia badań nad BioComputing ma prawdopodobnie 30 artykułów na ten temat. Ta rozmowa zawiera przegląd większości jego prac. To jeden jest nieco bardziej formalny, choć czytając gazety jest naprawdę jedynym sposobem, aby zobaczyć szczegóły.
Jednym z podejść, które bezpośrednio modeluje procesy chemiczne, jest CHAM (chemiczna maszyna abstrakcyjna). Kluczowym składnikiem jest tutaj rozwiązanie cząsteczek i błon. Istnieją zasady podgrzewania i chłodzenia w celu uporządkowania cząsteczek i usuwania śmieci. Te zasady są odwracalne. Wreszcie rządzą reakcje, które modelują reakcje. W przeciwieństwie do algeb procesu, modele CHAM nie martwią się tak bardzo składnią procesów, więc możesz wymyślić własną reprezentację cząsteczek.
Przepisz logikę zrealizowaną w zestawie narzędzi Maude oferuje inne mniej lub bardziej bezpośrednie podejście do określania takich reakcji. Trzeba tylko określić zasady przepisywania, przekazywanie „zupy” odbywa się automatycznie. Zestaw narzędzi umożliwiłby symulację i analizę (niewielkich) reakcji chemicznych. Istnieje również probabilistyczny wariant Maude.
źródło
Inną linią pracy, która - jak sądzę - jest związana z BioComputing, ale nie jest taka sama (niestety nie jestem zbyt dobrze zorientowana w tej dziedzinie), jest „przetwarzanie membranowe”.
Moje rozumienie obliczeń membranowych polega na tym, że wykorzystuje metafory szeroko rozwinięte w świecie procesów kakaowych (odpowiedź Dave'a Clarke'a podała tam dobry zestaw wskaźników) wprost do modelowania interakcji komórkowych. Dobrym przewodnikiem po komputerach membranowych jest prawdopodobnie trafnie nazwany Przewodnik po komputerach membranowych autorstwa Paun i Rozenberga w TCS. To było kilka lat temu (i nie jestem teraz w ścianie płatniczej, aby to sprawdzić), ale wierzę, że niektóre modele przetwarzania membranowego mają pojęcie „rozwidlenia”, które ma jakoś odzwierciedlać mitozę komórkową.
źródło