Nazolate Savolari:
1. Buyruq darajasida moslik deganda nima tushunasiz?
2. Konveyerli qayta ishlash qanday amalga oshiriladi?
3. Super konveyerni qayta ishlash qanday amalga oshiriladi?
4. Superskalyar hisoblash qanday amalga oshiriladi?
5. Hyper-Threading teхnologiyasi nima maqsadda qullaniladi?
99
16-Ma’ruza. Multi tasking va ko’p oqimli tizimlar VLIW SMT (simultaneous
multithreading)
Reja:
1.
Multi tasking
2.
Ko’p oqimli tizimlar
3.
VLIW SMT
Tayanch iboralar:
Multi tasking, ko’p oqimli tizimlar, VLIW SMT.
Multitasking - bu operatsion tizimning bir vaqtning o'zida bir nechta
dasturlarni ishga tushirish qobiliyati. Ushbu printsipni shaxsiy kompyuterlarda
amalga oshirish operatsion tizim tomonidan bir vaqtning o'zida ishlaydigan
jarayonlarning har biri uchun ajratilgan vaqtni ajratish uchun apparat taymeridan
foydalanishga asoslangan. Agar bu vaqtlar etarlicha qisqa bo'lsa va mashina juda
ko'p dasturlar bilan ortiqcha yuklanmagan bo'lsa, foydalanuvchiga bu dasturlarning
barchasi parallel ravishda bajarilayotgandek tuyuladi.
Multithreading - bu mashina dasturida parallel bajariladigan bo'limlar yoki
protseduralar (iplar) mavjud bo'lgan rejim. Shunday qilib, ko'p ish zarralari
mexanizmi dasturning o'zi bir nechta vazifani bajarishga imkon beradi.
Ko'p vazifani bajarish g'oyasi yangi emas. Multitasking o'nlab, yuzlab
terminallar ulangan asosiy kompyuter kabi yirik ko'p foydalanuvchili
kompyuterlarda amalga oshiriladi. Bunday terminal ekranida o'tirgan har bir
foydalanuvchi butun mashinaga eksklyuziv kirish huquqiga ega degan taassurotga
ega. Bundan tashqari, bunday kompyuterlarning operatsion tizimlari ko'pincha
foydalanuvchilarga vazifalarni fonga qo'yish imkonini beradi, bu erda ular
foydalanuvchi boshqa dastur bilan ishlashi mumkin bo'lgan vaqtda bajariladi.
Shaxsiy kompyuterlar ko'p vazifalarni bajarish uchun apparat ta'minotiga
ega emas edi. Bu to'liq oqlandi. Bir tomondan, arzon narxlardagi haydovchi
soddalashtirilgan apparat echimlariga olib keldi. Boshqa tomondan, foydalanuvchi
allaqachon barcha kompyuter resurslariga ega edi va oddiy foydalanuvchi bir
vaqtning o'zida bir nechta dasturlar bilan ishlashi mumkin emas. Boshqa
100
muammoni hal qilish uchun foydalanuvchi joriy dasturdan chiqib, yangisini
yuklashi mumkin.
Biroq, vaqt o'tishi bilan shaxsiy kompyuterda ishlash oddiygina ko'p
vazifalarni bajarish talabiga aylandi. Misol uchun, 100 sahifali matnni va hatto
nuqta matritsali printerda chop etishingiz kerakligini tasavvur qiling. Bu dars bir
necha soat davom etadi. Va agar bir vaqtning o'zida kompyuter printerga ma'lumot
yuborishdan boshqa hech narsa qila olmasa, unda bu jarayon qanchalik zerikarli
bo'ladi. Ammo yaqinda kurs ishlari, tezislar va boshqa ishlar shunday chop etildi.
Ko'p vazifali apparat prototipi uzilish tizimiga ega bo'lgan protsessorlardan
olinishi mumkin. Umuman olganda, mikroprotsessorning uzilishi - bu boshqaruvni
joriy dasturdan maxsus xizmat protsedurasiga o'tkazishdan iborat bo'lgan maxsus
holatlarga javob. Qayta ishlashni talab qiladigan bunday holatlarga apparat
komponentlaridan (klaviatura, dinamik ravishda yangilangan xotira, video karta,
taymer) muhim tashqi hodisalar to'g'risida signallarning paydo bo'lishi va
dasturning ishlashidagi xatolar yoki qiyinchiliklar haqida ichki mikroprotsessor
birliklaridan xabarlar (masalan, bo'linish) kiradi. nol, xotiraga kirish taqiqlangan).
Ko'pincha uzilishlar tor ma'noda faqat birinchi turdagi so'rovlar sifatida tushuniladi
va ikkinchi turdagi so'rovlar istisnolar deb ataladi.
Uzilishlarni qayta ishlash sxemasi quyidagicha:
-asosiy foydalanuvchi dasturining ishlashi;
- uzilishning yuzaga kelishi;
-ishlayotgan dastur (protsessor registrlari) parametrlarini saqlash;
-uzilishlarni qayta ishlash protsedurasi manziliga o'tish;
-uzilishlarni qayta ishlash protsedurasini bajarish;
- ishlayotgan dastur parametrlarini tiklash;
-Asosiy dasturning keyingi buyrug'ining manziliga o'tish. Yuqori ustuvorlikdagi
uzilishlar, o'z navbatida, joriy uzilishning uzilishini qayta ishlash va h.k.
Uzilishlar ustida ishlashning yana bir yaqqol kamchiligi shundaki, dastur
bo'limlarini o'zgartirish tartibi protsedura va funksiyalardan foydalanishga
o'xshaydi - ya'ni dastur elementlari tartibining aniq sxemasi - uzilishdan faqat
101
dasturga qaytish mumkin edi. bu vaqtda uzilish sodir bo'lgan va buni barcha uzilish
harakatlari tugaguniga qadar qilish mumkin emas.
Ko'p oqimli muhitda dasturlarni bir vaqtning o'zida ishlaydigan iplar deb
ataladigan qismlarga bo'lish mumkin. Dastur nuqtai nazaridan, "oqim" oddiygina
dasturdagi boshqa funktsiyalarni ham chaqira oladigan funksiyadir. Dastur o'zining
an'anaviy C dasturlarida asosiy funksiya bo'lgan asosiy (asosiy) ipdan va Windows
dasturlarida WinMain dan ishlay boshlaydi. Bajarilgandan so'ng, funktsiya
boshlang'ich tirqish funktsiyasi bilan tizim chaqiruvini amalga oshirish orqali qayta
ishlashning yangi oqimlarini yaratishi mumkin. Preemptiv rejimdagi operatsion
tizim jarayonlar bilan bir xil tarzda iplar orasidagi boshqaruvni o'zgartiradi.
Shunday qilib, ko'p ish zarralari - bu ko'p vazifali printsipni dastur doirasida
amalga oshirish.
Ko'p vazifalilik kompyuterning bir vaqtning o'zida bir nechta dasturlar bilan
ishlashini anglatadi. Masalan, siz ekranda bitta ma'lumotlar bazasidagi ma'lumotlar
bilan ishlashingiz va ma'lumotlarni tahlil qilishingiz mumkin, kompyuter esa
boshqa ma'lumotlar bazasidan ma'lumotlarni saralaydi, elektron jadval esa alohida
ish varag'ida hisob-kitoblarni amalga oshiradi. Bu Macintosh yoki DOS topshiriq
almashtirgichida MultiFinder yoki System 7 dan foydalanganda sodir bo'ladigan
"kontekstni almashtirish" yoki "vazifalarni almashtirish" deb ham ataladigan
ilovalarning "bir nechta yuklanishi" dan farq qiladi. Kontekstni almashtirish bir
nechta ilovalarni ochishga imkon beradi, lekin bir vaqtning o'zida faqat bittasi
ishlaydi.
Aslida, hatto haqiqiy ko'p vazifalarni bajarishda ham, istalgan vaqtda faqat
bitta dastur ishlaydi. Ammo kompyuter avtomatik ravishda biridan ikkinchisiga
juda tez o'tganligi sababli, barcha dasturlar bir vaqtning o'zida ishlayotganga
o'xshaydi. (Kontekstni almashtirishda siz tugmani bosish yoki sichqonchani bosish
orqali bir dasturdan boshqasiga qachon o'tishni hal qilasiz.) Har bir alohida dastur
sekinroq ishlaydi, albatta, chunki har bir dastur kompyuter vaqtining faqat bir
qismini oladi va ma'lum vaqtdan beri. dasturdan dasturga o'tish jarayonida
yo'qoladi.
102
Ideal holda, ko'p vazifalarni bajarish qobiliyati kompyuteringizning
operatsion tizimiga o'rnatilgan. DOS-da ko'p vazifali funksiyalar mutlaqo yo'q,
lekin DESQ ko'rinishi va Windows uni qandaydir tarzda ta'minlaydi.
Mac o'zining fonda chop etish xususiyatida kooperativ ko'p vazifalarni
bajarishga imkon beradi, bu siz bir hujjatni boshqasida ishlayotganingizda chop
etish imkonini beradi. "Ko'p vazifa" so'zi ko'pincha defissiz yoziladi; Men o'qishni
osonlashtirish uchun so'zdagi defisni maxsus qo'ydim.
Ko'p ish zarralarining eng ilg'or turi superskalyar protsessorlarga taalluqlidir.
An'anaviy superskalar protsessor har bir protsessor siklida bir ish zarrachasidan bir
nechta ko'rsatmalar chiqaradi, bir vaqtning o'zida ko'p ish zarrachalari (SMT)
bilan, superskalyar protsessor har bir protsessor siklida bir nechta iplardan
ko'rsatmalar berishi mumkin. Har qanday bitta ipning cheklangan miqdordagi
ko'rsatmalar darajasidagi parallelizmga ega ekanligini tan olgan holda, ushbu
turdagi iplar ishlatilmagan vazifa slotlari bilan bog'liq chiqindilarni kamaytirish
uchun bir nechta iplar bo'ylab mavjud parallellikdan foydalanishga harakat qiladi.
SMT dan ip o'tkazishning boshqa turlarini farqlash uchun "o'tkinchi ip"
atamasi bir vaqtning o'zida faqat bitta ipdan ko'rsatmalar berilishi mumkinligini
bildirish uchun ishlatiladi.
Interleaved multithreading uchun muhokama qilingan apparat xarajatlariga
qo'shimcha ravishda, SMT quvur liniyasining har bir bosqichi uchun qo'shimcha
xarajatlarga ega bo'lib, har bir qayta ishlangan ko'rsatmaning ip identifikatorini
kuzatib boradi. Shunga qaramay, keshlar va TLBlar kabi umumiy resurslarning
hajmi qayta ishlanayotgan ko'p sonli faol oqimlarga mos kelishi kerak.
Agar ko'p protsessorli tizimlar bir yoki bir nechta yadrolarda bir nechta to'liq
protsessorlarni o'z ichiga olgan bo'lsa, ko'p ish zarralari ip darajasidagi parallelizm
hamda ko'rsatmalar darajasidagi parallelizmdan foydalanish orqali bitta yadrodan
foydalanishni oshirishga qaratilgan. Ikkala usul bir-birini to'ldirganligi sababli, ular
ba'zan bir nechta ko'p tarmoqli protsessorli va bir nechta ko'p tarmoqli yadroli
protsessorli tizimlarda birlashtiriladi.
103
Kompyuter arxitekturasida multithreading - bu markaziy protsessor
(protsessor) (yoki ko'p yadroli protsessorda bitta yadro) bir vaqtning o'zida
operatsion tizim tomonidan qo'llab-quvvatlanadigan bir nechta bajarilishini
ta'minlash qobiliyatidir. Ushbu yondashuv ko'p ishlov berishdan farq qiladi. Ko'p
tarmoqli ilovada ish zarrachalari bir yoki bir nechta yadro resurslarini baham
ko'radi, jumladan, hisoblash birliklari, protsessor keshi va tarjimani kutish buferi
(TLB).
Bir yoki bir nechta yadrolarda to'liq protsessorlar, multithreading oqim
darajasida parallelizmni qo'llash orqali bitta yadrodan foydalanishni ko'paytirishga
qaratilgan, shuningdek ko'rsatmalar - parallellik darajasi. Ikkala usul bir-birini
to'ldirganligi sababli, ular ba'zan bir nechta ko'p tarmoqli protsessorli va bir nechta
ko'p tarmoqli yadroli protsessorli tizimlarda birlashtiriladi.
Do'stlaringiz bilan baham: |