У чым розніца паміж масай памяці і асноўнай памяццю?


адказ 1:

Калі вы кажаце "галоўная памяць", вы, верагодна, мяркуеце "адрасная прастора". Ваша аперацыйная сістэма займаецца розніцай паміж "рэальнай памяццю" і "адраснай прасторай".

Я раблю гэта адрозненне, таму што вы можаце мець значна больш адраснай прасторы, чым калі-небудзь памяць. Напрыклад, у цяперашні час Windows мае 64-разрадную прастору адрасы. З гэтай адраснай прасторай не звязана сапраўдная памяць. Частка выкарыстоўваецца для ўтрымання аперацыйнай сістэмы, іншая - для драйвераў, адлюстраваных на памяці, трэція - для файлаў з картай памяці, у тым ліку файлаў падпампоўкі.

Такім чынам, вы можаце спытаць у аперацыйнай сістэмы: "Забяспечце блок адраснай прасторы для мяне". Вы таксама можаце папрасіць аперацыйную сістэму альбо размяркоўваць рэальную памяць (за працэс альбо падзяляецца паміж працэсамі) для забеспячэння гэтай адраснай прасторы, альбо для іншых мэт, напрыклад. Б. для файлаў размеркавання памяці.

Купы блокаў абедзве аперацыі ў адным. "Мне патрэбна адрасная прастора X-байт з рэальнай памяццю". Гэтыя блокі адсочваюцца аперацыйнай сістэмай. У большасці выпадкаў час выканання галасавання таксама мае ўласную адміністрацыю, якая размешчана для прызначэння файлаў над кучамі блокаў. Гэта можна назваць кіраваннем памяццю / кіраваннем кучы. Напрыклад, трэкі выканання C прызначаныя і вызваляюцца блокамі, каб меншыя заданні можна было зрабіць эфектыўна. Было б вельмі неэфектыўна працягваць прасіць аперацыйную сістэму для невялікіх блокаў (напрыклад, 10 байт для радка). Кіраванне памяццю падчас выканання, якое ўжо выдзеліла вялікую кучу кучы, размяркоўвае яго невялікімі блокамі.

Як падкрэсліў Джэсі Полард, гаворка ідзе больш пра выкарыстанне. Калі вы спытаеце аперацыйную сістэму непасрэдна аб адрасе / месцы для захоўвання і памяці, якая знаходзіцца за ёй, ёсць мінімальны памер размеркавання (звычайна на "старонках"), і вы павінны самастойна кіраваць памяццю. Калі вы пытаеце кучу памяці, часта не бывае мінімальнага памеру размеркавання. Ён бярэ на сябе адміністрацыю за вас.

У вас ёсць шмат тыпаў куч, часта праграмнае забеспячэнне прызначае кучы для розных мэтаў і арганізуе іх у залежнасці ад прызначэння. Кожная з гэтых куч адбываецца з асноўнай памяці, але называецца праз API, якія кантралююць доступ да кожнай кучы.

Прыкладам можа служыць куча для доўгачасовага захоўвання дадзеных, сярэднетэрміновага і кароткатэрміновага захоўвання. (Я думаю, што C # і Java падобнага тыпу). Вызначаючы, як вы перадаеце структуры дадзеных для кожнай кучы, вы можаце апрацоўваць адлюстраванне і бясплатныя запыты значна больш эфектыўна. У адваротным выпадку размеркаванне і вызваленне памяці можа стаць сур'ёзнай нагрузкай для высокапрадукцыйнага праграмнага забеспячэння.


адказ 2:

У чым розніца паміж масай памяці і асноўнай памяццю?

Не.

Куча - гэта выкарыстанне памяці, а не тып памяці. Гэтак жа, як партыя - гэта выкарыстанне, код - гэта выкарыстанне ...

Куча, як правіла, з'яўляецца часткай памяці паміж стэкам і праграмным кодам (разам з раздзеламі для дадзеных толькі для чытання і статычных дадзеных).

https: //www.thegeekstuff.com/201 ...