Synchronizace: Porovnání verzí

Přidáno 5 466 bajtů ,  před 3 lety
Kompletní přepracování; výkladový význam statické synchronizace mi nebyl zřejmý, tak jsem ji vypustil.
m (další definice výrazu synchronizace)
(Kompletní přepracování; výkladový význam statické synchronizace mi nebyl zřejmý, tak jsem ji vypustil.)
'''Synchronizace''' (česky '''sladění''') je proces, jímž se více prvků v nějakém systému přivádí k organizovanému chodu nebo shodnému stavu. Synchronizace se používá tam, kde by neorganizovaná činnost elementů nebo jejich odlišné vlastnosti byly na závadu. O elementech, jež vykazují stav, který odpovídá výsledku synchronizace, říkáme, že jsou ''sesynchronizovány'' (''sladěny''). Pakliže se synchronizací dosahuje souhlasný stav, její výsledek je možno označit jako ''konzistenci''.
{{Upravit}}
 
'''Synchronizace''' je stav, kdy více dějů probíhá současně a [[koordinace|koordinovaně]], případně též záměrná snaha o dosažení takového stavu. Synchronizace se uplatňuje p<!-- Výraz synchronizace se též používá při legálním kopírování, nebo používání datových souborů, obsahujících umělecká díla . audio, obrazy, texty. Je to obvyklý výraz při sjednávání poskytnutí autorských práv umělců pro licencované použítí např. hudba ve filmu atd. Zpravidla se jedná o licence časově, nebo obsahově omezené, aby nedošlo k rozporu s autorskýny zákony danýmy příslušným státem.
-->řiSynchronizace se uplatňuje v konstrukci [[stroj]]ních součástí, v [[programování]], ve správě [[Datové centrum|datových center]], ale i při organizaci jakýchkoliv jiných dějů nebo činností. Synchronizace [[data|dat]] má za úkol neustále udržovat přesné kopie zdrojových dat ve všech synchronizovaných úložištích.
 
== Strojírenství ==
Synchronizací se nazývá proces, kterým se vyrovnávají rychlosti [[Ozubené kolo|ozubených kol]] ([[Hřídel|hřídelí]]) v [[Synchronizovaná převodovka|synchronizované převodovce]], než do sebe tato kola zapadnou; v převodovce jsou k tomuto účelu zřízeny tzv. synchronizační spojky. Synchronizovaná [[převodovka]] umožňuje řidiči vozidla s [[Manuální převodovka|manuální převodovkou]] řadit na jedno sešlápnutí [[Spojka (stroj)|spojky]] a bez tzv. meziplynů<ref name="meziplyn">Meziplyn je zvýšení otáček [[Spalovací motor|motoru]] akcelerátorem v době, kdy není zařazen žádný [[převodový stupeň]] a současně je spojená [[Spojka (stroj)|spojka]].</ref>. Synchronizace probíhá v době, kdy řidič vyvíjí tlak na [[Řadicí páka|řadicí páku]] — než tato (při správné obsluze) zapadne.
 
== Informatika ==
'''Synchronizace''' je stav, kdy více dějů probíhá současně a [[koordinace|koordinovaně]], případně též záměrná snaha o dosažení takového stavu. Synchronizace se uplatňuje p<!-- Výraz synchronizace se též používá při legálním kopírování, nebo používání datových souborů, obsahujících umělecká díla . audio, obrazy, texty. Je to obvyklý výraz při sjednávání poskytnutí autorských práv umělců pro licencované použítí např. hudba ve filmu atd. Zpravidla se jedná o licence časově, nebo obsahově omezené, aby nedošlo k rozporu s autorskýny zákony danýmy příslušným státem. -->
V informace je synchronizace schopnost programu kontrolovaně přistupovat ke sdíleným zdrojům z více threadů.
 
V [[Informatika|informatice]] má synchronizace nejméně dva zcela odlišné významy — synchronizace [[Data|dat]] má za úkol dbát o to, aby v nějaké [[Množina|množině]] úložišť byla udržována stejná data, resp. aby tato úložiště byla svým obsahem aktuální, synchronizace entit zpracovávajících data ([[Proces (program)|procesů]] nebo vláken) zajišťuje, že mezi jednotlivými operacemi, jež tyto entity vykonávají, nedojde k [[souběh]]u (např. se mezi první a druhou stránkou jednoho dokumentu nevytiskne jiný dokument).
Typy synchronizace jsou:
* Procesní synchronizace
* Threadová synchronizace
Synchronizace může být docílena 3 způsoby:
* synchronizací metody
* synchronizací bloku
* statickou synchronizací
 
=== Programování ===
== Příklady synchronizace v Javě ==
V běžné [[Programátor|programátorské]] praxi se přetřásá především synchronizace nad objekty sídlícími v paměti [[Počítačový program|programu]]; objekty dostupné skrze [[Systémové volání|systémování volání]] synchronizuje [[operační systém]], programování jehož komponent běžný programátor neprovádí. Při vylučování souběhu operací s objekty v [[Počítačová paměť|paměti]] programu se synchronizují [[Vlákno (program)|vlákna]].
'''synchronizace metody:'''
synchronized void foo(){
System.out.println("Synchronized method");
}
'''synchronizace bloku:'''
void foo(){
synchronized(this){
System.out.println("Block synchronization");
}
}
'''statická synchronizace:'''
static void foo(){
synchronized(ClassName.class){
System.out.println("Static block synchronization");
}
}
 
Synchronizace vláken, jejíž schéma lze použít i pro synchronizaci programů<ref name="difference_between_program_and_thread">Zjednodušeně řečeno, z pohledu [[Operační systém|operačního systému]] je mezi [[Proces (program)|procesem]] a [[Vlákno (program)|vláknem]] rozdíl jen v tom, že vlákna jednoho procesu sdílejí [[Počítačová paměť|paměťový]] prostor (mohou si vzájemně přepisovat data).</ref>, se popisuje tak, že sled [[Strojová instrukce|instrukcí]], který při vyloučení [[souběh]]u konkurenčními entitami nesmí být přerušen, se označuje jako [[kritická sekce]], a synchronizace se řeší tak, že kritická sekce se zastřeší tzv. [[Synchronizační primitivum|synchronizačním primitivem]], na jehož začátku je entita zpracovávající data v případě, kdy se v kritické sekci nachází jiná, tzv. [[Proces (program)#Základní stavy procesů|zablokována]]; aplikované synchronizační primitivum se nazývá ''zámek''. Ve vysokoúrovňových [[Programovací jazyk|programovacích jazycích]] pro synchronizační primitiva existují sofistikované jazykové konstrukce, které výrazně zpřehledňují [[zdrojový kód]]; výbava takových jazyků zpravidla obsahuje taktéž implementace komplikovanějších zámků, kdy se entity vyznačují specifickým přístupem a není nutné vylučovat souběh každé dvojice z nich (typicky těch, které pouze čtou), což je žádoucí s ohledem na výkon celého výpočetního systému.
static synchronized void foo(){
 
System.out.println("Static method synchronization");
==== Java ====
}
Ve vysokoúrovňovém programovacím jazyce [[Java (programovací jazyk)|Java]], jenž je značně populární, lze kritickou sekci vložit do složené závorky uvozené [[Klíčové slovo|klíčovým slovem]] <code>synchronized</code>, po němž bezprostředně následuje [[identifikátor]] objektu, nad nímž se synchronizace má provádět, dále lze za synchronizovanou vydat celou [[Metoda (objektově orientované programování)|metodu]], načež se jako objekt synchronizace použije jeho [[Instance třídy|instance]], a konečně je jako vyžadující synchronní přístup možné označit atribut [[Třída (programování)|třídy]] — pak je synchronizace omezena jen na něj.<ref name="">Požadavky na vzájemné blokování entit zpracovávajících data je v zájmu výkonu žádoucí minimalizovat nejen co do okruhu zúčastněných entit, nýbrž také co do rozsahu objektů, nad nimiž se synchronizace provádí.</ref>
 
Synchronizovaný atribut třídy:
<source lang="java">
class Foo {
static protected synchronized voidint foo(){;
}
</source>
 
Synchronizovaný blok — objektem synchronizace je vlastní instance třídy (<code>this</code>):
<source lang="java">
protected void foo() {
synchronized(this) {
}
}
}
</source>
 
Synchronizovaná metoda:
<source lang="java">
protected synchronized void foo() {
}
</source>
 
== Fotografování ==
Při [[Fotografie|fotografování]] je žádoucí [[Závěrka (fotoaparát)|závěrku]] [[fotoaparát]]u a [[Blesk (fotografie)|blesku]] provozovat synchronně. Používá se k tomu tzv. [[Synchronizátor|synchronizátor]].
 
== Ozbrojené složky ==
Synchronizace nachází uplatnění také v případě použití síly. Jednotka rychlého nasazení provádějící infiltraci ve stejný čas tento vpád provádí synchronně. Podobně členové přepadové vojenské jednotky útočí všichni společně — na společné činnosti se domlouvají, synchronizují se v ní. O synchronizaci lze hovořit též v případě, kdy vojenský oddíl pochoduje jednotným krokem.
 
== Politika ==
V [[Politika|politice]] můžeme termín synchronizace upotřebit k identifikaci principu dosahování názorové shody. Když [[Politik|politici]] zastupující jeden politický subjekt (kupř. [[Politická strana|politickou stranu]] nebo [[stát]]) navenek prezentují shodná stanoviska, lze konstatovat, že jsou (dobře) sesynchronizováni.
 
== Související články ==
* [[PřevodovkaManuální převodovka]]
* [[Souběžné řízení]]
* [[Meziprocesová komunikace]]
* [[Operační systém]]
* [[Proces (program)]]
* [[Převodovka]]
* [[Řízení paralelního zpracování]]
* [[Synchronizátor]] používaný ve fotografické technice při studiovém osvětlení
* [[Vlákno (program)]]
 
[[Kategorie:ManagementFotografování]]
{{pahýl}}
[[Kategorie:ČasInformatika]]
 
[[Kategorie:Synchronizace| Programování]]
[[Kategorie:Strojírenství]]
[[Kategorie:Technika]]
[[Kategorie:Management]]
[[Kategorie:Čas]]
Anonymní uživatel