1-ma’ruza ko’p sathli kompyuterni tashkilash
Download 392.97 Kb. Pdf ko'rish
|
1-Maruza
- Bu sahifa navigatsiya:
- 1.1.Kirish
- 1.4. Ko’p bosqichli mashinalarning rivojlanishi
1-MA’RUZA
Kalit so’zlar: virtual mashinalar, sathli mashinalar, mashina tili
Raqamli kompyuter - bu unga berilgan buyruqlarni bajarish orqali muammolarni hal qila oladigan mashina. Muayyan masalaning yechimini tavsiflovchi buyruqlar ketma-ketligi dastur deb nomlanadi. Har bir kompyuterning elektron sxemalari cheklangan oddiy buyruqlar to’plamini taniydi ( raspoznavat ) va uni bajarishi mumkin. Amalga oshirishdan oldin barcha dasturlar odatda oddiy murakkab bo’lmagan buyruqlar ketma-ketligiga aylantirilishi kerak, masalan: ikkita raqam qo’shing raqam nolga teng emasligini tekshiring; ma’lumotlar blokini kompyuter xotirasining bir qismidan boshqasiga nusxalash. Ushbu boshlang’ich sodda buyruqlar to’plami odamlar kompyuter bilan aloqa qila oladigan tilni tashkil qiladi. Bunday tilga mashina tili deyiladi. Yangi kompyuterni yaratishda ushbu kompyuterning mashina tiliga qaysi buyruqlarni kiritishni hal qilishi kerak. Bu kompyuterni qanday maqsada ishlatilshiga va u hal qilishi kerak bo’lgan vazifalarga bog’liq. Kompyuterni loyihalashda murakkabliklarni oldini olish va kerakli elektronikaning narxini pasaytirish uchun mashina buyruqlarini iloji boricha sodda bo’lishiga harakat qilish odatiy holdir. Mashina tillarining aksariyati juda sodda, bu ularga yozishni qiyin va zerikarli qiladi.
Vaqt o’tishi bilan amalga oshirilgan bu oddiy kuzatuv, har biri pastki mavhumlik (absraktsiya) sathi ustiga qurilgan bir qator mavhumlashtirishlarni yaratilishiga olib keldi. SHunday qilib, qanday qilib murakkabliklarni yengish mumkin va dizayn jarayoni muntazam va tartibli bo’lishi mumkin. Biz ushbu yondashuvni ko’p bosqichli hisoblash deb ataymiz. 1.2 Tillar, sathlar va virtual mashinalar
Odamlar uchun qulay bo’lgan narsalar va kompyuterlar , bajara oladigan narsalar o’rtasida katta farq bor. Odamlar X-ni qilishni xohlashadi, ammo kompyuterlar faqat Yni bajarishi mumkin. Bu muammoni keltirib chiqaradi. Ushbu ma’ruzaning maqsadi bu muammoni qanday hal qilishni tushuntirishdir. Yuqoridagi muammoni ikki usul bilan hal qilish mumkin. Ikkala usul ham yangi dasturlarni ishlab chiqishni o’z ichiga oladi. Ushbu yangi buyruqlar to’plami biz T1 deb ataydigan tilni yuzaga keltiradi. O’rnatilgan mashina buyruqlari ham tilni hosil qiladi va biz uni T0 deb nomlaymiz. Kompyuter faqat T0 dasturiy tilida yozilgan dasturlarni bajara oladi. Muammoni hal qilishning ikkita usuli, kompyuter T1 tilida yozilgan dasturlarni qanday bajarishi bilan farq qiladi - lekin, kompyuterda faqat T0 mashina tili mavjud. T1 tilida yozilgan dasturni amalga oshirishning birinchi usuli har bir buyruqni T0 tilidagi mos keladigan buyruqlar to’plami bilan almashtirishni anglatadi. Bunday holda, kompyuter T1da yozilgan eski dastur o’rniga T0 bilan yozilgan yangi dasturni bajaradi. Ushbu texnologiya translyatsiya deb nomlanadi. Ikkinchi usul T0 tilida kirish ma’lumotlari sifatida T1 tilida yozilgan dasturlarni oladigan dasturni yaratish iborat. Bunday holda, T1 tilining har bir buyrug’i navbati bilan qayta ishlanadi, shundan so’ng T0 tilining mos keladigan buyruqlar to’plami darhol bajariladi. Ushbu texnologiya T0 dasturida yangi dasturni tuzishni talab qilmaydi. U interpretatsiya deb ataladi va uni bajaradigan dastur interpretator deb ataladi. Translyatsiya va interpretatsiya o’rtasida ko’p o’xshashliklar mavjud. Ikkala holatda ham, kompyuter T1 buyruqlariga ekvivalent bo’lgan T0 buyruqlar to’plamini bajaradi. Faqatgina farq shundaki, translyatsiya paytida T1 dasturi T0 dasturiga aylantiriladi, T1 dasturi o’chiriladi va yangi T0 dasturi kompyuter xotirasiga yuklanadi va keyin bajariladi. Ishlash jarayonida T0 tilida yozilgan genertsiya qilingan dastur kompyuterning ishlashini boshqaradi. Interpretatsiyada, T1-dagi har bir buyruq T0-ga qayta yoziladi va darhol bajariladi. Bunda, translyatsiya qilingan dastur yaratilmaydi. Kompyuterning ishlashini, T1-dagi dastur
"xom" kirish
ma’lumotlaridan boshqa narsa bo’lmagan interpretator tomonidan boshqariladi. Ikkala yondashuv ham birgalikda, ham alohida keng miqiyosda ishlatiladi. Biroq, translyatsiya va interpretatsiya qilish haqida o’ylashdan ko’ra, mashinaning tili T1 bo’lgan gipotetik kompyuter yoki virtual mashinaning mavjudligini tasavvur qilish ancha osonroq. SHunday virtual mashinani M1, va T0 tili bilan ishlaydigan virtual mashinani - M0 deb nomlaymiz. Agar bunday M1 mashinasi katta xarajatlarsiz qurilishi mumkin bo’lsa, T0 tilini va T0 tilida dasturlarni bajaradigan mashina kerak bo’lmaydi. Ya’ni, dasturni T1 tilida yozish mumkin va kompyuter ularni darhol amalga oshirar edi. Virtual mashinani yaratish imkoni bo’lmasligi mumkin (bu juda qimmat yoki uni ishlab chiqarish qiyinligi sababli), lekin odamlar unga yo’naltirilgan dasturlarni yozishlari mumkin. Ushbu dasturlar T0 tilida yozilgan dastur tomonidan translyatsiya yoki interpretatsiya qilinadi, uni o’zi mavjud kompyuter tomonidan bajarilishi mumkin. Boshqacha qilib aytganda, virtual mashinalar uchun dasturlarni yozishingiz mumkin, xuddi bu mashinalar real mavjud. T0 va T1 tillari bir-biridan unchalik farq qilmasa, translyatsiya va interprentatsiya qilish tavsiya etiladi. Ko’pincha bu T1 tili T2 dan yaxshiroq bo’lsa ham, hali ham idealdan uzoq ekanligini anglatadi. Ehtimol, bu T1 tilini yaratishning asl maqsadi - dasturchini kompyuter tushunadigan, ammo odamlar uchun moslashtirilmagan tilda dasturlarni yozish og’irligidan xalos qilish nuqtai nazaridan biroz tushkunlik bo’lishi mumkin. Biroq, vaziyat unchalik umidsiz emas. Muammoning aniq yechimi T1 ga qaraganda ko’proq odamga yo’naltirilgan va kompyuterga nisbatan kamroq yo’naltirilgan boshqa buyruqlar to’plamini yaratishdir. Ushbu uchinchi buyruqlar to’plami biz T2 deb nomlanadigan tilni va mos keladigan virtual mashinani, M2 ni hosil qiladi. Biror dasturchi T2 tilida dasturlarni yozishi mumkin, go’yo T2 mashina tili bilan ishlash uchun virtual mashina mavjud. Bunday dasturlar T1 tiliga translyatsiya qilinishi yoki T1 tilida yozilgan interpretator tomonidan bajarilishi mumkin. Turli tillarning ixtiro qilinishi, har biriga oxirgisidan ham ko’proq biz uchun mos bo’lgan tilga kelgunimizcha davom etishi mumkin. Har bir bunday til o’zidan oldingisidan asos sifatida foydalanadi, shuning uchun biz kompyuterni 1.1. rasmda tasirlangan sathlar qatori deb
hisoblashimiz mumkin. Ierarxik tuzilmaning eng pastki qismidagi til eng sodda, eng yuqorisidagi esa eng murakkab.
Til va virtual mashina o’rtasida muhim munosabatlar mavjud. Har bir mashina ma’lum bir mashina tilini qo’llab-quvvatlaydi, bu mashina bajarishi mumkin bo’lgan barcha buyruqlardan iborat. Aslida, mashina tilni aniqlaydi. Xuddi shunday, til bir mashinani, ya’ni shu tilda yozilgan barcha dasturlarni bajaradigan mashinani belgilaydi. Albatta, bir tilda yoki boshqa tilda aniqlangan dastgoh elektron davrlardan qurish juda qiyin va qimmat, ammo biz bunday mashinani tasavvur qilishimiz mumkin. Mashina tili C yoki C ++ bo’lgan kompyuter juda murakkab bo’lar edi, ammo printsipial jihatdan zamonaviy texnologiyalarning yuqori sathi hisobga olingan holda ishlab chiqilishi mumkin. Biroq, bunday kompyuterni qurmaslik uchun yaxshi sabablar bor - bunday yechim boshqalarga nisbatan samarasiz. Darhaqiqat, texnologiya nafaqat maqsadga muvofiq, balki oqilona bo’lishi kerak. n-sathli kompyuterni har birining o’ziga xos mashina tili bo’lgan n har xil virtual mashinalar deb hisoblash mumkin. Biz "sath" va "virtual mashina" atamalarini bir-biridan foydalanamiz. Faqat T0 da yozilgan dasturlarni kompyuter tomonidan translyatsiya qilinmasdan yoki
interpretatsiyasiz amalga oshirish mumkin. T1, T2, ..., Tn -da yozilgan dasturlar quyi sathdagi interpretatordan o’tishi yoki quyi sathga mos keladigan tilga translyatsiya qilinishi kerak. n sathli virtual mashina uchun dasturlar yozadigan odam, quyi sathdagi interpretatorlar va interpretatorlar haqida bilishi shart emas. Mashina ushbu dasturlarni bajaradi va ular interpretator tomonidan bosqichma-bosqich bajariladimi yoki ularni o’zi qayta ishlaydimi, muhim emas. Ikkala holatda ham natija bir xil - dasturning bajarilishi. n sathli mashinadan foydalanadigan aksariyat dasturchilar faqat mashina tiliga o’xshash eng yuqori sathga qiziqishadi. Biroq, kompyuter aslida qanday ishlashini tushunishni istaganlar barcha sathlarni o’rganishlari kerak. Yangi kompyuterlar yoki yangi sathlarni ishlab chiquvchilar (ya’ni yangi virtual mashinalar) barcha sathlar bilan tanish bo’lishi kerak.
1.3 Zamonaviy ko’p bosqichli mashinalar Ko’pgina zamonaviy kompyuterlar ikki yoki undan ortiq sathga ega. Oltita sathli mashinalar ham mavjud (1.2-rasm). 0-sath - bu noldan pastda joylashgan apparat sathi. Ushbu sath 1.2 shaklda ko’rsatilmagan, chunki bu elektronika sohasiga kiradi va shuning uchun ma’ruzada kitobda keltirilmagan. Bunga fizik qurilma sathi deyiladi. Ushbu sathda tranzistorlar mavjud, ular kompyuter ixtrochilari uchun sodda hisoblanadi. Agar kimdir tranzistorlarning qanday ishlashi bilan qiziqsa, qattiq jismlar fizikasi sohasiga murojaat qilishga majbur bo’ladi. Biz o’rganadigan eng past sathda, ya’ni raqamli mantiq sathda ob’ektlar ventillar deb nomlanadi. Ventillar analog komponentlardan (masalan, tranzistorlardan) qurilgan bo’lsa ham, ularni raqamli qurilmalar sifatida aniq modellashtirilishi mumkin. Har bir ventilda bitta yoki bir nechta raqamli kirish mavjud (signallar 0 yoki 1 ni bildiradi). Ventil signallarni oddiy yoki funktsiyalarini hisoblaydi, masalan, VA yoki KI. Har bir ventil bir nechta tranzistorlardan hosil bo’ladi. Bir nechta ventillar 0 yoki 1 ni o’z ichiga olishi mumkin bo’lgan 1 xotira bitini tashkil qiladi. Xotira bitlari, guruhlarga birlashtirilgan, masalan, 16, 32 yoki 64, registrlar. Har bir registrda ma’lum bir diapazonda bitta ikkilik raqam bo’lishi mumkin. Ventillar hisoblash tizimining eng asosiy qismini yaratish uchun ham ishlatilishi mumkin.
1.2- rasm. Olti sathli kompyuter. Keyingi sathga mikroarxitektura sathi deyiladi. Ushbu sathda mahalliy (lokal) xotirani va AMQ (Arifmetik-matiqiy qurilma) deb nomlangan sxemani tashkil etadigan (odatda) 8 yoki 32 registrlar to’plami mavjud. AMQ oddiy arifmetik amallarni bajaradi. Registrlar AMQ bilan birgalikda ma’lumotlar qabul qilingan yo’lni hosil qiladi. Ma’lumotlar yo’lining asosiy ishlashi quyidagicha amalga oshiriladi: bitta yoki ikkita registrlar tanlangan, AMQ ular ustida bir nechta operatsiyalarni bajaradi (masalan, qo’shish), shundan so’ng natija yana registrga joylashtiriladi. Ba’zi bir mashinalarda ma’lumotlar trakti mikrodastur deb nomlangan maxsus dastur tomonidan boshqariladi. Boshqa mashinalarda ma’lumotlar trakti to’g’ridan-to’g’ri apparat tomonidan boshqariladi. Ma’lumotlar uzatiladigan trakt dasturiy ta’minot tomonidan boshqariladigan mashinalarda, dasturiy ta’minot 2-sathdagi buyruqlar uchun interpretator hisoblanadi. Masalan, ADD buyrug’i bajarilganda, u xotiradan chaqiriladi, uning operandalari registrlarga joylashtiriladi, AMQ yig’indini hisoblab chiqadi va keyin natija kerak bo’lgan joyga yuboriladi. Ma’lumotlarini boshqarish yo’llari uskunali boshqariladigan kompyuterda xuddi shunday protsedura sodir bo’ladi, ammo 2-sathli buyruqlarni sharhlaydigan dastur yo’q. 2-chi sath buyruqlar majmuasi arxitekturasi deb nomlanadi. Keyingi bosqich odatda gibriddir. Uning tilidagi buyruqlarning aksariyati buyruqlar to’plamining arxitekturasi sathidadir (sathlarning birida mavjud bo’lgan buyruqlar boshqa sathlarda ham namoyish etilishi mumkin). Ushbu sath ba’zi qo’shimcha funktsiyalarga ega: yangi buyruqlar to’plami, boshqa xotira tashkil etilishi, bir vaqtning o’zida ikki yoki undan ortiq dasturlarni bajarish qobiliyati va boshqalar. 1- va 2- sathlarni qurishdan ko’ra 3- sathni qurishda ko’proq xilma-xillik mavjud.
3-sathga kiritilgan yangi vositalar ikkinchi sathda ishlaydigan interpretator tomonidan bajariladi. Ushbu interpretator bir vaqtlar operatsion tizim deb nomlangan. 2-sathli buyruqlar bilan bir xil bo’lgan 3-chi sathdagi buyruqlar operatsion tizim tomonidan emas, balki dasturiy yoki qo’shimcha vositalar tomonidan bajariladi. Boshqacha qilib aytganda, 3-sathli buyruqlarning bir qismi operatsion tizim tomonidan, boshqa qismi esa dasturiy ta’minot tomonidan interpretatsiya qilinadi. SHuning uchun bu sath gibrid deb hisoblanadi. Ushbu sathni operatsion tizim sathi deb ataymiz. 3 va 4- sathlar o’rtasida tub farq mavjud. Pastki uchta sath oddiy dasturchilar tomonidan ishlatilishi mo’ljallanmagan. Ular dastlab interpretatorlar va translyatorlarga qaratilgan bo’lib, yuqori sathdagi ishlarni ta’minlaydilar. Ushbu translyatorlar va interpretatorlar yangi virtual mashinalarni ishlab chiqarishga ixtisoslashgan tizim dasturchilari tomonidan yaratilgan. To’rtinchi va undan yuqori sathlar amaliy muammolarni hal qiladigan dasturchilar uchun mo’ljallangan. 4-sathga kiritilgan yana bir o’zgarish yuqori sathlarni qo’llab- quvvatlash mexanizmidir. 2 va 3 sathlar har doim interpretatsiya qilinadi, 4, 5 va undan yuqori sathlar odatda (har doim ham emas) translyatsiya qilinadi. 1, 2, 3 va 4, 5 va undan yuqori sathlar o’rtasidagi yana bir farq bu tilning o’ziga xos xususiyati. 1, 2 va 3 sathdagi mashina tillari raqamli hisoblanadi. Ushbu tillarda yozilgan dasturlar raqamlar uzun satrlaridan iborat bo’lib, ular kompyuter tomonidan o’qilishi mumkin, ammo odamlar tomonidan juda kam tushuniladi. 4-sathdan boshlab, tillarda odamlar tushunadigan so’zlar va qisqartmalar mavjud. 4 sath quyi sathdagi tillardan birining ramziy shaklini anglatadi. Ushbu sathda, kishi 1, 2 va 3 sathlar uchun dasturlarni virtual mashinalarning tiliga o’xshamaydigan shaklda yozishi mumkin. Ushbu
dasturlar birinchi navbatda 1, 2 yoki 3 tilga translyatsiya qilinadi, so’ngra tegishli virtual yoki real dunyo mashinasi tomonidan interpretatsiya qilinadi. Translyatsiyani bajaradigan dastur assembler deb nomlanadi. 5-sath, odatda dastur dasturchilari uchun mo’ljallangan tillardan iborat. Bunday tillarga yuqori sathdagi tillar deyiladi. Yuzlab yuqori sathdagi tillar mavjud. Ular orasida eng mashhurlari C, C ++, Java, Perl, Python va PHP. Ushbu tillarda yozilgan dasturlar odatda 3 yoki 4 sathga translyatsiya qilinadi, ba’zi hollarda translyatsiyalar mavjud bo’lsa ham, ushbu dasturlarni qayta ishlaydigan interpretatorlar kompilyator deb ataladi. Masalan, Java dasturlari dastlab bayt-kod Java deb nomlangan mashinaga o’xshash tilga translyatsiya qilinadi, keyinchalik u izohlanadi. Ba’zi hollarda, 5-sath ramziy mantiq kabi ma’lum bir amaliy domen uchun interpretatordan iborat. Ushbu domen muammolarini ushbu domenning malakali shaxs tomonidan yaxshi tushunilgan kontekstida hal qilish uchun ma’lumotlar va operatsiyalarni ta’minlaydi. SHunday qilib, ushbu tavsifdan shuni esda tutish kerakki, kompyuter bir-birining ustiga qurilgan sathlarning ierarxik tuzilishi sifatida yaratilgan. Har bir sath ba’zi ob’ektlar va operatsiyalarning mavhumligidir. SHu tarzda kompyuterning tuzilishini o’rganish va tahlil qilish orqali biz keraksiz tafsilotlarni e’tiborsiz qoldiramiz va shu tariqa murakkab mavzuni tushunishni osonlashtiramiz. Har bir alohida sathning ma’lumotlar turlari, operatsiyalari va tavsiflari to’plamiga arxitektura deyiladi. Arxitektura ushbu sathdagi foydalanuvchiga ko’rinadigan jihatlar bilan shug’ullanadi. Masalan, dastur yozishda qancha xotiradan foydalanishingiz mumkinligini bilish arxitekturaning bir qismidir. Amalga oshirish jihatlari (masalan, xotirani amalga oshirishda foydalaniladigan texnologiyalar) arxitekturaning bir qismi emas. Kompyuter tizimining dasturiy elementlarini loyihalash usullarini o’rganish, biz kompyuter arxitekturasini o’rganamiz. Amaliyotda "kompyuter arxitekturasi" va "kompyuter tashkiloti" atamalari bir-birining o’rnida ishlatiladi.
Ushbu bo’limda biz ko’p bosqichli mashinalarning rivojlanish tarixi haqida qisqacha gaplashamiz, yillar davomida sathlar soni va tabiati qanday o’zgarganligini ko’rsatamiz. Mashina tilida yozilgan dasturlar (1-sath) darhol kompyuterning elektron sxemalari (0-sathli) tomonidan interpretator va interpretatorlardan foydalanmasdan bajarilishi mumkin. Ushbu elektron sxemalar, xotira va kiriti/chiqarish qurilmalari bilan birgalikda kompyuterning uskuna ta’minotini tashkil qiladi. Uskunalar ta’minoti moddiy ob’ektlardan iborat - integral mikrosxemalar, bosilgan elektron platalar, kabellar, quvvat manbalari, xotira modullari va printerlar. Mavhum tushunchalar, algoritmlar va buyruqlar uskunalar ta’minoti bilan bog’liq emas. Bunga javoban, dasturiy ta’minot algoritmlardan (muammoning yechimini tavsiflovchi buyruqlarning batafsil ketma-ketligi) va ularning kompyuter tasvirlaridan, ya’ni dasturlardan iborat. Dasturlar qattiq diskda, disketda, CD-ROMda yoki boshqa vositalarda saqlanishi mumkin, ammo bu unchalik muhim emas; mohiyatiga ko’ra dasturiy ta’minot bu dasturlar yozilgan fizik vositalarini emas, balki dasturlarni tashkil etadigan buyruqlar to’plamidir. Dastlabki kompyuterlarda apparat va dasturiy ta’minot o’rtasidagi chegara aniq edi. Biroq, vaqt o’tishi bilan, bu chegara sezilarli o’zgardi, birinchi navbatda kompyuterlarning rivojlanishi jarayonida sathlar qo’shilgan, olib tashlangan va bir-biri bilan birlashtirilgan. Hozirgi vaqtda ularni bir-biridan ajratish juda qiyin.
1. O'z so'zlaringiz bilan quyidagi atamalarni izohlang: 1) translyator; 2) interpretator; 3) virtual mashina. 2.Kompilyator ko'rsatmalar to'plamidagi arxitektura qatlamini chetlab o'tib, to'g'ridan-to'g'ri mikroarxitektura sathi uchun ma'lumotlarni ishlab chiqara oladimi? 3. Jismoniy qurilma darajasi va raqamli mantiq darajasi eng past darajadagi bo'lmagan ko'p darajali kompyuterni tasavvur qila olasizmi? 4. Qaysi ma'noda apparat va dasturiy ta'minot ekvivalenti? 5. Qaysi ma'noda apparat va dasturiy ta'minotlar teng emas? Download 392.97 Kb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling