#stack #ram
#стек #ОЗУ
Вопрос:
Предположим, мы открыли приложение на нашем мобильном устройстве. Насколько мне известно, любое приложение, которое мы открыли, попадает в оперативную память. 1) Будет ли он храниться в стеке?
-
Что определяет, сколько памяти требуется от оперативной памяти?
-
Был ли размер приложения (я имею в виду, что мы видим размер приложения из Play Store при загрузке, например, 13 МБ) и размер, который он занимает в оперативной памяти, одинаковыми?Если нет, то каковы эти 2 размера?
Ответ №1:
- Стек — это имя, присвоенное части памяти. Когда вы запускаете программу, каждая программа получает свое собственное виртуальное адресное пространство, я говорю виртуальное, потому что другие программы тоже могут иметь тот же адрес! Но операционная система заботится о сопоставлении виртуальных адресов разных процессов с реальным адресом в оперативной памяти. Теперь, стек — это пространство в виртуальном адресе, где хранятся локальные переменные. Оно уменьшается от адресного пространства с высоким значением до низкого значения. Я значительно упростил это.
Виртуальная адресация используется для поддержания уровня абстракции, программа не должна получать бесплатный доступ к реальной памяти, ОС должна иметь возможность управлять ею и обеспечивать ее безопасность.
- это зависит от процессов программы, кода, который она запускает. Переменные, которые он создает, функции, которые он вызывает. В зависимости от этого он будет запрашивать столько страниц,
(адресация памяти обрабатывается через страницы или разделы памяти, и страница обычно будет содержать мощность в 2 байта. Таким образом, виртуальная страница 1 может иметь адрес от 0 до 1023, виртуальная страница 2 может иметь адрес от 1024 до 2047, и эта виртуальная страница 2 может быть сопоставлена с реальной страницей 3, которая имеет адрес от 2048 до 3071). Вы можете прочитать больше об этом.
и ОС удовлетворит запрос. Это также будет динамически меняться.
- размер приложения — это размер файла или размер содержимого. Это хранится на диске / хранилище. Это статично, это будет то же самое, обычно состоящее из игровых файлов, изображений и т.д. при запуске программы мы загружаем не все, а только то, что нам нужно. При выполнении программы объем памяти, который ей требуется, отличается от размера кода / файла.
Ответ №2:
- Стек используется для выполнения некоторых команд приложения, таких как вызовы вложенных модулей и вычисления арифметических формул.
- Конкретные алгоритмы и используемые вычисления, графика приложения, размер ввода и вывода … влияют на использование памяти.
- Нет, первое — это размер установочного пакета приложения, а второе — размер оперативной памяти, необходимый для его запуска, и может меняться во время выполнения.