Oqim. Oqimlarning tasnifi


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

Kooperativ ko'p vazifali tushunchasi shu tarzda paydo bo'ldi.(kooperativ ko'p vazifali), ya'ni. barcha oqimlar o'z navbatida, teng ijro muddati bilan bajariladi. Hozirda ishlayotgan oqimga boshqa hech qanday oqim ustunlik qila olmaydi. Ushbu juda sodda va ravshan yondashuv o'z Mac OS X-ning barcha versiyalarida, shuningdek Windows 95-ga va Windows NT-da o'z dasturini topdi. Hozirga qadar kooperativ vazifasi Win32-da 16 bitli dasturlarni ishlatish uchun ishlatilgan. Muvofiqlik sabablari bo'yicha, kooperativ ko'p vazifali ishlarni boshqarish menejeri tomonidan Mac OS X uchun Carbon dasturlarida qo'llaniladi.
Biroq, kooperativ ko'p vazifalar vaqt o'tishi bilan samarasiz bo'lib chiqdi. Qattiq disklarda saqlanadigan ma'lumotlar hajmi o'sdi va tarmoqlarda ma'lumotlar uzatish tezligi ham o'sdi. Ba'zi bir oqimlar ustuvorligi yuqori bo'lishi kerakligi aniq bo'ldi, masalan, qurilmaning uzilishlariga xizmat ko'rsatish uchun oqimlar, sinxron IO operatsiyalarini qayta ishlash va hk. Ayni paytda tizimdagi har bir ish zarrachasi va jarayon ustuvor xususiyatga ega bo'ldi. Win32 API-dagi mavzular va jarayonlarning ustuvor yo'nalishlari haqida ko'proq ma'lumotni Jeffri Rixterning kitobida o'qishingiz mumkin, biz bu erda to'xtamaymiz;) Shunday qilib, ustuvorligi yuqori bo'lgan oqim pastki oqimni ustun qo'yishi mumkin. Bu birinchi darajali ko'p vazifalarni bajarish tamoyilidir .(ko'p vazifalarni bajaruvchi). Hozirda barcha zamonaviy operatsion tizimlar ushbu usuldan foydalanmoqda, faqat foydalanuvchi rejimi tolasini amalga oshirish bundan mustasno.
Amalga oshirish darajasi bo'yicha oqimlarning tasnifi

Biz allaqachon muhokama qilganimizdek, oqimni rejalashtirishni amalga oshirish turli darajalarda amalga oshirilishi mumkin. Shunday qilib:



  1. Mavzularning yadrosi . Oddiy qilib aytganda, bu klassik 1: 1 modeli. Ushbu toifaga quyidagilar kiradi:

    • Win32 oqimlari.

    • Posix Threads-ni Linuxda amalga oshirish Native Posix Threads Library (NPTL) hisoblanadi. Haqiqat shundaki, 2.6 yadrosidan oldin Linuxdagi pthreads foydalanuvchi rejimida (LinuxThreads) to'liq va to'liq amalga oshirilgan. LinuxThreads 1: 1 modelini quyidagicha amalga oshirdi: yangi mavzu yaratishda kutubxona klon tizimiga qo'ng'iroq qildi va yangi jarayonni yaratdi, shu bilan birga ota-ona bilan bitta manzil maydonini bo'lishdi. Bu ko'plab muammolarni keltirib chiqardi, masalan, oqimlar turli xil identifikatorlarga ega edi . Posix standartining rejalashtiruvchiga, signallarga, sinxronizatsiya ibtidoiylariga tegishli ba'zi jihatlariga zid bo'lgan jarayon. Bundan tashqari, oqimni oldindan ko'rib chiqish modeli ko'p hollarda xatolar bilan ishladi, shuning uchun yadroning elkasiga pthread yordamini o'rnatishga qaror qilindi. Ushbu yo'nalishda bir vaqtning o'zida ikkita rivojlanish IBM va Red Hat tomonidan amalga oshirildi. Biroq, IBM dasturi zarur bo'lgan mashhurlikka ega bo'lmadi va tarqatishlarning hech biriga kiritilmadi, shuning uchun IBM kutubxonani (NGPT) yanada rivojlantirish va qo'llab-quvvatlashni to'xtatdi. Keyinchalik NPTL-lar glibc kutubxonasiga kiritilgan.

    • DragonFlyBSD kabi yengil vaznli yadro oqimlari (LWKT). Ushbu oqimlarning boshqa yadro rejimidagi oqimlardan farqi shundaki, engil yadro oqimlari boshqa yadro oqimlarini ustun qo'yishi mumkin. DragonFlyBSD-da juda ko'p yadroli mavzular mavjud, masalan, apparat uzilishlari xizmatining ish zarrachalari, dasturiy ta'minotning uzilishlari xizmatining ish zarralari va boshqalar. Ularning barchasi belgilangan ustuvorlik bilan ishlaydi, shuning uchun LWKT ushbu oqimlarni oldindan ko'rib chiqishi mumkin (oldindan ko'rib chiqish). Albatta, bular aniqroq narsalar, ular haqida siz cheksiz gaplashishingiz mumkin, ammo men yana ikkita misol keltiraman. Windows-da barcha yadro zarralari yoki tizim chaqiruvi / IO operatsiyasini boshlagan oqim kontekstida yoki tizim jarayoni ish zarrachasi kontekstida bajariladi. Mac OS X yanada qiziqarli tizimga ega. Yadroda faqat vazifa tushunchasi mavjud, ya'ni. vazifalar. Barcha yadro operatsiyalari kernel_task kontekstida amalga oshiriladi. Masalan, qo'shimcha qurilmaning uzilishlari bilan ishlash, uzilishga xizmat ko'rsatuvchi drayver tarmog'i kontekstida yuzaga keladi.


  2. 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