Lamportův algoritmus je permission-based synchronizační algoritmus pro distribuované vzájemné vyloučení, který využívá logické hodiny k vytvoření totálního uspořádání žádostí. Vedlejší efekt totálního uspořádání je totiž vzájemné vyloučení.
Je to předchůdce Ricart-Agrawaly. Je to první algoritmus, který ukázal, jak využít logické hodiny pro úplnou synchronizaci.
[!note] Lamportův algoritmus se dnes nepoužívá kvůli velkému počtu zpráv, ale je to perfektní edukativní příklad, jak fungují logické hodiny v praxi. Ukazuje, že pokud máme Totální uspořádání zpráv, máme i triviální vzájemné vyloučení.
Lamportův algoritmus garantuje vstup do kritické sekce (CS) přesně v tom pořadí, v jakém vznikly požadavky (podle logického času). Je tedy spravedlivý (FIFO).
REQUEST(Time, ID) a pošle ji všem (i sobě).REPLY (tím potvrdí: “Vím o tobě”).B) Od všech ostatních procesů obdržel zprávu (jakoukoliv - REPLY, REQUEST nebo RELEASE) s časovým razítkem vyšším, než je čas jeho žádosti.
RELEASE všem.RELEASE odstraní žádost ze svých front (čímž se na vrchol dostane další čekající).