Foundations — Synchronization primitives (locks, barriers)
6.1.8 · D1· Hardware › Parallelism & Multicore › Synchronization primitives (locks, barriers)
Parent note Synchronization primitives padhne se pehle, tumhe har woh term khud se samajhni chahiye jo woh bina warning ke use karta hai. Neeche, har idea ko zero se build kiya gaya hai, picture ki tarah draw kiya gaya hai, aur justify kiya gaya hai. Upar se neeche padho — koi bhi term jo neeche define ho, uska use pehle nahin hota.
1. Thread — woh "worker" jo tumhara code chalata hai
Picture: ek worker jo ek steps ki list mein apni ungli trace kar raha hai. Jab do workers hain, to do ungliyaan do (possibly identical) lists mein ek saath chalti hain.

Topic ko yeh kyun chahiye: agar kabhi sirf ek thread hota, toh koi race nahin hoti, koi lock nahin hota, koi barrier nahin hota — synchronize karne ke liye kuch bhi nahin hota. Yeh poora chapter exist karta hai kyunki do ya zyada threads kuch share karte hain. Dekhein Thread scheduling ke liye ki kaun decide karta hai ki kaunsa worker kab chale.
2. Shared memory & shared variable — woh kaagaz jis par dono workers likhte hain
Picture: ek akela box jis par counter likha hai, ek table par rakha hai, jisme dono workers ke arrows point karte hain. Bilkul ek hi box hai, har worker ke liye alag nahin.
Topic ko yeh kyun chahiye: khatraa tabhi hota hai jab box shared ho. Agar har worker ka apna private box hota, toh edits kabhi clash nahin karte. "Shared" woh precondition hai jis par aage ka sab kuch depend karta hai.
3. Concurrent, interleave, aur timeline
Picture: do horizontal timelines, ek thread ke liye ek, chote step-blocks ke saath. Ek timeline ko left ya right slide karo aur blocks ek alag combined order mein aa jaate hain. Har legal slide program ka ek possible run hai.

Topic ko yeh kyun chahiye: parent ka "lost update" ek specific bura interleaving hai. Tum yeh nahin samajh sakte kyun lock zaroori hai jab tak tum timeline ko slide hote nahin dekh sakte.
4. LOAD / ADD / STORE — C ki ek line asal mein teen machine steps hain
Picture: worker box ka number apni private sticky note par photocopy karta hai (LOAD), sticky note par +1 likhta hai (ADD), phir wapas jaata hai aur box ko overwrite karta hai (STORE). Jab tak woh sticky note pakde hai, shared box stale hai — jo bhi ab LOAD karega woh purani value padhega.
Topic ko yeh kyun chahiye: LOAD aur STORE ke beech ki gap exactly woh jagah hai jahan ek doosra worker ghus sakta hai aur ek aisi value padh sakta hai jo galat hone wali hai. Yeh teen-step split hi race ka mechanism hai.
5. Atomic — woh step jo divide nahin ho sakta
Picture: do boxes contrast karo. Left wala "non-atomic" LOAD-ADD-STORE ke beech ek dashed danger-zone hai jahan ek intruder arrow andar aa sakta hai. Right wala "atomic" operation ek solid sealed block hai — intruder arrow bounce ho jaata hai.

Topic ko yeh kyun chahiye: broken flag lock fail karta hai kyunki check-then-set atomic nahin hai. Fix (TestAndSet, CompareAndSwap) ek hardware atomic operation hai. Atomicity hi woh cheez hai jo un instructions ko trustworthy banati hai. Deep dive: Atomic operations.
6. Critical section & mutual exclusion
Picture: ek chhoti si kamra ek single doorway ke saath. Kamra critical section hai; rule "kamre mein sirf ek insaan" mutual exclusion hai. Lock darwaza hai.
Topic ko yeh kyun chahiye: ek lock ka poora kaam critical section ke around mutual exclusion enforce karna hai. Yeh do words woh goal hain jiske against har lock design ko measure kiya jaata hai.
7. Lock lifecycle: acquire, release, block, spin
Picture: single doorway ke bahar ek queue. Ek spinning waiter har microsecond handle hila raha hai (busy, hot). Ek blocking waiter bench par baitha hai aur apni baari aane par shoulder tap karne ko keh raha hai (idle, cool).
Topic ko yeh kyun chahiye: parent spin locks vs. blocking locks ko contrast karta hai. Unka trade-off (CPU waste vs. wake-up delay) tabhi samajh aata hai jab "spin" aur "block" concrete pictures hon.
8. Condition variable, wait, broadcast
Picture: ek bell ke neeche benches par so rahe log. broadcast use bajata hai; sab uthte hain, diwar par ek sign dekhte hain, aur ya toh andar chale jaate hain ya wapas baith jaate hain.
Topic ko yeh kyun chahiye: sahi barrier ek lock plus ek condition variable se banta hai. wait/broadcast ke bina tum threads ko group mein soone aur jagane nahin de sakte.
9. Counting symbols: , count, threshold, generation
Picture: ek turnstile ek mechanical tally ke saath. Har arrival tally ko ek se click up karta hai; jab tally tak pahunch jaata hai toh gate khul jaata hai, par reset hota hai, aur ek chhota "round" dial ek se aage badh jaata hai.

Topic ko yeh kyun chahiye: parent ka barrier code exactly in chaar values ko manipulate karta hai. generation reuse race ka star fix hai — tum woh argument follow nahin kar sakte jab tak yeh nahin pata ki har symbol kya count karta hai.
10. Cache coherence & memory ordering (har cheez ki neenv)
Picture: kai cores ek shared box ki chhoti private photocopies lekar baithe hain, ek invisible referee (coherence protocol) ke saath jo yeh ensure karta hai ki jab ek core write kare, toh baaki sabki photocopy ya toh update ho jaaye ya faad di jaaye.
Topic ko yeh kyun chahiye: TestAndSet "atomic" hai sirf isliye kyunki coherence doosre core ko us line ko mid-operation touch karne se rokta hai. Locks in guarantees ke upar bane hain.
Foundations kaisi topic ko feed karti hain
Related destinations jab tumhare paas foundations ho jaayein: Deadlock and livelock, Parallel algorithms.
Equipment checklist
Right side cover karo aur zyaan se jawab do. Agar koi bhi jawab fuzzy ho, parent note se pehle woh section dobara padho.
Thread kya hai, ek simple sentence mein?
Ek variable "shared" kya banata hai?
"Interleave" ka matlab kya hai?
counter = counter + 1 dangerous kyun hai?
"Atomic" ko apne words mein define karo.
Critical section kya hai, aur mutual exclusion kya hai?
Wait karte waqt spin aur block mein kya fark hai?
Condition variable ek thread ko kya karne deta hai?
wait se so jaana aur baad mein doosre thread ke broadcast/signal se jagaya jaana, phir apni condition dobara check karna.Barrier kab khulta hai?
count tak pahunch jaata hai (saare threads aa chuke hain).