Inhoudsopgave:
Definitie - Wat betekent Atom?
Atom is een gelijktijdige en domeinspecifieke programmeertaal die wordt gebruikt voor realtime en embedded applicaties. Het beschikt over compilatie van tijdtaakplanning en produceert code met verbeterd geheugengebruik en uitvoeringstijd. Atom's gelijktijdigheidsmodel elimineert vereisten voor algoritmen voor wederzijdse uitsluiting.
Techopedia legt Atom uit
Atom werd ontwikkeld in 2007 en werd in april van dat jaar als open source uitgebracht. Het is ontworpen om bewerkingen in een bepaalde klokcyclus te maximaliseren zonder de semantiek van atomaire bewerkingen te schenden. Atom balanceert echter ook de verwerkingsbelastingen en minimaliseert timinglatenties.
Atom's circuitbeschrijving bestaat uit een set statuselementen en regels. Elke regel bestaat uit twee componenten: statusupdates en activeringsvoorwaarden. Wanneer regels zijn ingeschakeld, worden acties geselecteerd om atomair uit te voeren. Aan regels wordt een lineaire en globale prioriteit toegewezen en meerdere regels kunnen naar hetzelfde statuselement worden geschreven. Gegevensafhankelijkheid tussen regels vormen een grafiek. Cyclische grafieken hebben de voorkeur als regels en kunnen opeenvolgend worden samengesteld. Compilers bestellen regels om randen te minimaliseren die terugkoppelen van regels met lage tot hoge prioriteit. Omdat regelparen elkaar uitsluiten, zijn randen niet kritisch voor een grafiek met afhankelijkheid van regelgegevens.
Atoomobjecten (ook bekend als actieve objecten) zijn actieve entiteiten die vergelijkbaar zijn met multithreaded servers. Alle verwerkte berichten creëren nieuwe threads binnen objecten. Threads worden soms gelijktijdig gemaakt tijdens het maken van een object om interne activiteiten uit te voeren. Thread-uitvoering is niet preventief en er is slechts één thread tegelijk actief in een object. Threads hebben betrekking op activeringsvoorwaarden die objectstatussen bepalen die compatibel zijn met uitvoering. Atom-modellen worden geassocieerd met functies (zoals statusmelding, abstracte statussen en statuspredikaten) en zijn geïntegreerd met het doorgeven van berichten en threadplanning.