fbpx

Stack memory гэдэг нь LIFO буюу Last in First Out зарчимаар ажилдаг компьютерийн санах ойг хэлнэ. Энэ нь програмчлалд функцийн дуудлага , локал хувьсагчийг хариуцдаг . Жишээлбэл функц дуудагдах болгонд Stack Frame буюу шинэ санах ойн блок Стак санах ойд үүсч хаягыг буцаадаг .Функц дуудагдаж дуусах үед буюу ажиллаж дуусах үед санах ойн блок устаж , тухайн санах ойг чөлөөлдөг.

Stack Memory-ийн шинж чанарууд нь

  • LIFO бүтэцтэй : Сүүлд нэмэгдсэн нь түрүүлж гардаг .Бодит амьдрал дээрх зүйлтэй зүйрлэвэл давхарлаж тавьсан тавагтай ижил юм .
  • Хэмжээний хувьд хязгаарлагдмал : Стак санах ой нь Heap санах ойтой харьцуулахад хэмжээний хувьд хязгаарлагдмал . Нийт стак санах ойн хэмжээ нь тухайн үйлдлийн систем , архитектураас хамаарна . Хэрвээ стак санах ойг хэт их ашиглавал Stack Overflow тохиолдоно.
  • Автомат хуваарьлалт : Автоматаар санах ойг хуваарьлаж , чөлөөлдөг учир санах ойн менежмент хийх шаардлагагүй учир хөгжүүлэгчидэд илүү аюулгүй ба амархан болгодог .
  • Хурдан хандалт : Стак санах ойн хувьд санах ойн блокууд нь залгаа , дараалласан байдаг тул хандахад илүү хурдан байдаг .
  • Амьдрах хугацаа : Локал хувьсагч нь тухайн функцдээ л хүчинтэй ба тухайн функц ажиллаж дуусахад стак санах ойд хуваарьлагдсан байсан санах ой чөлөөлөгдөнө .

Stack memory хэрхэн ажилладаг вэ?

  • Функц дуудагдах үед: Шинэ санах ойн блок стак санах ойнд нэмэгддэг. Энэ санах ойн блоконд дараах мэдээлэл хадгалагдана
    • Буцах хаяг : Функц ажиллаж дууссаны дараа хаашаа буцахыг зааж өгдөг.
    • Локал хувьсагчид : Тухайн функц доторх хувьсагчид.
  • Push (нэмэх) ба Pop (хасах): Функц дуудагдах үед шинэ санах ойн блок стак санах ойд нэмэгддэг (push). Функцийн гүйцэтгэл дуусмагц санах ой чөлөөлөгддөг (pop).

Стак санах ой нь хурдтай ажиллагаа шаарддаг процессуудад тохиромжтой ч хэмжээний хязгаарлалтаас үүдэн их хэмжээний өгөгдлийг хадгалахад тохиромжгүй.

Leave a Reply