• > fanidan MUSTAQIL ISHI Qabul qildi: M.Djalilov Topshirdi: S.Rahmonov
  • O’zbekiston respublikasi axborot texnologiyalari va




    Download 103.52 Kb.
    Sana12.11.2023
    Hajmi103.52 Kb.
    #97587
    Bog'liq
    kompyuter tash
    Egri chiziqli harakatda tezlanish, Bazarov Zafar, Ekologiya yakuniy test 2022.docx1kurslarga saparova, Rahmonov S, 2 dedline, G\'ulomova Dilnoza matematika va informatika o\'qitish metodikasi, OYBEK.ona tili

    O’ZBEKISTON RESPUBLIKASI AXBOROT TEXNOLOGIYALARI VA
    KOMMUNIKATSIYALARINI RIVOJLANTIRISH VAZIRLIGI

    MUHAMMAD AL-XORAZMIY NOMIDAGI


    TOSHKEKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI FARG’ONA FILIALI

    KOMPYUTER INJINIRING FAKULTETI


    KOMPYUTER ,,INJINIRING YO’NALISHI’’
    716-21 GURUH TALABASI
    Rahmonov Solijon

    <> fanidan
    MUSTAQIL ISHI

    Qabul qildi: M.Djalilov
    Topshirdi: S.Rahmonov

    Farg’ona 2023
    Dasturiy qism unumdorligi muammolari (Software Performance Issues)
    Reja;
    Kirish
    1 Ko'p protsessorli apparat bilan bog'liq muammolar
    2 Bir nechta protsessorlar
    3 Kesh kogerentligi
    Xulosa
    Foydalanilgan adabiyotlar

    Kirish
    Yaxshi ishlash uchun operatsion tizimni loyihalash umumiy xotira uchun asosan qiyinroq bir protsessorga qaraganda ko'p protsessor. Ko'p protsessorlar har xil masalalar to'plamini ko'rib chiqishni talab qiladi. Misol uchun, keshning mustahkamligi uchun qo'shimcha xarajatlar ma'lumotlarni joylashtirishga ehtiyotkorlik bilan e'tibor berishni talab qiladi kesh o'tkazib yuborish sonini kamaytirish. Xuddi shunday, katta tizimlarda xotiraning tizim bo'ylab taqsimlanishi shuningdek, ma'lumotlarni joylashtirishga e'tibor berishni talab qiladi, ammo bu safar xotiraga kirish joyini yaxshilash uchun. Muomala Ushbu muammolar ma'lumotlarni tekislash, to'ldirish, qayta guruhlash, replikatsiya va kabi optimallashtirishni o'z ichiga olishi mumkin. migratsiya yoki hatto muqobil ma'lumotlar tuzilmalaridan foydalanish. Afsuski, hozirgi kompilyator texnologiyasi bunday emas operatsion tizimlarga xos bo'lgan kodda ushbu optimallashtirishlarning ko'pini amalga oshirishga qodir. Demak, tizimlar dasturchi ko'p protsessorlarning nozik tomonlarini bilishi va ular uchun kodni aniq optimallashtirishi kerak. tizimlari. Ushbu maqola birinchi navbatda umumiy xotira ko'p protsessorli uskuna tizimning ishlashiga qanday ta'sir qilishini ko'rib chiqadi dasturiy ta'minot va undan so'ng samaradorlikni oshirish uchun operatsion tizim ma'lumotlarini tashkil qilish tamoyillari to'plamini taqdim etadi ushbu tizimlarda. Printsiplar o'zimizning rivojlanayotgan tajribamiz sintezidan olingan (va ishlashni sozlash) ikkita parallel operatsion tizim va boshqa operatsion tizim tomonidan bildirilgan tajribalar ishlab chiquvchilar. Printsiplar nafaqat mavjud multiprotsessorni moslashtirish va ishlashini sozlash uchun foydalidir operatsion tizimlar, lekin tizimni noldan loyihalashda ham foydalidir. Ikkinchi holda, ular yangi va samarali tizim tuzilishiga olib keladi. Misol sifatida biz ulardan foydalanishni ko'rsatamiz Bizda mavjud bo'lgan (to'liq va ishlaydigan) ob'ektga yo'naltirilgan operatsion tizimning tanlangan komponentlari bo'yicha printsiplar amalga oshirib kelmoqda.


    Ko'p protsessorli apparat bilan bog'liq muammolar
    Ushbu bo'limda biz umumiy xotirali ko'p protsessorli uskunaning tizim dasturiy ta'minotiga qanday ta'sir qilishini tasvirlaymiz. Xususan, biz (i) bir nechta protsessorlardan kelib chiqadigan haqiqiy parallelizmning, (ii) keshning ta'sirini ko'rib chiqamiz muvofiqlik va uning protokollari va (iii) umumiy xotira multiprotsessorlarining yuqori kesh-o'tkazib yuborish kechikishi. Ushbu tahlil uchun biz foydalanadigan kichik va katta o'lchamli multiprotsessorlarning xususiyatlari tavsiflangan

    1-rasm: Bu rasmda ko'rib chiqilayotgan multiprotsessorlarning ikkita asosiy sinfi tasvirlangan. Chapdagi rasm ko'rsatilgan kichik o'lchamli avtobusga asoslangan multiprotsessor, odatda hajmi 4-16 protsessordan iborat. Rasmdagi rasm o'ngda odatda oz sonli tugunlardan qurilgan keng ko'lamli tizimning umumiy arxitekturasini ko'rsatadi protsessorlar, xotira va disklar va ba'zi bir kengaytiriladigan o'zaro bog'liqlik (bu erda bulut bilan ifodalangan) orqali ulanadi. to'r, daraxt, torus va boshqalar bo'lishi mumkin. Ikkala turdagi tizimlar uchun ham umumiy bo'lgan muhim xususiyatlar bekor qilishga asoslangan kogerentlik sxemasidan (kamroq tarqalgan yangilanishga asoslangan sxemadan ko'ra) va kesh ichidagi sinxronizatsiya primitivlaridan foydalanishdir. (tarmoq yoki xotiraga asoslangan primitivlar o'rniga).



    Bo'limda keltirilgan materiallarning aksariyati o'quv xarakteriga ega bo'lganligi sababli, yaxshi ma'lumotga ega o'quvchi kerak uni tezda skanerdan o'tkazing.
    Bir nechta protsessorlar
    Umumiy xotirali multiprotsessorlar (SMMP) va uniprotsessorlar o'rtasidagi eng aniq farq shundaki protsessorlar soni. Garchi bir protsessorli tizim dasturiy ta'minoti allaqachon parallellik muammolari bilan shug'ullanishi mumkin bo'lsa-da, ko'p protsessorlarda haqiqiy parallellik ikkala to'g'rilikka ta'sir qilishi mumkin bo'lgan qo'shimcha asoratlarni keltirib chiqaradi va bir protsessorli sinxronizatsiya strategiyalarining ishlashi. Ko'pincha bir protsessorda sinxronlash uchun qo'llaniladigan strategiyalar, masalan, uzilishlarni o'chirish. yadro [26] yoki server ipining [15] ustun emasligiga tayanib, to'g'ridan-to'g'ri qo'llanilmaydi. ko'p protsessorlar. Garchi ular yadroda faqat bitta protsessor bo'lishiga ruxsat berish orqali ishlashi mumkin bir vaqtning o'zida (yoki bitta jarayon bir vaqtning o'zida serverda bajarilishi kerak), bu barcha so'rovlarni ketma-ketlashtiradi va emas ishlash sabablari bo'yicha qabul qilinadi. Masalan, gcc o'z vaqtining 20 foizdan ortig'ini yadroda o'tkazadi Ultrix [8] ostida, agar barcha yadro so'rovlari bo'lsa, ko'p protsessorning foydali hajmini 5 ta protsessorgacha cheklaydi. seriallashtirildi. Natijada, umuman olganda, to'liq imtiyozli (va to'liq parallellashtirilgan) tizim dasturiy ta'minoti bazasi talab qilinadi [9, 29].
    Nozik taneli qulflar odatda yuqori darajadagi moslashuv va yaxshilangan ishlashga erishish uchun kerak; ammo, qulflarning nozikligi qanchalik nozik bo'lsa, sotib olinishi kerak bo'lgan qulflar soni shunchalik ko'p bo'ladi. operatsiyani yakunlash, natijada qulflar uchun tortishuv bo'lmasa ham yuqori xarajatlarga olib keladi. Uchun Misol uchun, oldingi tizimda biz to'liq bahslashmagan holatda qulflash yukini hisobga olganligini aniqladik sahifa xatosi bilan ishlash vaqtining 25 foizini tashkil qiladi [32]. Shuning uchun ehtiyotkorlik bilan muvozanat kerak nozik taneli qulflar orqali yuqori parallellikka intilish, pastroq ustki yukni olish istagiga qarshi qo'pol taneli qulflar.
    Bundan tashqari, multiprotsessorda blokirovkalarni amalga oshirishda e'tiborga olish kerak bo'lgan murakkab kelishuvlar mavjud. Tanlov yagona protsessorlar uchun oddiy bo'lsa-da, bu erda yagona oqilona variant oddiy blokirovkadir qulflash, ko'p protsessorli blokirovkalash kontekst-kalit yuki, behuda spin-sikllar, avtobus kabi muammolarni hisobga olishi kerak. va qulf ushlagichlar va spinnerlar uchun aylanish, adolat va imtiyoz effektlari tufayli tarmoq tortishuvi. Yaxshiyamki, bu soha yaxshi o'rganilgan [2, 3, 5, 13, 18, 32] va ko'p hollarda spin-bloklangan qulflar. yigiruv fazasi uchun eksponentsial orqaga chekinish bilan yuqori samarali ekanligi isbotlangan [13].1
    Kesh kogerentligi
    Umumiy xotira multiprotsessoridagi dasturiy ta'minot nafaqat sovuqlik, ziddiyat va sig'im keshini o'tkazib yuborishdan aziyat chekadi (bir protsessorda bo'lgani kabi), shuningdek, muvofiqlik o'tkazib yuborilganidan. Muvofiqlikni o'tkazib yuborish o'qish/yozishni almashish natijasida yuzaga keladi va kesh-kogerentlik protokoli,2 va ko'pincha kesh o'tkazib yuborishning asosiy manbai hisoblanadi. Masalan, a
    IRIX-ni 4 protsessorli tizimda o'rganish natijasida Torrellas almashish tufayli o'tkazib yuborilganlar boshqa barcha turlarda ustun ekanligini aniqladi. o'tkazib yuborilgan ma'lumotlar keshini o'tkazib yuborishning 50 foizini tashkil qiladi [30]. sabab o'tkazib yuborilgan qo'shimcha ravishda ma'lumotlarni to'g'ridan-to'g'ri almashish, ikkita protsessor tomonidan bitta kesh satrida joylashgan alohida o'zgaruvchilarga yoziladi. Kesh chizig'ini ikkita protsessor o'rtasida ping-pongga olib keladi. Bu muammo noto'g'ri almashish va sifatida tanilgan kesh o'tkazib yuborish darajasiga sezilarli hissa qo'shishi mumkin. Chapin va boshqalar, IRIX samaradorligini tekshirishda 32 protsessorli eksperimental tizimga o'tkazilganda, eng yomon holatlarning ko'pchiligi sabab bo'lganligini aniqladi. noto'g'ri ulashish orqali [7]. Vaqtni maksimal darajada oshirish orqali uniprotsessorlarda o'tkazib yuborilgan muammolarni hal qilish strategiyalari bo'lsa-da va fazoviy joylashuv va mojarolarni kamaytirish orqali har doim ham oson qo'llanilmasa ham, yaxshi ma'lum ko'p protsessorlarda haqiqiy va noto'g'ri almashishni kamaytirish kam tushuniladi. Yarim avtomatik usullar tuzilmani to'ldirish va ma'lumotlarni qayta guruhlash kabi noto'g'ri almashishni kamaytirish uchun biroz samarali ekanligi isbotlangan, lekin faqat parallel ilmiy ilovalar uchun [16, 31].
    Sinxronizatsiya o'zgaruvchilari ta'siri kesh ishlashiga katta ta'sir ko'rsatishi mumkin, chunki ular mumkin o'qish/yozishning yuqori darajasiga ega va ko'pincha katta miqdordagi yolg'on almashishni keltirib chiqaradi. Masalan,
    Rozenblum 8 protsessorli tizimni o'rganishda barcha kogerentlik xatolarining 18 foizi sabab bo'lganligini ta'kidladi. yuqori darajada taqsimlangan qulfni o'z ichiga olgan bitta kesh qatorini noto'g'ri taqsimlash orqali [27]. Soxta baham ko'rmasdan ham, kesh o'tkazib yuborishning yuqori narxi blokirovka narxini to'liq keshlangandan ko'ra kattalik tartibida oshirishi mumkin hol.3
    Keshni o'tkazib yuborishning kechikishi
    Almashish tufayli kesh o'tkazib yuborilishining katta chastotasiga qo'shimcha ravishda, SMMP dasturchilari duch kelishadi kesh o'tkazib yuborilgan muammo, sabablaridan qat'i nazar, ko'p protsessorlarda qimmatroq turadi. Kechikishning oshishi Ko'p protsessorlarda kesh o'tkazib yuborilishi bir qator manbalardan kelib chiqadi. Birinchidan, yanada murakkab kontrollerlar va avtobus protokollari bir nechta protsessorlarni va kesh muvofiqligini qo'llab-quvvatlash uchun talab qilinadi, bu esa oshirishi mumkin ikki yoki undan koʻp marta kechikishni oʻtkazib yuborish. Ikkinchidan, xotirada va janjalning ehtimoli o'zaro aloqa tarmog'i (avtobus, to'r yoki boshqa) ko'p protsessorda yuqoriroqdir. Ekstremal misollarni topish mumkin.
    RP3-da Mach-dagi dastlabki ishda, xotira ixtilofi tufayli tizimni yuklash uchun 2,5 soat vaqt ketdi [6], va Solaris-ni Cray SuperServer-ga o'tkazish ishida, bu erda bo'sh turgan jarayondagi xatolar bo'sh vaqtni sekinlashtirdi. protsessorlar 33 foizga [21]. Uchinchidan, katta tizimlarning katalogga asoslangan muvofiqlik sxemalari tez-tez bo'lishi kerak ma'lumotlarning so'nggi nusxalarini olish yoki kesh-liniyaning bir nechta almashuvchilarini bekor qilish uchun bir nechta xabarlarni yuborish, kechikish va tarmoq yukini yanada oshirish. Ushbu effekt operatsion tizimda aniq tasvirlangan.
    Chapin va boshqalar tomonidan olib borilgan tadqiqot, mahalliy ma'lumotlarni o'tkazib yuborish xarajatlari mahalliy yo'riqnoma keshidan ikki baravar yuqori ekanligini aniqladi bir nechta masofaviy xabarlarni yuborish zarurati tufayli o'tkazib yuborilgan xarajatlar [7].
    Katta tizimlarda xotiraning jismoniy taqsimlanishi ishlashga sezilarli ta'sir ko'rsatadi. Bunday tizimlar odatda NUMA tizimlari yoki yagona bo'lmagan xotiraga kirish vaqti tizimlari deb ataladi, chunki xotiraga kirish vaqti protsessor va xotira moduli orasidagi masofaga qarab o'zgaradi.
    Bu tizimlarda vaqtinchalik va fazoviy joylashuvdan tashqari jismoniy joylashuv ham muhim rol o‘ynaydi. Misolni Unrau va boshqalarning ishida ko'rish mumkin, bu erda ma'lumotlarda jismoniy joylashuv yo'qligi sababli. foydalanilgan tuzilmalar, tizim miqyosi oshirilganda sahifa xatosining bahosi 25 foizga oshdi. 1 dan 16 tagacha protsessorlar [33].
    Keshni o'tkazib yuborishning yuqori narxi natijasida bloklanmaslikni qo'llab-quvvatlash uchun yangi tizimlar ishlab chiqilmoqda yuklash va saqlash kechikishlarini yashirish uchun keshlar va yozish buferlari. Ushbu tizimlarning ko'pchiligi yuklarni va do'konlar oldingi yuklar va do'konlar hali ham ajoyib bo'lganda davom etishi kerak. Buning natijasida tizim paydo bo'ladi yuklash va saqlash tartibi har bir protsessor uchun bir xil ko'rinmasligi mumkin; bu tizimlar ba'zan havola qilinadi zaif izchil bo'lishi uchun [12].
    Kuchsiz izchil tizimlarning ma'nosi shundan iboratki, muntazam xotiraga kirish uchun foydalanish mumkin emas sinxronizatsiya maqsadlari, chunki xotiraga kirish tartibsiz ko'rinishi mumkin. Misol uchun, agar bitta protsessor to'ldirilsa bufer va uni to'ldirilganligini belgilaydi, boshqa protsessorlar buferni avval to'ldirilganligini, keyin esa aslida ko'rishlari mumkin ma'lumotlar bilan to'ldirilgan. Bu ba'zi protsessorlar belgilangan buferni ko'rganda eskirgan ma'lumotlarga kirishiga olib kelishi mumkin to'ldirilgan. Bunday xatti-harakatlar natijasida dasturiy ta'minot odatda oddiy bayroqlardan to'liq foydalanishga o'tishi kerak qulflash, sezilarli darajada qimmatroq maxsus xotira sinxronlash ko'rsatmalari bilan. Bu farq
    PowerPC-da AIX-da qulflash/qulfni ochish juftligi narxi bilan tasvirlangan, bu esa undan 100 baravar qimmatroq. keshlangan do'kon [29].5 Yuqori kesh-o'tkazib yuborilgan kechikishning yana bir natijasi - 128 yoki hatto kattaroq kesh qatorlariga o'tish. Uzunligi 256 bayt. Ushbu katta kesh chiziqlari tarmoqli kengligini almashtirishga urinishdir (bu nisbatan oson tizimga loyihalash) kechikish uchun (buni loyihalash ancha qiyin). Afsuski, katta kesh liniyalari noto'g'ri almashishning kuchayishi tufayli SMMPlarda ishlashni yomonlashtirishga moyildir. Yuqorida keltirilgan misol Soxta taqsimlangan kesh liniyasi barcha muvofiqlik o'tkazib yuborilganlarning 18 foiziga qisman sabab bo'lgan. Uskunada 128 bayt kesh satrlari borligi, bu esa kritik blokirovkaning tasodifiy ravishda boshqa 22 tasi bilan bo'lishishiga olib keldi. joylashtirilgan o'zgaruvchilar [27].
    Ko'p protsessorda xotiraga kirish vaqtlari arxitektura va sabablarga ko'ra bir necha kattalik tartiblarini o'z ichiga oladi tortishuv effektlari (1-jadvalga qarang). Ushbu ta'sirlarni yumshatish uchun tizim dasturiy ta'minotini kamaytirish uchun tuzilgan bo'lishi kerak kesh o'tkazib yuboradi va jismoniy joylashuvni oshiradi. Keyingi bo'limda biz tuzilish texnikasi to'plamini taqdim etamiz va ular qo'llanilishi kerak bo'lgan holatlar.

    1-jadval: Odatda keng miqyosli umumiy xotirali multiprotsessorda kirishning har xil turlari uchun kechikishlar protsessor davrlari

    Dizayn tamoyillari


    Oldingi bo'limda tasvirlangan muammolar ko'p protsessorning ishlashiga aniq ta'sir qiladi tizim dasturiy ta'minoti. Yaxshi ishlashga erishish uchun tizim dasturiy ta'minotini qabul qilish uchun mo'ljallangan bo'lishi kerak apparat xususiyatlarini hisobga olgan holda. Ular bilan kurashish uchun sehrli yechim yo'q; dizayn har bir tizim ma'lumotlar strukturasi kutilayotgan kirish shaklini, almashish darajasini va hisobga olishi kerak sinxronizatsiya talablari. Shunga qaramay, biz bir qator printsiplar va dizayn strategiyalarini topdik qayta-qayta foydali bo'lgan. Bularga biz va boshqalar tomonidan ilgari taklif qilingan tamoyillar kiradi [7, 32, 33, 35], tizim dasturiy ta'minotining o'ziga xos ehtiyojlarini qondirish uchun ilgari taklif qilingan tamoyillarni takomillashtirish [14] va a yangi tamoyillar soni.
    Keshlar uchun ma'lumotlarni tuzish
    Tez-tez foydalaniladigan ma'lumotlar baham ko'rilganda, ma'lumotlarning apparatga qanday moslashtirilganligini hisobga olish muhimdir kesh satrlari va apparat ma'lumotlarning keshlangan nusxalarini qanday qilib izchil saqlaydi. Strukturalash tamoyillari keshlar uchun ma'lumotlar quyidagilarni o'z ichiga oladi:
    S1: Ko'pincha o'qiladigan ma'lumotlarni tez-tez o'zgartiriladigan ma'lumotlardan ajrating. Ko'pincha o'qiladigan ma'lumotlar ichida bo'lmasligi kerak noto'g'ri almashishni oldini olish uchun tez-tez o'zgartirilgan ma'lumotlar bilan bir xil kesh qatori. Segregatsiya ko'pincha bo'lishi mumkin ma'lumotlarni to'g'ri to'ldirish, tekislash yoki qayta guruhlash orqali erishiladi. Tuzilishi bo'lgan bog'langan ro'yxatni ko'rib chiqing statik, lekin uning elementlari tez-tez o'zgartiriladi. Elementlarning o'zgarishiga yo'l qo'ymaslik uchun roʻyxat oʻtishlari ishlashiga taʼsir qilishi uchun qidiruv kalitlari va havola koʻrsatgichlari bir-biridan ajratilishi kerak ro'yxat elementlarining boshqa ma'lumotlari.7
    S2: Bir-biridan mustaqil ravishda foydalaniladigan o'qish/yozish ma'lumotlarini ajratish. Ushbu tamoyil yolg'on almashishni oldini oladi Bir nechta protsessorlar tomonidan mustaqil ravishda foydalaniladigan ma'lumotlarning tugashini ta'minlash orqali o'qish/yozish ma'lumotlarining turli kesh qatorlarida yuqoriga.
    S3: asosan yozish ma'lumotlarini xususiylashtirish. Amaliy bo'lsa, har bir protsessor uchun ma'lumotlarning shaxsiy nusxasini yarating o'zgartirishlar har doim shaxsiy nusxada amalga oshiriladi va global holat birlashtirish orqali aniqlanadi barcha nusxalarning holati. Ushbu tamoyil umumiy holatda, protsessorlar bo'lgani uchun, kogerentlik yukidan qochadi ma'lumotlarning faqat shaxsiy nusxasini yangilash. Misol uchun, ko'pincha ma'lumotnomani saqlash kerak ob'ektga kirish paytida ob'ekt o'chirilmasligini ta'minlash uchun unga hisoblash. Bunday havola soni bir nechta mos yozuvlar soniga bo'linishi mumkin, ularning har biri boshqa protsessor tomonidan yangilanadi va, S2-ni qo'llash, alohida kesh qatorlariga majbur.
    S4: Iloji bo'lsa, har bir protsessor ma'lumotlaridan qat'iy foydalaning. Agar ma'lumotlarga asosan bitta protsessor orqali kirish mumkin bo'lsa, u ko'pincha faqat shu protsessorga kirishni cheklash yaxshi fikr bo'lib, boshqa protsessorlarni ortiqcha to'lashga majbur qiladi protsessorlararo aloqa narxi, ularning kamdan-kam kirishlari. Keshlash afzalliklaridan tashqari (S3da bo'lgani kabi), har bir protsessorli tuzilmalar sinxronlashtirish uchun bir protsessorli echimlardan foydalanishga imkon beradi. ma'lumotlarga kirish. Misol uchun, past darajadagi tuzilmalar uchun uzilishlarni o'chirishni ta'minlash uchun etarli atomga kirish. Shu bilan bir qatorda, ma'lumotlarga faqat bitta protsessor tomonidan kirish mumkinligi sababli, dasturiy ta'minot ishonishi mumkin Sinxronizatsiya uchun yozishni tartibga solish bo'yicha, zaif izchillikda boshqacha qilib bo'lmaydi ko'p protsessorlar (2.3-bo'limga qarang).
    Ma'lumotlarni bloklash
    Zamonaviy protsessorlarda qulfni olish qulf o'zgaruvchisini o'z ichiga olgan kesh chizig'ini o'zgartirishni o'z ichiga oladi.
    Shunday qilib, keshning yaxshi ishlashi uchun ma'lumotlarni tuzishda, qulfga qanday kirishni hisobga olish muhimdir. bloklangan ma'lumotlarga kirishlar bilan o'zaro aloqada bo'lish.
    L1: Ko'pincha o'qiladigan ma'lumotlar uchun protsessor uchun o'quvchi/yozuvchi bloklardan foydalaning. Ko'pincha o'qiladigan ma'lumotlar uchun qulf bo'lishi kerak har bir protsessor uchun alohida blokirovka yordamida amalga oshiriladi. O'qish qulfini olish uchun faqat protsessor kerak bo'ladi o'z qulfiga ega bo'ladi, yozish qulfini olish uchun esa barcha qulflarni olish kerak. Ushbu strategiya imkon beradi protsessor o'qish blokirovkasini olish va umumiy ma'lumotlarga hech qanday muvofiqliksiz kirish uchun o'qishga kirish holati. (Ushbu printsipni S3 printsipining alohida holati sifatida ko'rish mumkin.)
    L2: Ma'lumotlar tez-tez o'zgartirilsa, ular bilan bog'liq ma'lumotlardan bahsli qulflarni ajratib oling. Agar mavjud bo'lsa bir vaqtning o'zida ma'lumotlarni o'zgartirishga harakat qiladigan bir nechta jarayonlarning yuqori ehtimoli, keyin bu muhim qulfga kirishga urinayotgan protsessorlar xalaqit bermasligi uchun ma'lumotlardan qulfni ajratish qulfni olgan protsessor bilan.8
    L3: Agar ma'lumotlar tez-tez o'zgartirilsa, da'vosiz qulflarni ularning ma'lumotlari bilan birlashtiring. Qulf keltirilsa qulflash uchun keshga, u bilan bog'liq bo'lgan ba'zi ma'lumotlar u bilan birga keltiriladi va shuning uchun keyingi kesh o'tkazib yuborishlari oldini oladi.
    Ma'lumotlarga kirishni lokalizatsiya qilish
    Katta o'lchamli tizimlar uchun tizim dasturchisi kamaytirish uchun jismoniy joylashuv bilan shug'ullanishi kerak kesh o'tkazib yuborilgan kechikish, tarmoq trafigini kamaytirish va turli yuklarni muvozanatlash uchun tizimdagi xotira modullari. Jismoniy joylashuv operatsion tizimlar uchun ayniqsa muhim bo'lishi mumkin ular odatda yomon kesh urish tezligini namoyish etadi [8].
    D1: Ko'pincha o'qiladigan ma'lumotlarni takrorlash. Ko'pincha o'qiladigan ma'lumotlar bir nechta xotira modullariga ko'paytirilishi kerak protsessorlarning so'rovlarini yaqin atrofdagi nusxalar ko'rib chiqishi mumkin. Odatda, replikatsiya sodir bo'lishi kerak ma'lumotlarni takrorlash uchun qo'shimcha xarajatlar faqat kerak bo'lganda amalga oshirilishini talab qiling.
    D2: O'qish/yozish ma'lumotlarini bo'lish va ko'chirish. Ma'lumotlar tegishli tarkibiy qismlarga bo'linishi kerak komponentlarni turli xil xotira modullarida saqlashga imkon beruvchi ma'lumotlarga qanday kirish mumkinligi.
    Agar bir vaqtning o'zida birinchi navbatda bitta protsessor tomonidan foydalanilsa, har bir komponent foydalanish paytida ko'chirilishi kerak. Shu bilan bir qatorda, agar ma'lumotlarga bo'lgan so'rovlarning aksariyati ma'lum bir mijozdan bo'lsa, u holda ma'lumotlar bo'lishi kerak o'sha mijoz bilan migratsiya qildi.
    D3: asosan yozish ma'lumotlarini xususiylashtirish. S3 printsipida tavsiflanganidek, asosan yozish ma'lumotlarini xususiylashtirishdan foydalanish mumkin nafaqat kogerentlik yukidan qochish, balki xotirani lokalizatsiya qilish uchun tizim bo'ylab ma'lumotlarni tarqatish kirishlar.
    Quyidagi printsiplar mahalliy ma'lumotlarni tuzish uchun qat'iy bo'lmasa-da, biz ularni teng darajada topdik operatsion tizim ma'lumotlarini samarali mahalliylashtirishga erishishda muhim ahamiyatga ega.
    D4: Aniq global ma'lumotlardan ko'ra taxminan mahalliy ma'lumotlardan foydalaning. Muayyan operatsion tizim uchun siyosatlarni qo'llash orqali ishlash evaziga ma'lum darajada aniqlikdan voz kechish mumkin aniq global ma'lumotdan ko'ra oqilona qarorlar qabul qilish uchun mahalliy taxminiy ma'lumotlar. Uchun
    Masalan, har bir protsessor uchun navbatga ega bo'lish butun dunyo bo'ylab qisqa muddatli adolatni pasaytiradi, lekin xarajatlarni kamaytiradi. jarayonni ishga tushirish rejalashtirilganda dispetcherga.
    D5: Global holat o'zgarishlari uchun to'siqlarga asoslangan sinxronizatsiyadan saqlaning. Ma'lumotlar takrorlanganda yoki bo'linganda, replikalarga global o'zgartirishlar kiritishda va a aniqlashda sinxronlashtirish kerak bo'lingan ma'lumotlar uchun global izchil qiymat. Bunday holda, tizim to'siqlarga asoslangan sinxronizatsiyadan foydalanishdan qochishi kerak, chunki u boshqa protsessorlarning yetib borishini kutayotganda protsessor davrlarini behuda sarflaydi. to'siqni yo'qotadi va bu to'siqda bajariladigan vazifalarni to'xtatish (va qayta ishga tushirish) uchun katta xarajatlarga olib keladi. protsessorlar [35]. Turli xil muqobil asinxron sxemalar mavjud (masalan, dangasa TLB uchun ishlatilgani kabi) shoot-down [25]), bu, masalan, kamaytirish uchun bir nechta so'rovlarni birlashtirishga imkon beradi protsessorlararo aloqa miqdori.
    S*, L* va D* tamoyillarini qoʻllashda dasturchi shuni bilishi kerakki, ularning haddan tashqari gʻayratli qoʻllanilishi unumdorlikni pasaytirishi mumkin. Masalan, S* tamoyillarining sodda qo'llanilishi tizimning muvofiqlik yukini kamaytirishga olib kelishi mumkin, shuningdek, umumiy sonining oshishiga olib kelishi mumkin ma'lumotlar tuzilmalarining parchalanishi tufayli kesh o'tkazib yuboriladi. Shuning uchun ariza topshirish uchun katta tajriba talab etiladi dizayn tamoyillari muvozanatli tarzda.
    Dizayn tamoyillarini qo'llash
    Dizayn tamoyillari tizim dasturiy ta'minoti dizayniga qanday ta'sir qilishini ko'rsatish uchun biz ning tanlangan qismlarini tasvirlaymiz Tornado [24], NUMAchine [34] keng koʻlamli koʻp protsessor uchun obyektga yoʻnaltirilgan operatsion tizim. Birinchidan, biz dizayn tamoyillarini qo'llashni osonlashtiradigan ob'ektlarning asosiy modelini tasvirlaymiz bizning tizimimiz bo'ylab. Keyin biz ushbu modelni qo'llab-quvvatlash uchun infratuzilmamizning to'rtta komponentini tavsiflaymiz, ularning har biri ichki amalga oshirishda dizayn tamoyillaridan foydalanadi.
    Ob'ektlarning tuzilishi
    Bir protsessorli tizimlarda ob'ektlarni amalga oshirishning an'anaviy yondashuvi ko'p protsessorli tizimlarga yaxshi taalluqli emas. Bir protsessorli ob'ekt odatda maksimallashtirish uchun tashkil etilgan yagona tuzilma sifatida amalga oshiriladi fazoviy va vaqtinchalik joylashuv va, ehtimol, bir vaqtning o'zida kirishni ketma-ketlashtirish uchun bitta qulf bilan himoyalangan. In ko'p protsessor bo'lsa, bunday ob'ekt faol almashish tufayli sezilarli muvofiqlik yukiga duch kelishi mumkin tez-tez o'zgartiriladigan kesh liniyalari va etarli parallellikni taklif qilmasligi mumkin. Bundan tashqari, ob'ekt bo'ladi bitta xotira modulida joylashgan bo'lib, u keng miqyosli tizimda masofaviy protsessorlarni tajribaga olib keladi yuqori kirish kechikishlari.
    Ko'p protsessorning yaxshi ishlashiga erishish usullaridan biri ob'ekt ma'lumotlarini alohida komponentlarga bo'lishdir kesh kogerensiyasini kamaytirish uchun (S*), har bir komponentni mustaqil ravishda blokirovka qilishga ruxsat berish (L1), va har bir komponentni unga kiradigan protsessorlarga yaqin joylashtirishga ruxsat berish (D*). Biroq, bu protsessorga kerak bo'lgan ob'ekt komponentini samarali tarzda topishga imkon beradigan mexanizmni talab qiladi kirish. Ob'ekt bu maqsad uchun qayta yo'naltirish jadvalini taqdim etishi mumkin bo'lsa-da, sodda amalga oshirish markazlashtirilgan jadval orqali barcha kirishlarni talab qiladi va shu bilan ma'lumotlarni tarqatish afzalliklarini cheklaydi ob'ektning. Biz qabul qilgan yondashuv klasterlangan ob'ektlar deb ataladigan ob'ektlarning yangi modeliga asoslanadi asosiy ob'ekt abstraktsiyasini saqlab, ob'ektlarni osongina bo'linish imkonini beradi [24]

    Xulosa
    Biz ko'p protsessorli uskunaning tizim dasturiy ta'minotining ishlashiga ta'sirini tasvirlab berdik ko'p protsessorli tizim dasturiy ta'minotini optimallashtirishda foydali bo'lgan bir qator dizayn tamoyillari va ko'rsatilgan ushbu dizayn tamoyillari haqiqiy dasturiy ta'minotga qanday qo'llanilishi mumkin. Bizning butun e'tiborimiz past darajaga qaratilgan tizim ma'lumotlar tuzilmalarini tashkil qilish bilan bog'liq masalalar. Bunda biz ko'pchilikka murojaat qilmadik boshqa muhim multiprotsessor muammolari. Misol uchun, biz turli xil o'zaro kelishuvlarni muhokama qilmadik sinxronizatsiya algoritmlari yoki kodni joylashuv uchun tizim bo'ylab qanday taqsimlash kerakligi. Ko'p protsessorli operatsion tizim dasturchilari ham rivojlanish kabi yuqori darajadagi muammolarga duch kelishadi keng ko'lamli tizimlarning murakkab resurslarini boshqarish va resurslarga bo'lgan talablarni boshqarish usullari parallel dasturlar. Ushbu yuqori darajadagi muammolarni hal qilish juda muhim bo'lsa-da, foyda faqat to'liq bo'lishi mumkin asosiy operatsion tizim ma'lumotlari to'g'ri tuzilgan bo'lsa amalga oshiriladi. Ta'riflangan ish NUMAchine-ni loyihalash va amalga oshirishni o'z ichiga olgan yirik loyihaning bir qismidir multiprotsessor, Tornado operatsion tizimi va turli xil vositalar, kompilyatorlar va ilovalar. Yuqori uchun dastur darajasida ishlash uchun barcha darajalar yaxshi ishlashi kerak, shu jumladan apparat, operatsion tizim va ilova. Ushbu maqolada biz mavjud bo'lgan ba'zi texnikalarni tasvirlab berdik operatsion tizim darajasida yuqori unumdorlikka erishishda muhim ahamiyatga ega ekanligi aniqlandi.


    Foydalanilgan Adabiyotlar


    [1] S.V. Adve va K. Gharachorloo. Umumiy xotira barqarorligi modellari: o'quv qo'llanma. Texnik hisobot ECE Texnik hisoboti 9512, Rays universiteti, 1995 yil sentyabr. Shuningdek, Digital Western Research sifatida Laboratoriya tadqiqotlari hisoboti 95/7.
    [2] T. Anderson. Umumiy xotirali multiprotsessorlar uchun aylanishni blokirovka qilish alternativalarining ishlashi. IEEE Parallel va taqsimlangan tizimlar bo'yicha operatsiyalar, 1(1):6-16, 1990 yil yanvar.
    [3] David L. Black, Avadis Tevanian Jr., David B. Golub va Maykl V. Young. Qulflash va mos yozuvlar mach yadrosida hisoblash. Proc.da. 1991 ICPP, II jild, dasturiy ta'minot, II-167-II-173-betlar, avgust 1991 yil.
    [4] Bred Kalder, Dirk Grunvald va Ben Zorn. C va C++ o'rtasidagi xatti-harakatlardagi farqlarni aniqlash dasturlar. Dasturlash tillari jurnali, 2(4):313–351, 1994.
    [5] M. Kempbell, R. Xolt va J. Slice. SVR4/MP da granularlikni sozlash mexanizmlarini qulflang. Simpoziumda Taqsimlangan va ko'p protsessorli tizimlar (SEDMS II.) bilan ishlash tajribasi, 221–228-betlar, mart 1991 yil.
    [6] H.H.Y. Chang va B. Rosenburg. Machni RP3 keng ko'lamli umumiy xotiraga ko'chirish tajribasidan foydalaning ko'p protsessor. Kelajakdagi avlod kompyuter tizimlari, 7 (2-3): 259-267, 1992 yil aprel.
    [7] Jon Chapin, Stiven A. Herrod, Mendel Rozenblum va Anoop Gupta. Xotira tizimining ishlashi CC-NUMA multiprotsessorlarida UNIX. 1995 yilgi ACM SIGMETRICS qo'shma majlisida Kompyuter tizimlarini o'lchash va modellashtirish bo'yicha xalqaro konferentsiya, 1995 yil may.
    [8] J. Bredli Chen va Brayan N. Bershad. Operatsion tizim strukturasining xotira tizimiga ta'siri ishlash. Proc.da. 14-ACM SOSP, 120–133-betlar, 1993 yil.

    Download 103.52 Kb.




    Download 103.52 Kb.

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    O’zbekiston respublikasi axborot texnologiyalari va

    Download 103.52 Kb.