# OT ichki tuzilishi bo'yicha testlar va topshiriqlar javoblari

## 1-qism. Test savollari javoblari va izohlar

**1. Javob: B (Yadro (Kernel))**
*Izoh:* Yadro operatsion tizimning yuragi va eng muhim qismi bo'lib, u bevosita apparat resurslarini boshqaradi va dasturlar hamda uskunalar o'rtasida ko'prik vazifasini o'taydi.

**2. Javob: C (Monolit yadro)**
*Izoh:* Monolit arxitekturada OTning barcha asosiy qismlari (fayl tizimi, xotira boshqaruvi, tarmoq steki, drayverlar) bitta yirik yadro ichida birlashtiriladi (masalan, Linux). Bu unumdorlikni oshiradi, lekin tizim xavfsizligi biroz zaiflashadi.

**3. Javob: C (Tizimli chaqiruvlar (System calls) orqali)**
*Izoh:* Foydalanuvchi rejimidagi dasturlar xavfsizlik nuqtai nazaridan apparatga yoki xotiraga o'zboshimchalik bilan to'g'ridan-to'g'ri kira olmaydi. Har qanday muhim vazifa (fayl ochish, tarmoqqa ulanish) maxsus interfeys — tizimli chaqiruvlar orqali OT yadrosidan so'raladi.

**4. Javob: C (Komponentlarning yuqori darajada izolyatsiya qilinganligi)**
*Izoh:* Mikroyadro (Microkernel) arxitekturasida yadro ichida faqatgina eng asosiy va kichik qismlar qoldiriladi. Qolgan barcha xizmatlar (drayverlar, fayl tizimi va hk) foydalanuvchi rejimida alohida dastur kabi ishlaydi. Bu orqali, masalan, biron drayver qulasa ham, butun kompyuter qotib qolmaydi.

**5. Javob: B (Ilova -> Tizimli chaqiruv -> Yadro -> Fayl tizimi -> Qurilma drayveri -> SSD)**
*Izoh:* Bu ketma-ketlik OT ning turli qatlamlaridan o'tishni to'g'ri ko'rsatadi: Ilova faylni so'raydi (Tizimli chaqiruv) -> Yadro so'rovni qabul qiladi -> Fayl tizimidan ma'lumot qayerdaligi aniqlanadi -> Qurilma drayveri uskunaga buyruq beradi -> SSD diskdan ma'lumot o'qiladi.

---

## 2-qism. Amaliy va nazariy topshiriqlar javoblari

**Topshiriq 1 javobi: OT arxitekturalarini taqqoslash**
- **Monolit yadro (Linux):** Agar audio drayverda jiddiy xato (bug) ro'y bersa, u butun yadro bilan bitta manzil fazosida ishlayotgani uchun xotiraning muhim qismini buzib qo'yishi mumkin. Natijada **butun operatsion tizim qulaydi** (Linux'da "Kernel panic", Windows'da "Blue screen of death" yuz beradi) va kompyuterni qayta ishga tushirish talab etiladi.
- **Mikroyadro (MINIX):** Audio drayveri yadroda emas, balki foydalanuvchi rejimida (User mode) oddiy alohida jarayon (process) sifatida ishlaydi. Agar u qulasa (crash), faqatgina ovoz yo'qoladi, lekin **operatsion tizim ishlashda davom etadi**. Yadro drayver qulaganini aniqlab, uni avtomatik ravishda qayta ishga tushirishi mumkin (ovoz 1-2 soniyaga uzilib, keyin yana tiklanadi).

**Topshiriq 2 javobi: Tizimli chaqiruvlarni kuzatish (Amaliy)**
Agar `ls` buyrug'i terminalda ishlatsangiz (`strace ls`), u o'z ishini bajarish uchun yuzlab tizimli chaqiruvlarni yuboradi. Asosiylaridan misollar:
1. **`execve(...)`**: `ls` dasturini diskdan xotiraga yuklash va ishga tushirish uchun ishlatiladi.
2. **`openat(...)` / `open(...)`**: Papkadagi fayllar ro'yxatini ko'rish uchun joriy katalogni (papkani) ochadi.
3. **`read(...)` / `getdents64(...)`**: Papka ichidagi fayl va kataloglar ro'yxatini yadro orqali o'qiydi.
4. **`write(...)`**: O'qilgan ma'lumotni (fayllar nomlarini) standart chiqarish (terminal) ekraniga yozib beradi.
5. **`close(...)`**: Papkani yoki ishlatilgan resurslarni yopadi.
6. **`exit_group(...)`**: Dastur ishi muvaffaqiyatli tugaganini yadroga xabar beradi.

**Topshiriq 3 javobi: Jarayonlar va oqimlarni farqlash**
- **Jarayon (Process):** Xotirada bajarilayotgan mustaqil dastur bo'lib, uning o'z shaxsiy xotirasi va izolyatsiya qilingan manzil fazosi bo'ladi. Bitta jarayon ikkinchisining xotirasiga to'g'ridan-to'g'ri kira olmaydi.
- **Oqim (Thread):** Bitta jarayon ichidagi kichik bajarilish oqimi. Bitta jarayonga tegishli barcha oqimlar bir xil xotirani va resurslarni bo'lishib (share qilib) ishlatadi.

**Chrome brauzeri haqida:** Chrome barcha yorliqlarni (tab'larni) bitta jarayon ichidagi *oqimlar* qilib emas, balki har bir yangi tab uchun alohida **yangi jarayon (process)** yaratadi.
*Sababi:* **Xavfsizlik va Barqarorlik.** Agar bitta tabdagi veb-sayt (masalan, og'ir JavaScript kod) qotib qolsa (crash), u faqat o'zining jarayonini qulatadi. Qolgan barcha tablar ishlayveradi. Shuningdek, bitta veb-sayt jarayoni boshqa veb-sayt jarayonining (masalan, bank ilovangizning) xotirasini o'qiy olmaydi (xavfsizlik izolyatsiyasi ta'minlanadi). Agar hamma tablar oqimlar (threads) orqali ishlaganda edi, bitta saytning ishdan chiqishi butun brauzerni yopib yuborishiga sabab bo'lardi.
