Ahoj,
jen bych doplnil, ze krome vlastnich semaforu s 'up' a 'down' (implementace pomoci wait_queues) existuje jeste sada funkci:
spin_lock,spin_lock_irqsave, spin_lock_irq a spin_lock_bh (+ odpovidajici unlock)
coz jsou obecne zamky a k tomu jeste read_lock a write_lock (se vsemi verzemi jako spin) coz jsou zamky pro cteni a zapis - podrobnosti viz include/linux/spinlock.h (a dale do asm/spinlock.h)
Jinak super clanek, uz se tesim na dalsi dily. Myslim, ze je vhodne pokud mozno co nejvice uvadet odkazy na dokumenty nebo primo zdrojaky pro ty, co se na to chteji podivat pozorneji a take uvadet presne verze jader na kterych je vse popisovano.
Bye
když už doplňujeme a upřesňujeme... :-)
spinlocky se typicky používají při race condition (jak se to překládá?) s přerušením a v takto chráněném bloku nelze volat funkci která může spát - tj. provést context switch. preemtivní scheduler nepřeruší kód mezi spinlock/unlock.
naproti tomu down/up lze použít i v případě, že zamknutý kód usnout může - například při volání copy_to_user.
pokial ta zaujima nieco viac o napr. o freebsd tak na tejto stranke najdes celkom slusne dokumenty http://www.freebsd.org/docs.html. ak by som mal nieco vyzdvihnut tak je to dokument http://www.freebsd.org/doc/en_US.ISO8859-1/books/arch-handbook/index.html kde ako tak opisane aj jadro systemu.