ma`ruza potoklar (oqimlar)

PPTX 33 стр. 109,8 КБ Бесплатная загрузка

Предварительный просмотр (5 стр.)

Прокрутите вниз 👇
1 / 33
12-ma`ruza potoklar (oqimlar). reja: 1. oqimlar tasnifi. 2. oqim bilan ishlovchi asosiy funksiyalar. kalit so‘zlar: threads, pthread. oqimlar tasnifi. oqimlar (threads) bitta dasturda bir vaqtning o`zida biror xarakatlarni bajarishga ruxsat beradi. linuxda oqimlar bilan ishlash uchun pthread kutubxonasi bilan amalga oshiriladi. ushbu kutubxonani chaqirish uchun komponovichga – lpthread opsiyasini yuborish kerak. oqimlar bitta dastur doirasida bir vaqtning o`zida umumiy ma‘lumotlardan foydalanib bir necha jaryonni boshqaradi. oqimlar linuxda jaryonlar kabi bog`liq bo`lmagan ravishda bajariladi. oqimlar quyidagicha bajariladi: oqimli funksiya nomli funksiya yaratiladi { xe "funksiya:oqimli" }. pthread_create() funksiya { xe "funksiya:pthread_create()" } orqali oqim yaratiladi, (bu boshqa dasturlarga parallel ravishda ishlaydi) chaqirilgan tomon faoliyatini oqimli funksiyani kutmasdan ishlayveradi. misol. #include #include int main (void) { int a = 10; pid_t status = fork (); /* child */ if (!status) { a++; printf ("child's a=%d\n", a); return 0; } /* parent */ wait (); printf ("parent's a=%d\n", a); return 0; } oqim …
2 / 33
jo`natiladi. xar bir oqim uchun quyidagi parametrlar aniqlanadi: pthread_t pid; // oqim deskriptori • pthread_attr_t attr; // oqim atributlari • oqimni tugatish: • pthread_exit(value); value – qaytariluvchi qiymat yoki null quyida bir masalani ko`rib chiqamiz. #include #include void * any_func (void * args) { fprintf (stderr, "hello world\n"); sleep (5); return null; } int main (void) { any_func (null); fprintf (stderr, "goodbye world\n"); while (1); return 0; } oqimlar tasnifi oqimlar dasturiy ta’minotda bir nechta vazifalarni bir vaqtning o‘zida bajarishga imkon beruvchi engil jarayonlardir. oqimlar turli mezonlarga ko‘ra tasniflanadi: 1. yaratilish darajasiga ko‘ra: foydalanuvchi darajasidagi oqimlar (user-level threads): bu turdagi oqimlar foydalanuvchi kutubxonasi orqali boshqariladi. operatsion tizim ularni alohida oqimlar sifatida tan olmaydi. ular tez yaratiladi va boshqariladi, biroq bir oqim to‘xtasa, butun jarayon to‘xtashi mumkin. yadro darajasidagi oqimlar (kernel-level threads): bu oqimlar operatsion tizim yadrosi tomonidan bevosita boshqariladi. har bir oqim alohida resurslar va boshqaruvga ega bo‘lib, ular ustida …
3 / 33
a ko‘ra: parallel oqimlar (parallel threads): har bir oqim mustaqil ishlaydi va bir vaqtning o‘zida turli protsessor yadrolarida bajarilishi mumkin. kooperativ oqimlar (cooperative threads): oqimlar bir-biriga joy bo‘shatish orqali ishlaydi. ya’ni, har bir oqim bajarilishi tugagach, boshqasiga navbat beradi. oqimlar bilan ishlashdagi asosiy funksiyalar va metodlar 1. oqim yaratish funksiya tavsifi pthread_create() yangi oqim (thread) yaratadi va ishga tushiradi. thread – yangi oqim identifikatori. attr – atributlar (null bo‘lsa, default qiymat). start_routine – bajariladigan funksiya. arg – funksiyaga uzatiladigan argument. oqimni bekor qilish (cancel qilish) funksiya tavsifi pthread_cancel() oqimni majburiy tugatadi. oqimlarni kutish/suspension funksiya tavsifi sleep(), usleep() belgilangan vaqt davomida oqimni to‘xtatadi. oqim sinxronizatsiyasi (synchronization) oqimlar birgalikda umumiy resurslardan foydalanganda to‘qnashuvlarni oldini olish uchun quyidagi metodlar ishlatiladi: mutexlar (mutual exclusion) funksiya tavsifi pthread_mutex_init() mutexni boshlang‘ich holatga keltiradi. pthread_mutex_lock() mutexni qulf qiladi (agar band bo‘lsa, kutadi). pthread_mutex_unlock() mutexni ochadi (qulfdan chiqaradi). pthread_mutex_destroy() mutexni yo‘q qiladi. shartli o‘zgaruvchilar (condition variables) funksiya tavsifi …
4 / 33
vaqtning o‘zida bir nechta vazifalarni (jarayonlarni) bajarish imkonini beruvchi texnologiya. zamonaviy operatsion tizimlarda, ayniqsa linux, windows va macos tizimlarida, oqimlar yordamida dasturlarning samaradorligi va javob beruvchanligi oshiriladi. oqim (thread) tushunchasi oqim — bu jarayon ichidagi engil vazifalardan biri bo‘lib, u markaziy protsessor (cpu) resurslaridan foydalanadi. har bir oqim o‘z stek xotirasiga ega bo‘ladi, biroq kod segmenti, statik ma’lumotlar va heap (dunyo xotira maydoni) barcha oqimlar uchun umumiy bo‘ladi. jarayon (process) vs. oqim (thread) xususiyat jarayon oqim mustaqillik to‘liq mustaqil jarayon ichida ishlaydi resurslar har biri alohida resursga ega umumiy resurslardan foydalanadi tezlik sekinroq yaratiladi tez yaratiladi ma’lumot almashish oraliq mexanizmlar kerak (ipc) bevosita almashiladi oqimlarning afzalliklari parallel ishlash: dastur bir vaqtning o‘zida ko‘plab vazifalarni bajara oladi. tez ishga tushadi: oqimlarni yaratish va ularga boshqaruv berish jarayonlardan ancha tez. resurslardan samarali foydalanish: oqimlar umumiy xotira maydonini ishlatadi. ko‘p yadroli protsessorlar uchun mos: har bir oqim alohida yadroga taqsimlanishi mumkin. oqimlar tasnifi …
5 / 33
ndition) bo‘lmasligi uchun sinxronizatsiya zarur. mutex (o‘zaro istisno): oqimlarning navbat bilan umumiy resursga murojaat qilishini ta'minlaydi. pthread_mutex_init() pthread_mutex_lock() pthread_mutex_unlock() pthread_mutex_destroy() condition variable (shartli o‘zgaruvchi): oqimlar ma’lum holat yuz berishini kutadi. pthread_cond_wait() pthread_cond_signal() pthread_cond_broadcast() oqimlar bilan ishlashda muammolar muammo tavsif deadlock ikki yoki undan ortiq oqim bir-birini kutib qolishi race condition resursga bir vaqtning o‘zida murojaat qilish starvation ba’zi oqimlarga doimiy navbat yetmasligi zamonaviy kompyuter tizimlarida oqimlar (threads) haqida yangi qarashlar 1. ko‘p yadroli (multi-core) tizimlar va oqimlar bugungi kompyuter va serverlar, hatto mobil telefonlar ham multi-core arxitekturaga ega. bu shuni anglatadiki: har bir oqim alohida cpu yadrosi tomonidan bajarilishi mumkin. parallelizm (bir vaqtning o‘zida bajariladigan vazifalar) orqali ish samaradorligi oshadi. zamonaviy dasturlar (brauzerlar, ide’lar, sun’iy intellekt ilovalari) oqimlardan faol foydalanadi. yuqori samarali hisoblash (hpc) va oqimlar katta hajmdagi hisob-kitoblar uchun oqimlar bilan quyidagilar amalga oshiriladi: parallel hisoblash: ilmiy modellashtirish, statistik hisoblash, simulyatsiyalar. oqimlar klasterli hisoblashda gpu va cpu yadrolarini to‘liq …

Хотите читать дальше?

Скачайте все 33 страниц бесплатно через Telegram.

Скачать полный файл

О "ma`ruza potoklar (oqimlar)"

12-ma`ruza potoklar (oqimlar). reja: 1. oqimlar tasnifi. 2. oqim bilan ishlovchi asosiy funksiyalar. kalit so‘zlar: threads, pthread. oqimlar tasnifi. oqimlar (threads) bitta dasturda bir vaqtning o`zida biror xarakatlarni bajarishga ruxsat beradi. linuxda oqimlar bilan ishlash uchun pthread kutubxonasi bilan amalga oshiriladi. ushbu kutubxonani chaqirish uchun komponovichga – lpthread opsiyasini yuborish kerak. oqimlar bitta dastur doirasida bir vaqtning o`zida umumiy ma‘lumotlardan foydalanib bir necha jaryonni boshqaradi. oqimlar linuxda jaryonlar kabi bog`liq bo`lmagan ravishda bajariladi. oqimlar quyidagicha bajariladi: oqimli funksiya nomli funksiya yaratiladi { xe "funksiya:oqimli" }. pthread_create() funksiya { xe "funksiya:pthread_create()" } orqali oqim yaratiladi, (bu boshqa das...

Этот файл содержит 33 стр. в формате PPTX (109,8 КБ). Чтобы скачать "ma`ruza potoklar (oqimlar)", нажмите кнопку Telegram слева.

Теги: ma`ruza potoklar (oqimlar) PPTX 33 стр. Бесплатная загрузка Telegram