Sobes.tech
Middle+

Шта је последователна конзистентност?

sobes.tech АИ

Одговор од АИ

Sekvencijalna konzistentnost (Sequential Consistency) je model konzistentnosti u distribuiranim sistemima ili višestrukim nitima programa, koji garantuje da će rezultat izvršenja bilo kojeg paralelnog programa biti takav kao da su sve operacije svih procesora (niti) izvršene u određenom sekvencijalnom redosledu, i da operacije svakog pojedinačnog procesora (niti) u tom sekvencijalnom redosledu slede redosled u kojem su zadate u programu.

Drugim rečima:

  1. Očuvanje reda operacija unutar niti: Operacije koje inicira jedna nit su vidljive drugim nitima u istom redosledu u kojem su izvršene od strane te niti.
  2. Jedan jedinstveni globalni red: Postoji jedan, linearan, globalni, jedinstveni red izvršavanja svih operacija svih niti, koji sve niti poštuju.

Ovaj model je jedan od najjačih i najintuitivnijih, ali njegova implementacija može biti skupa u pogledu performansi zbog potrebe za sinhronizacijom i sprečavanjem preuređenja operacija od strane kompajlera i hardvera.

Primer:

// Nit 1
x = 1;
y = 2;

// Nit 2
// Operacije čitanja x i y

Sa sekvencijalnom konzistentnošću, ako Nit 1 prvo upiše 1 u x, a zatim 2 u y, Nit 2 nikada neće videti y kao 2 pre nego što vidi x kao 1. Moguće sekvencijalne izvedbe:

  • x = 1; y = 2; read(x); read(y); (read(x) = 1, read(y) = 2)
  • x = 1; read(x); y = 2; read(y); (read(x) = 1, read(y) = 2)
  • read(x); x = 1; read(y); y = 2; (read(x) može biti 0, read(y) može biti 0, zatim read(x) = 1, read(y) = 2)

Nije moguće da Nit 2 vidi y kao 2, ali x još uvek bude 0, ako Nit 1 prvo napiše x = 1, a zatim y = 2.