Управљање меморијом је основни феномен оперативног система који се користи за руковање или управљање примарном меморијом ради контроле права приступа меморији на рачунару. Циљ је спречити било којем процесу да приступи меморији која му још није додељена.
Оперативни систем додељује меморију за сваки процес који је подељен на сегменте. Стацк и Хеап су два начина на које се меморија распоређује у оперативном систему.
Склоп сегмената користи се за чување променљивих локалних функција које се аутоматски креирају, док се хеап сегмент користи за динамички додељену меморију.
Обоје су похрањени у рачунарској РАМ меморији и током извођења програма могу расти и смањивати се. Хајде да детаљно размотримо ово двоје и упоредимо их да бисмо разумели који је бољи.
Стаг сегмент је техника управљања меморијом која се користи за статичку расподелу меморије. То је посебно подручје у меморији рачунара које се користи за чување променљивих локалних функција. Када се функција позове, меморија се додељује негде свим локалним варијаблама и можете приступити тим варијаблама како знате њихове локације. Меморијски блокови се ослобађају када функција престане. Стацк је један од начина да се овај процес ефикасно имплементира. Замислите то као основну структуру података где су предмети распоређени један преко другог попут снопа. Слично томе, локалним варијаблама може се приступити притиском и искакањем. Гурање се односи на додавање предмета у сноп и искакање значи повлачење предмета из снопа. Ставкама се може приступити из снопа по редоследу последњи-први-излаз (ЛИФО).
Хеап се односи на велики скуп меморије који се користи за динамичку расподелу меморије што значи да меморија остаје додељена док програм не престане или се меморија не ослободи. Меморија се додељује насумично тако да не постоји једноставан начин за приступање меморији. За разлику од сегмента сегмента, елементи се ослобађају обрнутим редоследом како су првобитно додељени. Једноставно речено, меморија се додељује програмима на захтев и ослобађа се када више није потребна. Елементи гомиле су међусобно неовисни, што значи да им се може приступити док се програм покреће и ослобађа када програм престане. То је попут базена глобалне меморије који се користи за чување глобалних променљивих и многих варијабли које на њих упућују.
У рачунарској архитектури, сноп је посебна област меморије рачунара изричито додељена за аутоматске променљиве. У програмирању, аутоматска варијабла је локална варијабла што значи да је опсег променљиве локални за блок у коме је декларисана. Меморија се аутоматски додељује овим варијаблама при уласку у блок и меморија се ослобађа по изласку. Хеап је, с друге стране, део меморије рачунара који се користи за динамичку расподелу меморије што значи да су блокови меморије додељени и распоређени на случајни начин.
Стацк се користи за спремање локалних варијабли и чији је опсег дефиниран у функцији. У техничком погледу, стацк подржава распоређивање статичке меморије која одговара локалним статичким и варијаблама опсега. Меморија се додељује пре извршења програма, обично у време компилације и коришћена структура података назива се стацк. Хеап, с друге стране, користи се за динамичку расподелу меморије што значи да се меморија додељује ручно током извођења програма. Програми захтевају меморију, обично за додавање чвора структури података и враћају ако није потребно.
ЦПУ управља и оптимизира ЦПУ, а подацима се приступа у редослиједу „ласт-ин-фирст-оут“ (ЛИФО). ЛИФО се односи на методу чувања података у меморијским низовима у којима је најновији блок меморије први који се ослобађа и обрнуто. Ово омогућава ефикасно управљање меморијом. Насупрот томе, елементи хепопе су неовисни један о другом и подацима се може приступити произвољно што значи да се меморијски блок може доделити и ослободити у било ком тренутку без обзира на њихов редослед. За разлику од скупова, хефови немају дефинитиван образац за додјелу и размјештање меморијских блокова.
Меморија се аутоматски управља у снопу, а варијабле се аутоматски распоређују и распоређују, што значи да је скуп резервиран само за привремене варијабле. Локалне променљиве постају активне када се функција изврши и када се она заустави, променљиве изађу из обима што значи да је опсег променљиве локални функцији и постоји све док се та функција извршава. За разлику од стека, меморија се додељује док програм ради у хрпи, што чини мало спорији приступ променљивим овде сачуваним. Како не постоји одређени ред за резервисање блокова, блокови меморије се могу додијелити и бесплатно у било које вријеме.
Оба су најчешћи начини расподјеле меморије и чувају се у РАМ-у рачунара за ефикасно управљање меморијом. Међутим, приступ меморији у хрпи је брз, јер се меморијом аутоматски рукује, док се у хрпи управља меморијом ручно, што значи да морате слободно доделити слободну меморију када блокови више нису потребни. Стацк је очигледно бржи и лакши за употребу захваљујући својој флексибилности, али има прилично добар део предности и недостатака. Иако сноп нема ограничења у величини меморије, то је мало тешко имплементирати. Хеап је спорији од снопа, али његова примена је једноставнија.