Jarayonlar va oqimlar
Dastur va jarayon farqini, jarayon holatlarini, protsessor vaqti taqsimlanishini va oqimlarni o‘rganasiz. Umumiy xotirada parallel ishlashning xavflari — poyga holati va o‘zaro blokirovka bilan tanishasiz.
Mavzular ro‘yxati (1 / 2)
1-bob. Operatsion tizimlar
2-bob. Tarmoq texnologiyalari
Dastur — diskda saqlanadigan passiv kod va ma’lumotlar to‘plami, jarayon (process) esa uning bajarilayotgan nusxasidir. Operatsion tizim har bir jarayonga alohida manzillar maydonini (kod, ma’lumotlar, uyum va stek) ajratadi, ochiq fayllar ro‘yxatini yuritadi, jarayon haqidagi ma’lumotlarni esa jarayon boshqaruv blokida (PCB) saqlaydi. Shu tufayli bir jarayon boshqasining xotirasini to‘g‘ridan-to‘g‘ri o‘zgartira olmaydi, bu esa tizim barqarorligi va xavfsizligini ta’minlaydi.
Jarayon hayoti davomida bir necha holatda bo‘ladi: yangi, tayyor, bajarilmoqda, kutmoqda (masalan, disk operatsiyasi tugashini) va tugagan. Protsessor vaqtini jarayonlar o‘rtasida rejalashtiruvchi (scheduler) taqsimlaydi; eng sodda usullardan biri — Round Robin, unda har bir jarayonga navbat bilan qisqa vaqt kvanti beriladi. Protsessorni bir jarayondan boshqasiga berish kontekst almashtirish (context switch) deyiladi: registrlar va PCB saqlanib, yangi jarayonniki tiklanadi, shu vaqt davomida foydali ish bajarilmaydi.
Oqim (thread) — jarayon ichidagi bajarilish birligi. Bir jarayonning oqimlari umumiy manzillar maydoni va ochiq fayllarni bo‘lishadi, lekin har birining o‘z steki, registrlari va buyruqlar hisoblagichi bor. Shu sababli oqim yaratish va ular orasida almashish jarayonlarga qaraganda arzonroq, ma’lumot almashish esa osonroq. Ko‘p yadroli protsessorda oqimlar haqiqatan parallel ishlay oladi, bitta yadroda esa navbatma-navbat bajariladi.
Umumiy xotira qulay, ammo xavfli: ikki oqim bir vaqtda bitta o‘zgaruvchini o‘zgartirsa, natija bajarilish tartibiga bog‘liq bo‘lib qoladi, bunga poyga holati (race condition) deyiladi. Masalan, counter += 1 amali aslida uch qadam: qiymatni o‘qish, bittaga oshirish va yozish; ikki oqim bu qadamlarni aralashtirsa, bitta oshirish yo‘qoladi. Himoya uchun mutex va semafor kabi sinxronizatsiya vositalari ishlatiladi, ammo ularni noto‘g‘ri qo‘llash o‘zaro blokirovkaga (deadlock) olib kelishi mumkin: har bir oqim boshqasi ushlab turgan resursni kutadi.
Asosiy xulosalar
- Dastur — diskdagi passiv kod, jarayon esa uning o‘z manzillar maydoniga ega bajarilayotgan nusxasi.
- Jarayon yangi, tayyor, bajarilmoqda, kutmoqda va tugagan holatlardan o‘tadi; kontekst almashtirish vaqt talab qiladi.
- Oqimlar jarayon xotirasi va fayllarini bo‘lishadi, lekin har birining o‘z steki va registrlari bor.
- Sinxronizatsiyasiz umumiy ma’lumotni o‘zgartirish poyga holatiga olib keladi; mutex va semafor shundan himoya qiladi.
- Noto‘g‘ri sinxronizatsiya o‘zaro blokirovkaga (deadlock) sabab bo‘lishi mumkin.
Amaliy topshiriqlar
- Linux terminalida
ps auxbuyrug‘ini (Windows’da Task Manager) ishga tushiring va kamida beshta jarayonning PID, holati (STAT) va egallagan xotirasini (RSS) jadvalga yozing. - Python’da
threadingyordamida ikkita oqim yarating: har biri umumiycounterni o‘qib,time.sleep(0)dan keyin bittaga oshirib yozsin va buni 10000 marta takrorlasin. Yakuniy qiymat kutilgan 20000 dan kam bo‘lishini kuzating, so‘ng xatonithreading.Lockbilan tuzating. ps -eLfbuyrug‘i bilan (NLWPustuni oqimlar sonini ko‘rsatadi) brauzer jarayonlari nechta oqimdan iboratligini aniqlang va brauzer nima uchun har bir yorliqni ko‘pincha alohida jarayonda ochishini tushuntiring.
Mustahkamlash savollari
O‘zingizni sinab ko‘ring: avval o‘ylab ko‘ring, keyin javobni oching.
1Jarayon va oqim o‘rtasidagi asosiy farq nima?Javobni ko‘rishJavobni yashirish
Jarayon o‘z manzillar maydoniga ega va boshqa jarayonlardan ajratilgan; bir jarayonning oqimlari esa xotira va ochiq fayllarni bo‘lishadi, faqat steki va registrlari alohida.2Nima uchun kontekst almashtirish ish unumdorligini kamaytirishi mumkin?Javobni ko‘rishJavobni yashirish
Har safar protsessor holati (registrlar, PCB) saqlanib, boshqasiniki tiklanadi, keshdagi ma’lumotlar ham foydasiz bo‘lib qolishi mumkin; shu vaqt davomida foydali ish bajarilmaydi.3Poyga holati qachon yuzaga keladi va uning oldini qanday olish mumkin?Javobni ko‘rishJavobni yashirish
Ikki yoki undan ortiq oqim umumiy ma’lumotni sinxronizatsiyasiz o‘zgartirsa yuzaga keladi; kritik qismni mutex yoki semafor bilan himoyalash orqali oldi olinadi.
Saytga kiring
Slaydlar va PDF faqat ro‘yxatdan o‘tgan foydalanuvchilar uchun: ko‘rish ham, yuklab olish ham. Kirish bepul.
Saytga kiring
Slaydlar va PDF faqat ro‘yxatdan o‘tgan foydalanuvchilar uchun: ko‘rish ham, yuklab olish ham. Kirish bepul.
0 / 2 mavzu o‘tildi
Kirib belgilash