# 6-MA'RUZA: OPERATSION TIZIMLAR BOLALAR UCHUN (KIDS TURKUMI)
# Mavzu: Sehrli Shaharcha va Aqlli Robotlar — Ko'p Vazifalilik, Jarayonlar, Oqimlar va Sinxronizatsiya

> **Toshkent Xalqaro Universiteti (TIU)**  
> **Fan:** Operatsion tizimlar  
> **Format:** "Kids Edition" (Oddiy tushunchalar, ertakmonand metaforalar va yorqin tasvirlar)  
> **Muallif:** Azamat Botirovich Kuchkarov  

---

# 1-Slayd: Titul — Sehrli Kompyuter Shaharchasiga Xush Kelibsiz!

### 🏰 Operatsion Tizimlar: Bolalar Turkumi (Kids Edition)
**6-ma'ruza: Kompyuter qanday qilib bir vaqtda 100 ta ishni bajaradi?**
*(Jarayonlar, Oqimlar, Quvurlar va Sehrli Qulflar)*

* **Bosh Qahramon:** Aqlli Bosh Oshpaz Robot (CPU)
* **Sehrli Shahar Hokimi:** Operatsion Tizim (OS)
* **Kichik Ishchilar:** Jarayonlar (Processes) va Oqimchalar (Threads)
* **Bugungi Shior:** "Murakkab narsalarni do'stona va quvnoq o'rganamiz!"

---

# 2-Slayd: Keling, Tanishamiz! Kompyuter Ichidagi Shaharcha

Tasavvur qiling, har bir kompyuter, telefon yoki planshet ichida ulkan, gavjum va juda tartibli **Sehrli Shaharcha** bor!

* ⚡ **Protsessor (CPU):** Shahardagi eng chaqqon, har soniyada milliardlab buyruq bajara oladigan Bosh Muhandis.
* 📦 **Operativ Xotira (RAM):** O'yinchoqlar va kerakli asboblar qo'l ostida turadigan katta sehrli stol.
* 🗄️ **Doimiy Xotira (SSD/Disk):** Ertak kitoblari va xotiralar saqlanadigan katta kutubxona.
* 👑 **Operatsion Tizim (OS):** Shahar meri va tartib posboni. U barcha robotlarga vazifa beradi va ularning urushib qolmasligini ta'minlaydi!

---

# 3-Slayd: Katta Savol — Bitta Oshpaz Qanday Qilib 100 Ta Taom Pishiradi?

Siz telefoningizda bir vaqtning o'zida:
1. YouTube'da multfilm ko'rasiz 🎬
2. Telegram'da do'stingiz bilan yozishasiz 💬
3. Musiqa tinglaysiz 🎵
4. Fonda o'yin yuklanayotgan bo'ladi 🎮

**Savol:** Axir telefonda bittagina yoki sanoqli protsessor yadrolari bo'lsa, qanday qilib bu dasturlarning barchasi "bir vaqtda" ishlayapti?

**Javob:** Bunga **Ko'p Vazifalilik (Multitasking)** deyiladi! Bosh oshpaz robot bir taomdan ikkinchisiga shunchalik chaqqonlik bilan o'tadiki, siz buni sezmay ham qolasiz!

---

# 4-Slayd: Sehrli Oshxona (Multitasking Metaforasi)

![Robot Bosh Oshpaz Oshxonada](assets/kitchen.jpg)

### 🍳 Oshpaz CPU ning Bir Kuni:
* 🍲 **1-soniya:** Gaz pechkaga sho'rvani qo'yadi va qaynaguncha taymerni yoqadi.
* 🥕 **2-soniya:** Sho'rva qaynayotgan paytda sabzi va piyoz to'g'raydi.
* 🍕 **3-soniya:** Pitsa xamirini yoyadi va pechga soladi.
* ⏱️ **Kuzatuv:** Oshpaz sho'rvaning qaynashini qarab bekor o'tirmaydi! U bir ish qiziyotganda, darhol ikkinchi ishga o'tadi. 
* Kompyuterda ham xuddi shunday: **Protsessor har bir dasturga sekundning mingdan bir qismini ajratadi!**

---

# 5-Slayd: Konkurentlik vs Parallellik (Oddiy Misol)

Ko'pincha bolalar bu ikkisini adashtirib qo'yishadi. Keling, farqini ko'ramiz:

### 🏃 1. Konkurentlik (Concurrency) — "Bitta ofitsiant":
* Bitta chaqqon ofitsiant 5 ta stolga navbat bilan yugurib xizmat qiladi.
* U bir stolga choy quysa, ikkinchisiga non eltadi.
* **Kompyuterda:** 1 ta protsessor yadrosi dasturlar orasida navbat bilan almashadi.

### 🏃‍♂️🏃‍♀️ 2. Parallellik (Parallelism) — "Besh nafar ofitsiant":
* Restoranda haqiqatdan ham 5 nafar ofitsiant bor!
* Har biri o'z stoliga **aynan bir vaqtda** xizmat qiladi.
* **Kompyuterda:** Ko'p yadroli (Multi-core) CPU barcha dasturlarni haqiqatdan bir vaqtda bajaradi.

---

# 6-Slayd: O'yin Qoidalari — Odobli Bolalarmi yoki Qat'iy Hakam?

Shaharchada robotlar navbatni qanday bo'lishib olishadi? Tarixda ikki xil yo'l bo'lgan:

### 🧸 1. Kooperativ Ko'p Vazifalilik (Eski usul)
* Har bir bola o'yinchoq bilan o'ynab bo'lgach, "Endi sen o'yna" deb o'zi navbatni berishi kerak edi.
* **Muammo:** Agar bir injiq bola o'yinchoqni bermay o'tirib olsa, butun maydoncha qotib qolardi (kompyuter osilib qolardi)!

### ⏱️ 2. Siqib Chiqaruvchi (Preemptive) Ko'p Vazifalilik (Zamonaviy OT)
* Maydonchada **Aqlli Hakam (Taymer)** bor!
* Har bir bolaga qat'iy **1 daqiqa vaqt kvanti** beriladi.
* Taymer jaranglashi bilan hakam hushtak chaladi: *"Vaqt tugadi, navbat keyingi do'stingga!"*.
* Hech qaysi dastur kompyuterni yakka o'zi egallab ololmaydi!

---

# 7-Slayd: Dastur va Jarayon — Farqi Nimada?

Ko'pchilik "Dastur" va "Jarayon" bitta narsa deb o'ylaydi, ammo ular boshqa-boshqa:

| Tushuncha | Sehrli O'xshatish | Kompyuterdagi Ma'nosi |
|---|---|---|
| **Dastur (Program)** | 📖 Oshxona kitobidagi pishiriq retsepti | Diskda xotirjam saqlanayotgan passiv fayl (`telegram.exe`) |
| **Jarayon (Process)** | 🧁 Oshpaz retsept bo'yicha pishirayotgan haqiqiy shirinlik! | Operativ xotiraga yuklanib, ayni damda ishlayotgan faol dastur |

* **Qiziq fakt:** Bitta retseptdan 10 ta turli xil pishiriq pishirish mumkin. Xuddi shunday, bitta dasturdan bir nechta jarayon ochishingiz mumkin (masalan, brauzerda 5 ta alohida oyna).

---

# 8-Slayd: Jarayonning Shaxsiy Pasporti — PCB nima?

Shahar hokimi har bir fuqaroga pasport beradi. Jarayonning pasporti esa **PCB (Process Control Block)** deb ataladi:

```text
┌──────────────────────────────────────────────┐
│  PASPORT: JARAYON NAZORAT BLOKI (PCB)         │
├──────────────────────────────────────────────┤
│ 🆔 PID: #1042 (Shaxsiy raqami)               │
│ 🚦 Holati: RUNNING (Hozir sahnada ishlamoqda)│
│ 📌 Xatcho'p (PC): 42-satr o'qilmoqda        │
│ 💼 Ryukzak (Xotira): 120 MB ajratilgan       │
│ 📁 Ochiq qutilar: photo.png, song.mp3        │
│ 👑 Egasi: Ahmadbek (Foydalanuvchi)           │
└──────────────────────────────────────────────┘
```

Har gal boshqa dasturga navbat berganda, OT xatcho'pni saqlab qo'yadi. Keyingi safar xuddi shu to'xtagan joyidan davom etadi!

---

# 9-Slayd: Jarayonning 5 Ta Sehrli Bosqichi (Hayot Sikli)

![Jarayonning 5 Holati](assets/states.jpg)

Har bir jarayon o'z hayotida 5 ta bekatdan o'tadi:
1. 🐣 **NEW (Yangi tug'ilish):** Dastur ustiga sichqoncha bilan bosdingiz, OT unga xotira tayyorlamoqda.
2. 🧍 **READY (Tayyor navbatchi):** Robot barcha qurollarini taqib, CPU sahnasiga chiqish uchun navbatda turibdi.
3. ⚡ **RUNNING (Sahnada ijro):** Robot protsessor taxtida o'tiribdi va buyruqlarni bajarmoqda!
4. ⏳ **WAITING (Dam olish / Kutish):** Robot diskdan rasm kelishini yoki tugma bosilishini kutib o'rindiqda dam olmoqda.
5. 🎓 **TERMINATED (Vazifa yakunlandi):** Ish bitdi, robot diplomini olib sahnani bo'shatadi.

---

# 10-Slayd: Oila Daraxti — Ota va Bola Jarayonlar (`fork` va `exec`)

Kompyuterda jarayonlar qanday ko'payadi? Ular xuddi ertakdagi oilalarga o'xshaydi!

* 👨‍👦 **`fork()` (Sehrli ko'zgu):** Ota jarayon sehrli so'zni aytganda, yonida uning aynan nusxasi bo'lgan **Bola jarayon** paydo bo'ladi!
* 🎭 **`exec()` (Yangi kiyim kiyish):** Yangi bola robot o'z kiyimini almashtiradi va yangi hunarni bajarishga kirishadi (masalan, musiqa chalishni boshlaydi).
* 🧘‍♂️ **`wait()` (Otaning sabri):** Ota jarayon bolasi o'z ishini xavfsiz tugatishini kutib turadi.
* 🌳 **Jarayonlar Daraxti:** Shaharda barcha jarayonlarning eng birinchi Bobosi bor — u **PID 1 (`systemd` yoki `init`)** deb ataladi!

---

# 11-Slayd: Qo'rqinchli Ertaklar — Zombi va Yetim Jarayonlar!

Kompyuter olamida ham kulgili va g'alati qahramonlar bor:

### 🧟‍♂️ 1. Zombi Jarayon (Zombie Process):
* Bola robot o'z ishini tugatdi, lekin ota robot hali `wait()` chaqirib uning hisobotini olmadi!
* Bola robot endi ishlamaydi, xotira yemaydi, lekin uning ismi ro'yxatda "zombi" bo'lib qolib turadi.
* **Qanday tuzatiladi?** Otasi uning hisobotini qabul qilishi bilan zombi yo'qoladi!

### 👶 2. Yetim Jarayon (Orphan Process):
* Ota robot kutilmaganda yo'qolib qolsa, bola robot yolg'iz qoladi.
* **Xavotir olmang!** Shahar hokimi — Mehribon Bobo **`PID 1` (init)** darhol yetim bolani asrab oladi va unga boshpana beradi!

---

# 12-Slayd: Karusel Qoidalari — CPU Rejalashtiruvchisi (Scheduling)

Protsessor taxtiga kim birinchi chiqadi? Buning uchun qiziqarli o'yin qoidalari bor:

* 🏪 **FCFS (Kim birinchi kelsa, shu o'ynaydi):** Do'kondagi oddiy navbat. Oldingi odam katta aravani to'ldirib kelgan bo'lsa, orqadagilar sabr qiladi.
* ⚡ **SJF (Kichik ishlar birinchi):** Kimning vazifasi eng tez bitadigan bo'lsa, unga birinchi yo'l beriladi.
* 🎠 **Round Robin (Sehrli Karusel):** Eng adolatli usul! Har bir bolaga karuselda 2 soniya aylanish beriladi. Vaqt bitgach, navbat oxiriga o'tadi. Hamma xursand!
* 🚑 **Ustuvorlik (Priority):** Tez yordam yoki o't o'chiruvchi robot kelsa, unga barcha navbatsiz yo'l beradi!

---

# 13-Slayd: Jarayon va Oqim — Alohida Uylar va Bir Uyda Yashovchi Do'stlar

![Jarayon va Oqim Uyi](assets/threads.jpg)

### 🏡 Jarayon (Process) — Bu Alohida Hovli:
* Har bir jarayonning o'z baland devori, o'z bog'i bor.
* Boshqa qo'shnining hovlisiga ruxsatsiz kirish taqiqlangan (Izolyatsiya).
* Agar bitta uyda chiroq o'chsa, qo'shni uyga ziyon yetmaydi.

### 🤖🤖 Oqimlar (Threads) — Bir Uyda Yashovchi Aka-Ukalar:
* Oqimlar — bu bitta jarayon ichidagi chaqqon yordamchilar!
* Ular umumiy xonada, bitta **Muzlatgichdan (`Shared Memory`)** birga foydalanishadi.
* Lekin har birining o'z yelkasida shaxsiy daftar va qalami solingan **Ryukzagi (`Stack`)** bor.
* Oqimlar juda tez til topishadi, lekin biri suv to'kib yuborsa — butun uyga zarar yetishi mumkin!

---

# 14-Slayd: Jarayonlararo Muloqot (IPC) — Ular Qanday Gaplashadi?

Turli uylarda yashovchi robotlar bir-biriga qanday xabar yuboradi? Buning 4 ta ajoyib yo'li bor:

```text
1. 🪠 Quvur (Pipe |)        ───>  Aka gapiradi, uka eshitadi (ls | grep)
2. 📬 Xat qutisi (Queue)    ───>  Xat qoldirib ketiladi, keyinroq o'qiladi
3. 📋 Sehrli Doska (Shared) ───>  Ikkala robot bitta doskaga qarab o'qiydi
4. 📞 Telefon (Socket)      ───>  Hatto boshqa shahardagi robot bilan gaplashish!
```

* **Signallar (Rangli Bayroqchalar):**
  - 🛑 `SIGKILL (9)`: "Darhol uxlashga!" (Rad etib bo'lmaydigan qat'iy buyruq).
  - ⚠️ `SIGINT (2)`: "O'yinni to'xtatib turaylik" (Klaviaturadagi `Ctrl + C`).
  - 🚪 `SIGTERM (15)`: "O'yinchoqlaringni yig'ishtirib chiq".

---

# 15-Slayd: Katta Xavf — Poyga Holati (Race Condition)!

Tasavvur qiling, muzlatgichda faqat **1 dona shokoladli muzqaymoq** qolgan.

* 🏃‍♂️ **Ali (1-oqim):** Muzlatgichni ochib qaradi: *"Ha, 1 ta muzqaymoq bor ekan!"*.
* 🏃‍♂️ **Vali (2-oqim):** Xuddi shu soniyada qaradi: *"Ha, 1 ta muzqaymoq bor ekan!"*.
* Ali muzqaymoqni olib yeb qo'ydi (Muzqaymoq soni = 0).
* Vali ham qo'lini cho'zdi va hech narsa topa olmadi, qo'li muzlab yig'lab yubordi!
* **Bu kompyuterda katta xatoliklarga (Race Condition) olib keladi!**
* **Yechim:** Xavfli joyga kirish tartibini o'rnatish kerak. Bu joy **Kritik Seksiya (Critical Section)** deyiladi!

---

# 16-Slayd: Qahramon Mutex — Sehrli Oltin Kalit!

![Mutex va Semaphore Muzqaymoq Do'koni](assets/mutex.jpg)

### 🗝️ Myuteks (Mutex — Mutual Exclusion):
* Muzqaymoq do'koni eshigiga osilgan sehrli qulfni ko'ryapsizmi?
* Eshik oldida faqat **1 dona Oltin Kalit** bor.
* **1-qoida:** Ichkariga faqat kalitni olgan bola kira oladi va eshikni ichkaridan qulflaydi.
* **2-qoida:** U ichkarida xarid qilib bo'lmaguncha, boshqa hech kim kira olmaydi — hamma tashqarida xushmuomala bo'lib kutadi.
* **3-qoida:** Bola chiqib ketayotganda kalitni keyingi do'stiga topshiradi!
* Natijada: Hech qanday urush-janjal bo'lmaydi, har bir hisob-kitob aniq bo'ladi!

---

# 17-Slayd: Aqlli Svetofor — Semafor (Semaphore) nima?

Agar do'konga yoki avtoturargohga birdaniga bir nechta do'stimiz kirishi mumkin bo'lsa-chi?

* 🚦 **Semafor (Semaphore):** Bu raqamli aqlli hisoblagich!
* Masalan, o'yin maydonchasida **3 ta velosiped** bor. Semafor ekranida **`3`** raqami yonadi.
* 🚴 1-bola kelib velosiped oldi: Semafor = **`2`**.
* 🚴 2-bola keldi: Semafor = **`1`**.
* 🚴 3-bola keldi: Semafor = **`0`** (barcha velosipedlar band!).
* 🚶 4-bola kelganda, semafor unga: *"Kutib tur, velosipedlar tugadi"* deydi.
* Bitta bola velosipedni qaytarishi bilan: Semafor yana **`1`** bo'ladi va 4-bola minib ketadi!

---

# 18-Slayd: Ertakdagi Qopqon — Deadlock (O'zaro Bloklanish)!

![Deadlock Tor Ko'prik](assets/deadlock.jpg)

### 🌉 Tor Ko'prikdagi To'rtta Mashina:
* Tasavvur qiling, tor ko'prik chorrahasiga to'rtta o'yinchoq mashina to'rtta tomondan kelib qoldi.
* Qizil mashina Moviy mashinani kutmoqda.
* Moviy mashina Yashilni, Yashil esa Sariqni kutmoqda.
* Sariq mashina esa Qizilning o'tishini kutmoqda!
* **Natija:** Hech kim orqaga chekinmaydi, hech kim oldinga siljiy olmaydi. Hammasi toshdek qotib qoldi! Bu holat **DEADLOCK** deyiladi.

---

# 19-Slayd: Deadlockning 4 Ta Sababi (Coffman Shartlari)

Deadlock sodir bo'lishi uchun 4 ta shart bir vaqtda bajarilishi kerak:

1. 🚫 **O'zaro cheklash (Mutual Exclusion):** Resursni faqat bir kishi ishlata oladi (o'yinchoqni bo'lishib bo'lmaydi).
2. ✊ **Ushlab turish va kutish (Hold and Wait):** Bir o'yinchoqni ushlab turib, ikkinchisini ham talab qilish.
3. 🛑 **Tortib olmaslik (No Preemption):** Bolaning qo'lidagi o'yinchoqni majburlab tortib olish mumkin emas.
4. 🔄 **Doiraviy kutish (Circular Wait):** Hamma zanjir bo'lib bir-birini kutib turishi.

* 💡 **Sehrli Sir:** Agar shu 4 ta shartdan bittasini buzsak, Deadlock hech qachon yuz bermaydi!

---

# 20-Slayd: Dono Boyqush — Bankir Algoritmi (Banker's Algorithm)

Shahrimizdagi **Dono Boyqush Bankir** bolalarga qalam va bo'yoqlarni qanday taqsimlaydi?

* 🦉 Boyqush juda ehtiyotkor!
* U bolalarning qo'lidagi bor narsalarni va ularga yana qancha kerakligini oldindan daftarga yozib boradi.
* Agar bola yangi qalam so'rasa, Boyqush avval hisob-kitob qiladi:
  *"Agar men qalamni bersam, barcha bolalar o'z rasmini muvaffaqiyatli chizib bo'la oladimi?"*.
* Agar xavf bo'lsa (Deadlock xavfi), Boyqush aytadi: *"Hozircha kutib tur, do'sting rasmini tugatgach beraman!"*.
* Bu usul **Xavfsiz Holat (Safe State)** deb ataladi!

---

# 21-Slayd: Sehrli Durbinlar — Linuxdagi Qidiruv Qurollari

Kompyuteringizda qaysi robotlar nima ish qilayotganini qanday ko'rish mumkin?

* 🔍 **`ps`**: Hozir sizning xonangizda qaysi robotlar borligini ko'rsatuvchi ro'yxat.
* 📊 **`top` yoki `htop`**: Shaharning jonli televizori! Eng ko'p charchayotgan, eng ko'p xotira yeyotgan robotlar tepada turadi.
* 🛑 **`kill -9 <PID>`**: O'zini yomon tutayotgan yoki adashib qolgan robotni uxlatib qo'yish sehrli tayog'i!
* 🌿 **`pstree`**: Butun shahar oila daraxtini (Bobo, Ota va Bola robotlarni) ko'rsatadi.

---

# 22-Slayd: Quvnoq Viktorina! (1-Savol)

### ❓ Savol 1: Dastur (Program) va Jarayon (Process) o'rtasidagi farq nima?

* **A)** Hech qanday farq yo'q, ikkalasi bir xil
* **B)** Dastur — kitobdagi retsept, Jarayon — oshxonada pishirilayotgan taom! ⭐
* **C)** Dastur bu klaviatura, Jarayon bu monitor
* **D)** Jarayon faqat kompyuter o'chirilganda ishlaydi

> 🎉 **To'g'ri javob: B!**  
> *Izoh:* Dastur diskda yotgan qog'ozdagi reja, jarayon esa uni hayotga tatbiq etayotgan jonli harakatdir!

---

# 23-Slayd: Quvnoq Viktorina! (2-Savol)

### ❓ Savol 2: Myuteks (Mutex) nima uchun kerak?

* **A)** Kompyuterga chiroyli musiqa qo'yish uchun
* **B)** Do'stlar bir vaqtda bitta narsani talashib buzib qo'ymasliklari uchun (Sehrli kalit) ⭐
* **C)** Internet simini tozalash uchun
* **D)** Kompyuter o'yinlarida tezroq yugurish uchun

> 🎉 **To'g'ri javob: B!**  
> *Izoh:* Myuteks — bu xonaga faqat bir kishi kirishi uchun beriladigan yagona Oltin Kalitdir!

---

# 24-Slayd: Kichik Muhandislar Uchun Amaliy Qiziqarli Loyihalar

1. 🎮 **"Poygachi Oshpazlar" Simulyatori:**
   - 3 ta robot bitta umumiy qozonda sho'rva pishiradi. Myuteks yordamida tuz va murch solish navbatini to'g'ri tashkil qiling!
2. 🚦 **"Aqlli Svetofor" (Semafor O'yini):**
   - 5 ta o'yinchoq mashina uchun 2 ta yo'l bo'shatuvchi Python dasturini yozib ko'ring (`threading.Semaphore`).
3. 🕵️‍♂️ **"Zombi Ovchisi" Detektiv Loyihasi:**
   - Linux terminalida `ps aux | grep Z` buyrug'i orqali uxlamay qolgan zombi-robotlarni toping!

---

# 25-Slayd: Tabriklaymiz! Siz Endi Kichik Tizim Muhandisisiz!

### 🎓 Bugun Nimani O'rgandik?
* ✅ Kompyuter ko'p vazifalilik orqali barchamizni hayratda qoldiradi
* ✅ Jarayonlar o'z pasportiga (PCB) va 5 ta hayotiy bosqichga ega
* ✅ Oqimlar — bir uyda yashovchi chaqqon yordamchilardir
* ✅ Myuteks va Semaforlar shahardagi tartib va xavfsizlikni saqlaydi
* ✅ Deadlock — chorrahadagi tiqilinch, lekin uni donolik bilan yechish mumkin!

**Katta rahmat! Savollaringiz bormi, yosh do'stlarim? 🚀**
