A | B | C | D | E | F | G | H | CH | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
Atomicita neboli nedělitelnost je důležitá vlastnost v programování. Znamená, že daná činnost (operace) se provede najednou, nemůže být přerušena něčím jiným a později dokončena.
Hardware
Na hardwarové úrovni je atomicita zajišťována nedělitelností strojových instrukcí. Strojové instrukce jsou obvykle atomické ve vztahu k procesoru, protože jejich vykonávání nelze přerušit – přijde-li v průběhu zpracování atomické instrukce externí signál (interrupt), je proveden až po dokončení instrukce. Výjimkou mohou být například instrukce, které obsahují vnitřní cyklus (instrukce pro práci s řetězci; na procesorech s instrukční sadou x86 se jedná o instrukce s prefixem REP). U moderních procesorů (s instrukční sadou x86 se jedná o procesory od Pentia výš) je zachování atomicity i jednoduchých instrukcí netriviální, protože ve skutečnosti provádí několik instrukcí najednou, mimo pořadí dané programem, a jejich atomicitu musí emulovat.
U víceprocesorových systémů je zajištění atomicity instrukcí ještě komplikovanější; procesor musí obsahovat instrukce, které jsou atomické vzhledem k paměti – tedy pomocí zamknutí sběrnice a správným nastavením mezipamětí je zajištěno, že žádné jiné zařízení (především jiný procesor) nepřistoupí ke stejné adrese paměti dokud tato instrukce není dokončena. Pomocí takových instrukcí lze implementovat synchronizační primitiva, tedy zámky a semafory. Samozřejmě ne každou instrukci lze takto použít – musí to být instrukce, která paměť zároveň čte a modifikuje. Na architektuře x86 se jedná o xchg, cmpxchg8b s prefixem lock a bts s prefixem lock.
Souborový systém
Atomicitu diskových operací vybrané souborové systémy mohou garantovat různými způsoby. Například:
- některé souborové systémy FAT mohou podporovat tzv. TFAT – transakčně bezpečný FAT.
- v původní formě pomocí udržování dvou alokačních tabulek – FAT0 a FAT1, s tím, že změny během diskových operací se zaznamenávaly na FAT1 a teprve po jejich dokončení se zkopírovaly na FAT0
- u systému exFAT se TFAT řeší softwarovým driverem specifickým pro daný typ média i operační systém
- na Windows NT souborový systém NTFS podporuje tzv. Access control lists, ACL
- distribuovaný souborový systém Google File System zaručuje atomicitu přepisování dat více klienty pomocí funkce record append.
- viz také žurnálovací systém souborů
Programy
Na úrovni programu se atomicita zajišťuje pomocí synchronizačních primitiv, přestože někdy je tento fakt skryt. Například pro bezpečnost je důležité, že funkce pro otevření souboru dokáže otestovat existenci souboru a vytvořit ho atomicky, tedy bez rizika že mezi testem a otevřením soubor vytvoří nebo smaže někdo jiný. Uvnitř operačního systému je tato vlastnost zajištěna pomocí zámku na příslušné položce adresáře.
Skripty
Skriptovací jazyky a jednodušší programovací jazyky většinou nemají k dispozici funkce na zasahování do delikátnějších částí chodu operačního systému nebo procesoru, tak si jejich autoři u citlivějších operací musejí pomoci nějak jinak. Vznikají tak různé ad hoc konstrukce, které co do funkčnosti emulují různé prostředky synchronizace, např. semafory nebo ve složitějších případech emulace transakcí pomocí logování prováděných operací pro jejich případné navrácení do původního v případě selhání. Při řešení atomicity manipulace v databázi lze v některých případech využít chybových návratových kódů.[1] Atomicitu diskových operací (často je to zápis do souboru) lze řešit vytvářením dočasných souborů a jejich přejmenování/přesunutí do cílového souboru ve finále. Existují i pro to určené objektové třídy.[2]
Databáze
Pro databázi platí, že transakce by měla být atomická ve vztahu k ostatním transakcím. Tedy transakce A nastala buď před transakcí B, nebo po ní, ale nemohla probíhat současně. Přesněji, ve skutečnosti současně probíhala, ale synchronizace provedená databázovým serverem zajišťuje, že databáze bude vypadat jako kdyby všechny transakce proběhly popořadě. Pokud to nebude možné (dojde k deadlocku), provede ROLLBACK některé transakce a zkusí ji provést znovu na novém stavu databáze.
Atomicita transakce zároveň znamená, že pokud transakce selže, selže jako celek, tedy všechny zápisy které provedla budou při rollbacku vráceny a žádná jiná transakce žádný z těchto zápisů neuvidí.
Odkazy
Reference
- ↑ Atomicita operací, Jakub Vrána
- ↑ Atomické operace se soubory Archivováno 10. 7. 2010 na Wayback Machine., David Grudl
Související články
Externí odkazy
- Atomicita operací v PHP, Jakub Vrána
Text je dostupný za podmienok Creative Commons Attribution/Share-Alike License 3.0 Unported; prípadne za ďalších podmienok. Podrobnejšie informácie nájdete na stránke Podmienky použitia.
Antény
Chemické zdroje elektriny
Chladenie v elektrotechnike
Elektrická sústava automobilu
Elektrická trakcia
Elektrické prístroje
Elektrické súčiastky
Elektrické spotrebiče
Elektrické stroje
Čítanie (elektrotechnika)
Činný výkon
Štatistická dynamika
Živý vodič
Admitancia
Antiparalelné zapojenie
Asynchrónny motor
Blúdivý prúd
Bočník (elektrotechnika)
Diak (polovodičový prvok)
Displej s kvapalnými kryštálmi
Elektrická inštalácia
Elektrická rezonancia
Elektrická sila
Elektrická vodivosť
Elektrické zariadenie
Elektrický obvod
Elektrický zvonec
Elektroenergetika
Elektromer
Elektrometer
Elektromobil
Elektromotor
Elektromotorické napätie
Elektrotechnický náučný slovník
Elektrotechnika
Elektrotechnológia
Fázor
Faradayova klietka
Frekvencia (fyzika)
Graetzov mostík
Impedancia
Indukčnosť
Induktancia
Istič
Izolácia (elektrotechnika)
Izolant
Jadro vodiča
Jednobran
Jednosmerný prúd
Joulovo teplo
Katóda
Koaxiálny kábel
Kompenzácia účinníka
Konduktometria
Konektor (elektrotechnika)
Korónový výboj
Lanko (elektrotechnika)
Leptanie
Logické hradlo
Magnetická susceptibilita
Magnetizácia (veličina)
Merný elektrický odpor
Mobilné zariadenie
Napájací zdroj
Napäťový chránič
Napäťový násobič
Nortonova veta
Odpínač
Odpojovač
OLED
Olovený akumulátor
Paralelné zapojenie
Peltierov článok
Plošná hustota elektrického prúdu
Poistka (elektrotechnika)
Posuvný prúd
Prúdový chránič
Prenosové médium
Prieletový klystrón
Primárny elektrochemický článok
Reaktancia
Rekuperácia (dopravný prostriedok)
Relé
Reproduktorová výhybka
Rezistancia
Rozhranie (interface)
Sériové zapojenie
Seebeckov jav
Sekundárny elektrochemický článok
Settopbox
Skrat
Sonar
Spínač
Spínaný zdroj
Straty v mikropásikových vedeniach
Striedavý prúd
Stupeň ochrany krytom
Svetelná výbojka
Symetrizačný člen
Technická normalizácia
Tepelné relé
Tepelne vodivostný detektor
Termočlánok
Théveninova veta
Transformátor
Transformátor s fázovou reguláciou
Trojfázová sústava
Tuhá fáza (elektronika)
Tyratrón
Usmerňovač (elektrotechnika)
Uzemnenie
Uzol (vodiče)
Vírivý prúd
Výbojka
Varistor
Ventilátor
Vodič (elektrotechnika)
Voltov stĺp
Vstavaný systém
Zásuvka (elektrotechnika)
Zdroj (elektrotechnika)
Zisk antény
Text je dostupný za podmienok Creative
Commons Attribution/Share-Alike License 3.0 Unported; prípadne za ďalších
podmienok.
Podrobnejšie informácie nájdete na stránke Podmienky
použitia.
www.astronomia.sk | www.biologia.sk | www.botanika.sk | www.dejiny.sk | www.economy.sk | www.elektrotechnika.sk | www.estetika.sk | www.farmakologia.sk | www.filozofia.sk | Fyzika | www.futurologia.sk | www.genetika.sk | www.chemia.sk | www.lingvistika.sk | www.politologia.sk | www.psychologia.sk | www.sexuologia.sk | www.sociologia.sk | www.veda.sk I www.zoologia.sk