Oqim. Oqimlarning tasnifi


Mavzularning foydalanuvchi rejimida amalga oshirilishi


Download 25.43 Kb.
bet4/7
Sana17.06.2023
Hajmi25.43 Kb.
#1528601
1   2   3   4   5   6   7
Bog'liq
11 (1)

Mavzularning foydalanuvchi rejimida amalga oshirilishi . Tizim chaqiruvi va kontekstni o'zgartirish juda og'ir operatsiyalar bo'lgani uchun, foydalanuvchi rejimida oqimni qo'llab-quvvatlashni amalga oshirish g'oyasi uzoq vaqtdan beri mavjud. Ko'p urinishlar qilingan, ammo ushbu uslub mashhurlikka erishmagan:

  • GNU Portable Threads - bu Posix Threads-ning foydalanuvchi rejimida amalga oshirilishi. Asosiy afzallik - bu kutubxonaning yuqori portativligi, boshqacha qilib aytganda, uni boshqa operatsion tizimlarga osongina ko'chirish. Ushbu kutubxonada oqimni siqish muammosi juda sodda tarzda hal qilindi - unda oqimlar siqilmaydi :) Va, albatta, biz biron bir ko'p ishlov berish haqida gapira olmaymiz. Ushbu kutubxona N: 1 modelini amalga oshiradi.

  • Men bir necha bor eslatib o'tgan uglerod oqimlari va RealBasic oqimlari.

  • Gibrid dastur . Birinchi va ikkinchi yondashuvlarning barcha afzalliklaridan foydalanishga urinish, ammo qoida tariqasida bunday mutantlarning afzalliklaridan ko'ra ko'proq kamchiliklari bor. Bir misol: NetBSD-da Posix Threads-ni N: M modeli yordamida amalga oshirish, keyinchalik uning o'rnini 1: 1 tizim egallagan. Qo'shimcha ma'lumot olish uchun Rejalashtirishni faollashtirish: Parallelismni foydalanuvchi darajasida boshqarish uchun samarali yadro yordami.

    Win32 API oqimlari
    Win32-dagi satrlar CreateThread funktsiyasi yordamida yaratiladi, bu erda funktsiyaga ko'rsatgichni uzatamiz (uni thread funktsiyasi deb ataymiz), yaratilgan oqimda bajariladi. Oqim funktsiyasi bajarilganda oqim to'liq hisoblanadi. Agar siz oqimning tugashiga ishonch hosil qilishni istasangiz, TerminateThread funktsiyasidan foydalanishingiz mumkin, lekin uni ortiqcha ishlatmang! Ushbu funktsiya oqimni "o'ldiradi" va u har doim ham uni to'g'ri bajarolmaydi. ExitThread funktsiyasi thread funktsiyasi tugagandan so'ng bevosita chaqiriladi yoki siz ushbu funktsiyani o'zingiz chaqirishingiz mumkin. Uning asosiy vazifasi oqimlar to'plamini va uning tutqichini bo'shatishdir, ya'ni. ushbu oqimga xizmat qiladigan yadro tuzilmalaridir.
    Win32 oqimi uyqu holatida bo'lishi mumkin (to'xtatib turish). SuspendThread funktsiyasini chaqirish orqali "oqimni sustlash" va ResumeThread-ni chaqirish orqali "uni uyg'otish" mumkin yoki CreateThread funktsiyasining CreateSuspended parametrining qiymatini belgilash orqali oqimni yaratishni to’xtatishingiz(uyqu holati) mumkin. Boost :: threads va QT kabi o'zaro faoliyat platformalar kutubxonalarida o'xshash funktsiyalarni ko'rmasangiz hayron bo'lmasligingiz kerak. Juda oddiy, pthreads bu funktsiyani qo'llab-quvvatlamaydi.
    Win32-da sinxronizatsiya vositalari ikki xil: foydalanuvchi darajasida va yadro darajasida amalga oshiriladi. Birinchidan - bu ikkinchi 
    Download 25.43 Kb.

    Do'stlaringiz bilan baham:
  • 1   2   3   4   5   6   7




    Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
    ma'muriyatiga murojaat qiling