Synchronisatie

In informatica synchronisatie verwijst naar een van twee verschillende, maar verwante concepten: synchronisatie van processen en synchronisatie van gegevens. Proces synchronisatie verwijst naar het idee dat meerdere processen zijn om toe te treden tot of handdruk op een bepaald punt, om een ​​akkoord te bereiken of committeren aan een bepaalde volgorde van handelen. Data synchronisatie verwijst naar het idee van het houden van meerdere kopieën van een dataset in samenhang met elkaar, of gegevensintegriteit te handhaven. Werkwijze synchronisatieprimitieven worden gewoonlijk gebruikt om data synchronisatie voeren.

Thread of proces synchronisatie

Thread synchronisatie of serialisatie strikt gedefinieerd, is de toepassing van specifieke mechanismen zodat tegelijkertijd twee-uitvoerende draden of processen niet specifieke gedeelten van een programma tegelijkertijd kan uitvoeren, aangeduid als wederzijdse uitsluiting. Als een draad is begonnen met een serienummer deel van het programma met de naam van een kritieke sectie uit te voeren, moet een andere thread proberen om dit gedeelte uit te voeren wachten tot de eerste draad afwerking. Indien dergelijke synchronisatie maatregelen niet worden genomen, kan dit resulteren in een race aandoening waarbij de variabele waarden zijn onvoorspelbaar en zijn afhankelijk van de timing van de draad of het proces context switch.

Naast het verstrekken van wederzijdse uitsluiting, moet de synchronisatie ook rekening houden met het volgende:

  • Deadlock: Dit gebeurt wanneer twee of meer processen of threads wachten op een slot van een kritieke sectie, die het andere proces houdt in te voeren. Dit resulteert erin onbepaalde tijd rekken en ze maken geen verdere vooruitgang.
  • Verhongering: In sommige gevallen, een proces of thread kon onbegrensde wachttijd om een ​​slot te verwerven en nooit enige vooruitgang te maken.
  • Prioriteit omkering: In systemen die prioriteiten voor processen en threads hebben, een gemiddelde prioriteit taak kan vooruitlopen op een hogere prioriteit taak wanneer u de synchronisatie gebruikt waardoor het systeem de regels overtreden. Dit is vooral ernstig in real-time systemen die gemiste deadlines kan veroorzaken.

Synchronisatie wordt gebruikt om toegang te controleren om zowel te vermelden in kleinschalige multiprocessing systemen - in multithreaded omgevingen en multiprocessor computers - en in gedistribueerde computers, bestaande uit duizenden eenheden - in het bankwezen en database systemen, webservers, enzovoort.

Bekijken

  • Slot en mutex
  • Monitor
    • Synchronisatie primitieven
  • Seinpaal
  • Test-en-set
  • Eenvoudige Concurrent-Object Oriented Programming

Datasynchronisatie

Een duidelijk verschillende concept is dat van de synchronisatie van gegevens. Dit verwijst naar de noodzaak om meerdere kopieën van een set van data samenhangend met elkaar te houden.

Voorbeelden hiervan zijn:

  • File synchronisatie, zoals het synchroniseren van een hand-held MP3-speler met een desktop computer.
  • Cluster bestandssystemen, die bestandssystemen die gegevens of indexen te handhaven op een samenhangende wijze in een hele computer cluster zijn.
  • Cache coherentie, het handhaven van meerdere kopieën van gegevens in sync over meerdere caches.
  • RAID, waarbij gegevens worden geschreven in een redundant fashion over meerdere schijven, zodat het verlies van één schijf niet leidt tot een verlies van data.
  • Databasereplicatie waar kopieën van de gegevens in een database worden bewaard in sync, ondanks mogelijke grote geografische scheiding.
  • Journaling, een techniek die gebruikt wordt door veel moderne bestandssystemen om ervoor te zorgen dat bestand metadata worden bijgewerkt op een schijf op een coherente, consistente wijze.

Wiskundige fundamenten

Synchronisatie oorspronkelijk een procesmatig concept waarbij een vergrendeling kan worden verkregen op een object. Zijn primaire gebruik was in databases. Er zijn twee soorten slot; read-only en read-write. Alleen-lezen sloten kan worden verkregen door vele processen of threads. Lees-schrijf sloten zijn exclusief, omdat ze alleen kunnen worden gebruikt door een enkel proces / thread tegelijk.
Hoewel de sloten werden afgeleid voor file databases, data wordt ook gedeeld in het geheugen tussen processen en threads. Soms meer dan één object is vergrendeld tegelijk. Als zij niet tegelijkertijd worden vergrendeld kunnen overlappen, waardoor een impasse uitzondering.
Java en Ada hebben slechts exclusieve sloten omdat ze thread basis en vertrouwen op het vergelijken-en-swap processor instructie.
Een abstracte wiskundige basis voor synchronisatie primitieven wordt gegeven door de geschiedenis Monoid. Er zijn ook veel hoger niveau theoretische inrichtingen, zoals calculi proces en Petri netten, die worden gebouwd bovenop de geschiedenis monoïde.

(0)
(0)
Commentaren - 0
Geen commentaar

Voeg een reactie

smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile
Tekens over: 3000
captcha