Was sind Erlang Prozesse hinter den Kulissen?

9

Ich habe sehr begrenzte Kenntnisse über Erlang, aber soweit ich verstehe, kann es "Prozesse" mit sehr niedrigen Kosten hervorbringen.

Ich frage mich also, was sind diese "Prozesse" hinter den Kulissen?

Sind sie Fasern? Themen? Fortsetzungen?

    
Roger Johansson 07.05.2010, 11:07
quelle

4 Antworten

3

Auch aus dem Erlang Dokument:

  

Erlang-Prozesse sind leicht   (dynamisch wachsen und verkleinern) mit   kleiner Speicherbedarf, schnell zu erstellen   und beenden und die Planung   der Aufwand ist niedrig.

Quelle: Ссылка

Vielleicht möchten Sie auch einen Blick darauf werfen:

Ссылка

Wenn über Erlang-Prozesse gesprochen wird, heißt es:

  

Erlang-Prozesse sind leichtgewichtig   Fäden. Sie sind sehr günstig zu starten   hoch und zerstören und sind sehr schnell   zwischen da unter der Haube wechseln   Sie sind einfach Funktionen. Ein typisches   Erlang System läuft auf einem modernen   Desktop-Computer kann zwischen wechseln   viele Zehntausende solcher Prozesse.   Prozesse werden alle paar geschaltet   Dutzend Funktionsaufrufe, die macht   schaltet weniger granular, speichert aber a   normalerweise viel Zeit   verschwendete Kontextwechsel.

    
Roberto Aloi 07.05.2010, 11:15
quelle
1

Ich habe keine definitive Quelle gefunden, aber von dem, was ich verstehe:

  • Es gibt einen Scheduler (zB oder mehrere Scheduler, die agieren kooperativ), der bestimmt, welcher Erlang-Prozess auf welchem ​​OS gestartet werden soll thread.

  • Diese Prozesse haben einen erweiterbaren Stack (vielleicht eine Präambel in jede Funktion, die den Stack bei Bedarf zuweist), so dass sie nicht konsumieren zu viel Speicher, es sei denn, sie benötigen es.

  • Sie geben dem Scheduler zurück, je nachdem, ob sie es sind warten auf Daten oder haben für eine ausreichende Zeit ausgeführt (vielleicht überprüft der Präambel-Code in einigen Funktionen, wie viel Zeit er hat ist abgelaufen). Im Gegensatz zu Threads werden sie nicht vorweggenommen?

  • Jeder Prozess weist Speicher von verschiedenen Seiten oder von a zu verschiedene Zuordnung, so ist es nicht möglich, Speicher zu teilen (in ähnlich wie OS-Prozesse vermeiden, Speicher zu teilen).

  • Vermutlich würde es auch hilfreich sein, wenn Sie separate Allokatoren oder Seiten pro Erlang-Prozess verwenden würden Garbage Collection, und in dem Fall, dass der Prozess endet, dann die Seiten können zurückgegeben werden, ohne dass eine Speicherbereinigung durchgeführt werden muss: Ссылка

mathin 13.07.2012 04:38
quelle
-10

Grundsätzlich sind sie Threads;) Ein Adressraum für sie.

    
TomTom 07.05.2010 11:13
quelle