Ko'p protsessorli arxitekturalardan foydalanish. Bu, ayniqsa, hozirgi vaqtda, ko'p yadroli gibrid va ko'p protsessorli tizimlardan keng foydalanish davrida juda muhimdir. Parallel bajarilishning haqiqiy afzalliklarini nihoyatda sezish imkonini beradigan ko'p yadroli protsessorga asoslangan dasturlarning bajarilishi.
Ko’poqimlilik tarixi
Ko’poqimlilik kontseptsiyasi UNIX tizimi va uning izdoshlarining rivojlanishi bilan bog’liq bo’lib, 1980-yillarga borib taqaladi. Eng ko'p rivojlangan ko’poqimlilik AT&T firmasining UNIX oilasida bo'lgan, shu asosda, Solaris tizimida ishlab chiqilgan. Bularning barchasi UNIX-ning boshqa asosiy funksiyalari qatorida ko’poqimlilikni o'z ichiga olgan POSIX standartida aks etgan.
Keyinchalik, 1990-yillarning o’rtalariga kelib, Windows NT OT yaratildi va bu tizimga ko’poqimlilik biriktirildi. Biroq, ko'p ishlov berish uchun API-lar operatsion tizimlarda sezilarli darajada farq qilar edi. Shuning uchun ko'p satrli dasturlar, hattoki yuqori darajadagi tillarda yozilgan dasturlar ham bir platformadan ikkinchisiga ko'chirilmaydigan bo'lib, bu albatta katta noqulayliklarni keltirib chiqardi.
Ko'rinib turibdiki, aynan turli xil tizimlarda multitreading spetsifikatsiyalari va tatbiq etilishidagi farqlar tufayli professor Bjarne Stroustrup shu qadar ommalashib ketgan C ++ tilida va shu bilan birga uning asosiy kutubxonalarida multitreadingni kiritmagan. C ++ dasturchilari tizimga qo'ng'iroqlar va muayyan operatsion tizimlar kutubxonalari darajasida multithreading-dan foydalanishni davom ettirishga majbur bo'ldilar.
Foydalanuvchi oqimlari va yadro oqimi
Ko’poqimlilik modeli. OTda multithreading dasturini amalga oshirish, boshqa ko'plab funksiyalar singari, bir nechta abstraktsiya darajalariga ega. Ularning eng yuqorisi - foydalanuvchi darajasidir. Foydalanuvchi va uning dasturlari nuqtai nazaridan, oqimlarni boshqarish foydalanuvchi oqimlari kutubxonasi orqali amalga oshiriladi. Foydalanuvchi darajasidagi oqimlarning bir nechta modellari mavjud, ular orasida quyidagilarni keltirish mumkin:
· POSIX Pthreads – POSIX standartiga moslashgan oqimlar va POSIX -ilovalaridan qo’llaniladi;
· Mac C-threads – MacOS tizimlaridagi foydalanuvchi oqimi;
· Solaris threads – Solaris OTdagi foydalanuvchi oqimi.
Foydalanuvchi oqimlarini tasvirlaydigan quyi darajadagi oqimlar yadro oqimlari (kernel threads) deyiladi. Bu oqimlar qo’llab-quvvatlanadi va operatsion tizim yadrosi darajasida ishlatiladi. Foydalanuvchi oqimlariga yondashuvlar bilan bir qatorda, tizim oqimlari arxitekturasi va amalga oshirilishiga yondoshuvlar turli operatsion tizimlardagi foydalanuvchi oqimlari tasvirlanishi turlicha bo’ladi. Masalan, yadroning o’ziga xos xususiyatlariga ega bo’lgan xususiy modelli quyidagi OT lar mavjud:
· Windows 95/98/NT/2000/XP/2003/2008/7;
· Solaris;
· Tru64 UNIX;
· BeOS;
· Linux.
Ko’p oqimlilik modelining yadro potokida foydalanuvchi potogining tasvirlanish usullariga qarab turlicha ko’rinishlari mavjud. Nazariy jihatdan quyidagi ko’poqimlilik modellari (amaliyotda tatbiq etilgan) mavjud:
- Ko’pga/bir modeli (many-to-one) – yaxlit yadro potogida bir nechta foydalanuvchi oqimlarining tasviri. Ko’psonli tizimli oqimlarni qo’llamaydigan operatsion tizimlarda ishlatiladi (masalan, xotirani tejash maqsadida). Bu model sxemasi 6-rasmda keltirilgan.
6-rasm. “Ko’p/bitta” ko’p oqimlilik modeli sxemasi.
- birga/bir modeli (one-to-one) – har bir foydalanuvchi oqimini ma'lum bir yadro oqimiga bir-qiymatli tasvirlanishi. Bu modelni ishlatadigan OTlarga misollar - Windows 95/98/NT/2000/XP/2003/2008/7; OS/2. Bu model sxemasi 7-rasmda tasvirlangan.
7-rasm. Ko’poqimlilikning “birga/bir” modeli sxemasi.
- ko’pga/ko’p modeli (many-to-many) – bir nechta foydalanuvchi oqimlarini bir nechta tizim oqimlariga solishtirishga imkon beradigan model. Ushbu model operatsion tizimga juda ko'p miqdordagi tizim oqimlarini yaratishga imkon beradi. Shunga o'xshash modeldan foydalanadigan OT ga misol sifatida – Solaris OT olish mumkin, shuningdek, ThreadFiber paketi bilan Windows NT / 2000 / XP / 2003 / 2008 / 7 tizimlarni olish mumkin. Bu model sxemasi 8-rasmda keltirilgan.
8-rasm. Ko’poqimlilikning “ko’pga/ko’p” modeli sxemasi.
Do'stlaringiz bilan baham: |