O’ZBEKISTON RESPUBLIKASI AXBOROT TEXNALOGIYALARI VA KOMMUNUKATSIYALARINI RIVOJLANTIRISH VAZIRLIGI.
MUHAMMAD AL-XORAZMIY NOMIDAGI TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI.
Guruh: CAO003-1
Amaliy ishi - 6
Mavzu: KOMPYUTER TIZIMINING TUZILISHINI TASHKIL ETISH
Bajardi: To'laganov Ikromjon
Tekshirdi: Jamolov Xudoyorxon
TOSHKENT – 2023
Stack nima?
LIFO steklari, shuningdek, "pastga surish" steklari sifatida ham tanilgan, matematik ifodalarni baholash va rekursiv pastki dastur chaqiruvi kabi umumiy kompyuter operatsiyalari uchun ma'lumotni vaqtincha saqlash joyida saqlashning kontseptual jihatdan eng oddiy usuli hisoblanadi.
Stack ishlashiga misol.
Stak qanday ishlashiga misol sifatida, tez-tez kafeteryalarda uchraydigan prujinali tovoqli dispenserni ko'rib chiqing. Aytaylik, har bir laganda ustiga o'yilgan raqam bor. Bir vaqtning o'zida bitta tovoqlar yuqoridan yuklanadi, ularning har biri allaqachon yuklangan tovoqlar ustiga suyanadi va kerak bo'lganda ko'proq tovoqlar uchun joy bo'shatish uchun siqiladi. Misol uchun, 1.1-rasmda 42, 23, 2 va 9-raqamli tovoqlar tovoqlar to'plamiga 42 ta birinchi va 9 ta oxirgi yuklangan holda yuklangan.
"Oxirgi kirish" laganda raqami 9. Shunday qilib, "Birinchi chiquvchi" laganda ham 9-raqamdir. Mijozlar to'pning yuqori qismidan tovoqlarni olib tashlashganda, birinchi laganda 9-laganda, ikkinchisi esa 2-laganda olinadi. Aytaylik, bu vaqtda ko'proq tovoqlar qo'shildi. Bu tovoqlar biz yuklagan birinchi patnisdan oldin to'plamdan chiqib ketishi kerak edi. Tovoqlar to'plamini har qanday ketma-ket bosish va ochishdan keyin 42-laganda hali ham pastki qismida bo'ladi. 42-laganda stekning tepasidan ko'chirilgandan keyingina stek yana bo'sh bo'ladi.
Dasturiy ta'minotni amalga oshirishga misollar
LIFO steklari an'anaviy kompyuterlarga bir necha usul bilan dasturlashtirilishi mumkin. Eng oddiy yo'l xotirada massivni ajratish va o'zgaruvchini eng yuqori faol elementning massiv indeks raqami bilan saqlashdir. Amalga oshirish samaradorligini qadrlaydigan dasturchilar xotira joylari blokini ajratish va yuqori stek elementining haqiqiy manzili bilan ko'rsatgichni saqlash orqali ushbu texnikani yaxshilaydi. Ikkala holatda ham stek elementini “itarish” stekga yangi so‘z ajratish va unga ma’lumotlarni joylashtirish aktini bildiradi. Stekni "popping" yuqori elementni stekdan olib tashlash va keyin olib tashlangan ma'lumotlar qiymatini pop so'rovi tartibiga qaytarish harakatini anglatadi.
Stacklar ko'pincha mashinaning eng yuqori manzil hududlariga joylashtiriladi. Ular odatda xotiraning eng yuqori joyidan pastki xotira joylariga qarab o'sadi, bu esa dastur xotirasining oxiri va stekning "yuqori" o'rtasida xotiradan foydalanishda maksimal moslashuvchanlikni ta'minlaydi. Bizning munozaralarimizda stek xotirada "yuqoriga" o'sishi yoki xotirada "pastga" tushishi katta ahamiyatga ega emas. Stackning "yuqori" elementi oxirgi marta bosilgan va birinchi bo'lib ochiladigan elementdir. Stackning "pastki" elementi olib tashlanganda stekni bo'sh qoldiradi.
Steklarning juda muhim xususiyati shundaki, ular eng sof shaklda faqat ma'lumotlar strukturasining yuqori elementiga kirish imkonini beradi. Keyinchalik ko'rib chiqamizki, bu xususiyat dasturning ixchamligi, apparatning soddaligi va bajarilish tezligi sohalarida chuqur ta'sir ko'rsatadi.
Stacks protseduralar ichida ma'lumotlarni vaqtincha saqlash uchun ajoyib mexanizmlarni yaratadi. Buning asosiy sababi shundaki, ular tartibning oldingi chaqiruvlari ma'lumotlarini yo'q qilish xavfisiz protseduralarni rekursiv chaqirishga imkon beradi. Ular, shuningdek, qayta kirish kodini ham qo'llab-quvvatlaydi. Qo'shimcha afzallik sifatida, xuddi shu protseduralar orasidagi parametrlarni o'tkazish uchun steklardan foydalanish mumkin. Nihoyat, ular har bir protsedura xotirasida vaqtinchalik o'zgaruvchilar uchun joy ajratish o'rniga, vaqtinchalik o'zgaruvchilarni taqsimlash uchun turli protseduralarga bir xil xotira maydonidan qayta-qayta foydalanishga ruxsat berish orqali xotira maydonini tejashlari mumkin.
Dasturiy ta'minotda steklarni yaratishning massiv yondashuvidan tashqari boshqa usullari ham mavjud. Bog'langan elementlar ro'yxati stek so'zlarini ajratish uchun ishlatilishi mumkin, bunda stek elementlari haqiqiy xotira manzillariga nisbatan har qanday tartibda bo'lishi shart emas. Bundan tashqari, stek maydonini ajratish uchun dasturiy ta'minot to'plamidan foydalanish mumkin, garchi bu haqiqatan ham savol tug'diradi, chunki uyumlarni boshqarish haqiqatan ham stekni boshqarishning yuqori to'plamidir.
Do'stlaringiz bilan baham: |