У меня есть вопрос относительно оперативной памяти, когда я изучал виртуальную память. Когда мы компилируем программу в микроконтроллере, код программы записывается во флэш-память, а переменные сохраняются в ОЗУ, верно? На наших десктопах так же? Я имею в виду, что цель виртуальной памяти не в том, чтобы координировать свои действия с физической памятью (ОЗУ); виртуально расширить физическую память, например, если процессу нужен следующий адрес, который находится за пределами ОЗУ, не изменит ли он страницу (отпустив настоящее и получив страницу из виртуальной памяти)? Сказав это, содержит ли ОЗУ не только переменные, но и программную память запущенного процесса?
Содержит ли оперативная память не только переменные, но и программную память запущенного процесса?
Ответы (2)
Когда программа не выполняется или никогда не вызывается, инструкции находятся во флэш-памяти, но для переменных не выделяется место. программа выполняется.
Только когда программа выполняется, ОС копирует инструкции программы в ОЗУ, а затем выделяет память для переменных.
Следовательно, ДА! .Оперативная память содержит ВСЕ инструкции программы и переменные, но только во время выполнения процесса.
Только если память, необходимая процессу для его переменных, не находится в заразных физических местах, таких как, например, «массив переменных», тогда реализуется виртуальная память.
Оперативная память — это единственное хранилище, к которому ЦП имеет прямой доступ, поэтому по определению в нем должны храниться программные инструкции.
В противном случае ЦП не знал бы, что делать.