Oqim oqim; ingliz tilidan


Download 36.31 Kb.
bet2/10
Sana05.01.2022
Hajmi36.31 Kb.
#221575
1   2   3   4   5   6   7   8   9   10

Jarayonlardan farq 


Amaliy dasturlar an'anaviy ko'p vazifali operatsion tizim jarayonlaridan quyidagicha farq qiladi :

  • jarayonlar umuman mustaqil bo'lib, ijro etish jarayonlari qurilish bloklari sifatida mavjud

  • jarayonlar sezilarli darajada ko'proq davlat ma'lumotlarini olib boradi, shu bilan birga jarayon davomida bir nechta bajarilish holatlari davlat ma'lumotlarini, shuningdek xotira va boshqa hisoblash manbalarini baham ko'radi.

  • jarayonlar alohida manzil bo'shliqlariga ega, bajarilish satrlari esa manzil maydonini baham ko'radi

  • jarayonlar faqat jarayonlar o'rtasidagi tizim tomonidan ta'minlangan aloqa mexanizmlari orqali o'zaro ta'sir qiladi

  • xuddi shu jarayonda ijro etish satrlari orasidagi kontekstni almashtirish odatda jarayonlar o'rtasidagi kontekstni almashtirishdan tezroq.

Windows NT va OS / 2 kabi tizimlarda "arzon" oqimlar va "qimmat" jarayonlar borligi aytiladi. Boshqa operatsion tizimlarda oqimlar va jarayonlar orasidagi farq unchalik katta emas, faqat assotsiativ tarjima buferidan foydalanishni o'z ichiga oladigan manzil maydonini almashtirishning qo'shimcha xarajatlari bundan mustasno .

Ko'p ishlov berish

Multithreading, keng dasturlash va kodni ijro etish modeli sifatida, bir nechta mavzularni bitta jarayonda bajarishga imkon beradi. Ushbu ijro etilish yo'nalishlari jarayonning resurslarini baham ko'radi, ammo ular mustaqil ravishda ishlashi mumkin. Ko'p qirrali dasturlash modeli ishlab chiquvchilarga parallel bajarish uchun qulay abstraktsiyani taqdim etadi. U qachon qo'llaniladi Ammo, texnologiya, ehtimol, eng qiziqarli dasturi yagona , uning beradi jarayonidaparallel bajarilishini bir kuni juda işlemcili tizimi.

Ko'p tarmoqli dasturning bu afzalligi uni bir nechta protsessorga ega kompyuter tizimlarida , bir nechta yadroli protsessorda yoki mashinalar klasterida tezroq ishlashiga imkon beradi - chunki dastur oqimlari tabiiy ravishda o'zlarini jarayonlarning chinakam parallel bajarilishini ta'minlaydi. Bunday holda, dasturchi poyga sharoitlari va boshqa intuitiv bo'lmagan xatti-harakatlardan qochish uchun juda ehtiyot bo'lishi kerak . Ma'lumotlarni to'g'ri manoqimulyatsiya qilish uchun ma'lumotlarni to'g'ri tartibda qayta ishlash uchun ijro etish jarayonlari tez-tez uchrashish protsedurasidan o'tishi kerak. Oqimlarga mutekslar ham kerak bo'lishi mumkin(ko'pincha semaforalar yordamida amalga oshiriladi ) o'zgarish paytida bir vaqtning o'zida umumiy ma'lumotlarning o'zgarishi yoki o'qilishini oldini olish uchun. Bunday ibtidoiy beparvo foydalanish olib kelishi mumkin qulflashga .

Hatto unoqimrotsessorli tizimlar uchun ham qo'llaniladigan multithreading-ning yana bir usuli - bu dasturning kiritilgan ma'lumotlarga javob berish qobiliyatidir. Bir qatorli dasturlarda, agar asosiy mavzu uzoq davom etadigan vazifa bilan bloklangan bo'lsa, butun dasturni muzlatib qo'yish mumkin. Bunday vaqtni talab qiladigan vazifalarni asosiy ish zarrachasiga parallel ravishda ishlaydigan ishchi iga o'tkazib, dasturlar fonda ishlayotganda foydalanuvchi ma'lumotlariga javob berishni davom ettirishga imkon beradi. Boshqa tomondan, aksariyat hollarda multithreading dastur sezgirligini saqlab qolishning yagona usuli emas. Xuddi shu narsaga asinxron I / U yoki UNIX signallari orqali erishish mumkin . [bitta]

Operatsion tizimlar larni quyidagi ikki usuldan biri bilan bajarilishini rejalashtiradi:


  1. Ko'p sonli ishlov berishning ustuvor yo'nalishi odatda yaxshiroq yondashuv deb hisoblanadi, chunki bu operatsion tizimga kontekstni almashtirish qachon sodir bo'lishini aniqlashga imkon beradi. Preitektiv multithreading etishmovchiligi shundaki, tizim kontekstni almashtirishni noto'g'ri vaqtda amalga oshirishi mumkin, bu kooperativ multithreading yordamida oldini olish mumkin bo'lgan inversiyani va boshqa salbiy ta'sirlarni keltirib chiqaradi.

  2. Ko'p tarmoqli kooperatsiya oqimlarning o'ziga tayanadi va oqimlar uzilish nuqtalarida bo'lsa, nazoratdan voz kechadi. Amalga oshiriladigan resurs mavjud bo'lguncha kutib tursa, bu muammolarni keltirib chiqarishi mumkin.

1990-yillarning oxiriga qadar ish stoli protsessorlari ko'p ishlov berishni qo'llab-quvvatlamaydilar, chunki oqimlar o'rtasida o'tish to'liq jarayon kontekstiga nisbatan sekinroq edi . U ichiga Protsessorlar yuqori bo'lishi, real vaqt xulq talablariga , ehtimol bag'ishlangan ajratish orqali oqimlar orasidagi o'tish vaqti kamaytirish multithreading qo'llab-quvvatlash mumkin Ro'yxatdan o'tish fayllarumumiy ro'yxatga olish faylini saqlash / tiklash o'rniga har bir ijro etish uchun. 1990-yillarning oxirida Hyper-Threading deb nomlangan bir vaqtning o'zida bir nechta multithread deb nomlanuvchi bir nechta oqimlardan ko'rsatmalarni bir vaqtning o'zida bajarish g'oyasi Intel Pentium 4 protsessori bilan ish stoli kompyuterlarga etib keldi . Keyin u Intel Core va Core 2 arxitekturasi protsessorlaridan chiqarib tashlandi , ammo keyinchalik Core i7 arxitekturasida tiklandi .

Ko'p ishlov berishni tanqid qiluvchilarning ta'kidlashicha, oqimdan foydalanishning ko'payishi jiddiy kamchiliklarga ega:

Ijro etilishlari ketma-ket hisoblashdan kichik bir qadam bo'lib tuyulsa-da, aslida ular juda katta sakrashni anglatadi. Ular ketma-ket hisoblashning eng muhim va jozibali xususiyatlaridan voz kechishadi: tushunarlilik, bashorat qilish va determinizm. Hisoblash modeli sifatida ijro etilish oqimlari ajablanarli darajada deterministik emas va bu noaniqlikni kamaytirish dasturchining ishiga aylanadi. [2]


Download 36.31 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9   10




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