Skip to main content

Ano ang isang libreng listahan?

Ang isang libreng listahan ay isang istraktura ng data na humahawak ng mga address ng mga lokasyon ng memorya ng computer na magagamit para magamit sa pamamagitan ng isang tumatakbo na programa kapag gumagamit ng pabago -bagong paglalaan ng memorya. Ang listahan ay kinakailangan kapag ang isang programa ay dapat maglaanAng puwang mula sa isang lugar ng libreng memorya na tinatawag na bunton. Ang pagpapatupad ng isang libreng listahan ay maaaring maging isang simpleng naka -link na listahan o maaaring maging isang mas kumplikadong istraktura ng data tulad ngisang uri ng puno. Karamihan sa mga mataas na antas ng mga wika sa programming ng computer ay awtomatikong hawakan ang libreng listahan, pag-alis ng pangangailangan para sa manu-manong pamamahala.

Kapag ang isang programa ay nangangailangan ng puwang upang mag-imbak ng impormasyon sa panahon ng pagpapatupad ng programa, ITdapat humiling ng isang tiyak na halaga ng memorya mula sa pinagbabatayan na operating system. Ang mga lokasyon ng mga bloke ng memorya na maaaring magamit ay naka -imbak sa libreng listahan. Para maging matagumpay ang paglalaan, ang halaga ng hiniling na memoryakailangang magamit sa isa o higit pa sa mga bloke na ito. Kapag ang isang pointer sa isang naaangkop na locatio ng memoryaN ibabalik, ang elementong iyon ng listahan ay tinanggal.I -block pabalik sa libreng listahan, kung saan magagamit ito sa susunod na isang paglalaan ay sinubukan. Posible na mabigo ang paglalaan ng memorya dahil walang laman ang listahan o dahil walang magagamit na mga bloke ng memorya na sapat na sapat upang matupad angAng kahilingan ng programa.Ang listahan ay traversed at ang unang bloke na sapat na malaki ay ibabalik. Kung ang bloke ay higit sa dalawang beses sa hiniling na laki, pagkatapos ito ay nahati, at ang hindi nagamit na kalahati ay idinagdag pabalik sa listahan. Ang pamamaraang ito ay nakikipagkalakalan ng simpleng coding para sa panganib ng pagkakaroon ng fragment memoryAng mga lugar na hindi maaaring ibalik sa listahan.

Ang ibang anyo ng pamamahala ng memorya ay tinatawag na Buddy Allocation System. Hindi tulad ng unang Fit System, ang Buddy Allocation ay nagpapanatili ng maraming mga libreng listahan, ang bawat isa ay may hawakBuksan ang mga bloke ng isang partikular na laki. Nangangahulugan ito na kapag natanggap ang isang kahilingan sa paglalaan, ang listahan na may hawak na mga bloke na sapat lamang upang punan ang kahilingan ay kinonsulta, at isang bukas na lokasyon ang ibabalik. Kung hindiAng mga libreng bloke na mas mababa sa dalawang beses na magagamit ang laki na hiniling, ang isang mas malaking bloke ay nahati sa dalawa upang matupad ang mga kinakailangan.o maaari itong sumangguni sa isang mas kumplikadong uri ng istraktura ng data. Iba't ibang uri ng mga uri ng puno, kung pinananatiling simple at balanseng, ay maaaring makatulong na madagdagan ang bilis ng paghahanap ng mga bukas na mga bloke ng memorya sa gastos ng kumplikadoAng source code. Ang isang naka -link na listahan ay maaaring mas mabagal kaysa sa isang dalubhasang uri ng puno ngunit lumilikha ng programming code na mas madaling basahin, i -debug at baguhin.Libreng listahan at pagsamahin ang mga libreng puwang upang sila ay magkasalungat. Ito ay may epekto ng pagpigil sa fragmentation at pinapayagan ang mas malaking mga bloke ng memorya na ilalaan.