Обратный адрес и данные смешаны/сохранены в одном стеке или в двух разных стеках, что имеет место?Сколько стеков использует программа Windows?
ответ
Они смешаны. Однако это зависит от реального языка программирования/компилятора. Я могу представить компилятор, выделяющий пространство для локальной переменной в куче и сохраняя указатель на хранилище в стеке.
В каждом процессе есть один стек на поток. Следовательно, например, процесс с 20 потоками имеет 20 независимых стеков.
Это зависит от компилятора, но архитектура x86 ориентирована на один стек из-за того, что команды push и pop работают с одним указателем стека. Компилятору придется выполнять больше работы, поддерживая несколько стеков.
Как уже указывали другие, это в основном единый смешанный стек. Я просто добавлю одну небольшую деталь: достаточно недавние процессоры также имеют небольшой кэш обратных адресов, который хранится в самом процессоре, и в нем хранятся только обратные адреса, а не другие данные. Это в основном невидимо за пределами более быстрого исполнения, хотя ...
На заметку: каждый поток в Win32 имеет свой собственный стек. Итак, когда вы говорите «Windows-программа» - это зависит от того, сколько потоков оно имеет. (Конечно, потоки создаются/выходят во время выполнения).
- 1. Как проверить, сколько ресурсов использует программа java?
- 2. сколько памяти программа C/C++ использует
- 3. Сколько стеков у нас есть в приложениях
- 4. Windows Stalls Когда моя программа использует Swapfile
- 5. Как определить, сколько памяти использует моя программа .NET?
- 6. Как определить, сколько пространства стека использует встроенная программа
- 7. Каков наилучший способ определить, сколько памяти использует программа Clojure?
- 8. Сколько памяти использует моя программа java в максимуме?
- 9. Программа Python Palindrom с использованием стеков
- 10. Интерпретация стеков в Windows Minidumps
- 11. Сколько памяти использует as.data.table?
- 12. Сколько памяти использует Hashtable?
- 13. Сколько потоков использует curl_multi_exec?
- 14. Есть ли способ отслеживать количество стеков стеков CAS, которые происходят?
- 15. Сколько процессов создает эта программа?
- 16. Сколько процессов эта программа создает
- 17. Сколько раз программа запускалась? C#
- 18. Сколько памяти занимает программа C
- 19. определить, сколько ядер у клиента использует C#
- 20. Сколько процессоров использует контейнер докеров?
- 21. Сколько памяти использует пустой указатель?
- 22. Сколько памяти использует хэш-таблица?
- 23. Сколько памяти использует мой список?
- 24. Сколько памяти использует сервер VNC?
- 25. Сколько памяти делает NSNotificationCenter использует
- 26. Сколько ресурсов использует событие mysql?
- 27. Сколько ядер/потоков использует cublas_sgemm?
- 28. Сколько памяти использует массив Java?
- 29. Какая программа в Windows 10 использует порт 80?
- 30. Как найти, какая программа использует порт 80 в Windows?