Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Maszyna BEAM - wykład AGH 2021

Maszyna BEAM - wykład AGH 2021

Wykład dotyczący maszyny wirtualnej Erlanga wygłoszony dla kierunku Informatyka na wydziale IEiT AGH w Krakowie.

Michał Ślaski

June 01, 2021
Tweet

More Decks by Michał Ślaski

Other Decks in Programming

Transcript

  1. PLAN WYKŁADU • Erlangowy styl programowania współbieżneg o • Złożoność

    systemów komputerowyc h • Systemy współbieżne i rozproszon e • Maszyna BEAM
  2. O MNIE • AGH'200 5 • SFI'2009 '201 7 •

    Tech Lead'2012 
 @ Erlang Solutions Programowanie współbieżne w języku Erlang Akademia Górniczo-Hutnicza w Krakowie 18 grudnia 2007 Michał Ślaski [email protected] © 1999 – 2007 Erlang Training and Consulting Ltd
  3. JĘZYKI FUNKCYJNE • Rachunek lambda - lata 30. XX wiek

    u • LISP 1958 - rekurencja i G C • Scheme 1970 - 𝝀 -calculu s • Miranda 1985 - ewaluacja leniw a • Erlang 1986 - przetwarzanie współbieżn e • Elixir 2012 - nowoczesne wzorce projektowe
  4. JĘZYKI FUNKCYJNE • typy funkcyjne i funkcje wyższego rzęd u

    • funkcje czyste i zmienne niemutowaln e • rekurencja i ewaluacja leniw a • wyrażenia (nie instrukcje ) • dopasowywanie wzorca
  5. HISTORIA WSPÓŁBIEŻNOŚCI • Komputer - lata 40. - Alan Turin

    g • Actor Model - lata 70. - Carl Hewit t • Communicating Sequential Processes - lata 70. 
 - Tony Hoar e • Erlang - lata 80. - Joe Armstrong
  6. OBSERWACJA ARMSTRONGA • In order to implement a concurrent language,

    
 you have to do three things at a very primitive leve l • message passing should be extremely fas t • context switching should be extremely fas t • and there should be a built-in error processing mechanism
  7. MATERIAŁY • Let's #TalkConcurrency 
 Panel Discussion with Sir Tony

    Hoare, 
 Joe Armstrong and Carl Hewit t • The Mess We're In 
 by Joe Armstrong
  8. 2021+ • Wielordzeniowe CPU - systemy współbieżn e • Chmura

    i mgła - systemy rozproszon e • 5G - systemy miękkiego czasu rzeczywistego
  9. BEAM • zwięzły kod (concise code ) • odporność na

    błędy programów (reliability ) • wykorzystanie wielu rdzeni CPU (utilisation ) • sprawiedliwy podział zasobów (latency ) • możliwość śledzenia wykonania (traceability)
  10. MONGOOSEIM • serwer komunikatora XMPP • wsparcie dla Geo Distributio

    n • zastosowanie powyżej 10k użytkownikó w • wdrożenia w nk.pl, ooVoo, Grindr
  11. COUCHDB • baza danych zorientowana na dokument y • język

    zapytań w JavaScript używa MapReduc e • replikacja multi-maste r • zastosowania w BigData i Mobil e • wdrożenia w LHC, Apple
  12. VERNEMQ • Broker MQT T • Realizuje głównie wzorzec PubSu

    b • zastosowanie w platformach Io T • wdrożenia w Siemens, Volkswagen
  13. RIAK • Rozproszona baza danych typu K V • Replikacja

    danych na N węzłach w klastrz e • Replikacja multi-datacente r • zastosowania w składowaniu krytycznych danyc h • wdrożenia w brytyjskiej i duńskiej służbie zdrowia
  14. RABBITMQ • Broker protokołów AMQP, STOMP i MQT T •

    Kon fi guracje kolejek: replikacja, persystencj a • Zastosowania w architekturach mikroserwisó w • wdrożenia w około 35,000 fi rm
  15. LIVEBOOK • Interaktywny notatnik dla Nx + Axo n •

    Wspólna praca z kodem i wykresami
  16. ERLANG 24.0 • JIT dla architektury x86-6 4 • Linux

    perf - pro fi lowanie wydajnośc i • Intel LBR - śledzenie wykonania program u • WebView - uniwersalne appki na każdy OS
  17. CO DALEJ? • Erlang the Movi e • Erlang the

    Movie II • Erlang 2 5 • JIT dla ARM6 4 • Frame Pointers