Модераторы: Kagor
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Организация стека 
:(
    Опции темы
Idsa
Дата 16.5.2007, 19:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2086
Регистрация: 5.12.2006
Где: Томск

Репутация: нет
Всего: 62



Не знал, в какой подфорум лучше разместить топик... Больше всего подошел бы общий раздел по программированию... но такого нет :(.
Вопрос в следующем. Современные компиляторы позволяют размещать переменные в стеке и куче. В связи с этим у меня возникает 2 вопроса:

1. Под стэком понимается стэк в процессоре (в который делаем push и pop на асме smile ), или это некая область оперативной памяти, выделяемая для каждого процесса. Вопрос, наверное, звучит глупо... но попытаюсь пояснить, откуда он возник. В досовых Си и Паскале ограничение в 64 кбайта на стэк не звучало угрожающе (сегмент равен 16 бит). Однако в мануалах ни по Java, ни по C# я ничего не видел про ограничения стэка. А ведь в процессоре стек по-прежнему занимает очень умеренные размеры. Если же используется не процессорный стек, то откуда тогда преимущества в скорости стэка перед кучей. Все эти вопросы противоречивы, в связи с чем не приводят меня к правильному выводу :(.

2. Куча - это вся свободная область ОП, или под каждую программу выделяется только определенная часть?


--------------------
Мой блог: alexidsa.blogspot.com
PM MAIL ICQ   Вверх
Fazil6
Дата 16.5.2007, 20:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1653
Регистрация: 3.5.2006
Где: Минск

Репутация: нет
Всего: 60



Цитата(Idsa @  16.5.2007,  19:56 Найти цитируемый пост)
Под стэком понимается стэк в процессоре (в который делаем push и pop на асме  ), или это некая область оперативной памяти, выделяемая для каждого процесса.

это оперативка. Процессы имеют свои стеки.
Цитата(Idsa @  16.5.2007,  19:56 Найти цитируемый пост)
Куча - это вся свободная область ОП, или под каждую программу выделяется только определенная часть?
У каждого процесса своя куча.


PM MAIL   Вверх
Idsa
Дата 16.5.2007, 21:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2086
Регистрация: 5.12.2006
Где: Томск

Репутация: нет
Всего: 62



Цитата(Fazil6 @  16.5.2007,  20:46 Найти цитируемый пост)
это оперативка. Процессы имеют свои стеки.

Значит преимущество в скорости только засчет упорядоченного размещения данных (в отличие от кучи)?

А процессорный стек регистров используется для чего-нибудь? Ну хотя бы для передачи параметров подрограммам? Вообще хотелось бы узнать распределение обязанностей между стеком регистров и стеком процесса.

Цитата(Fazil6 @  16.5.2007,  20:46 Найти цитируемый пост)
У каждого процесса своя куча.

А в каких пределах варьируются ее размеры (и размеры стека тоже)?

Это сообщение отредактировал(а) Idsa - 16.5.2007, 21:19


--------------------
Мой блог: alexidsa.blogspot.com
PM MAIL ICQ   Вверх
Fazil6
Дата 16.5.2007, 23:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1653
Регистрация: 3.5.2006
Где: Минск

Репутация: нет
Всего: 60



Цитата(Idsa @  16.5.2007,  21:11 Найти цитируемый пост)
А процессорный стек регистров используется для чего-нибудь? Ну хотя бы для передачи параметров подрограммам?

да используется.
почитай про __fastcall и спецификатор класса памяти register

Цитата(Idsa @  16.5.2007,  21:11 Найти цитируемый пост)
А в каких пределах варьируются ее размеры (и размеры стека тоже)?

http://www.i2r.ru/static/565/out_18843.shtml


PM MAIL   Вверх
Azzdorf
  Дата 11.7.2007, 13:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 190
Регистрация: 29.3.2007

Репутация: нет
Всего: нет



Насколько я понял Куча - для тела программы - Стек для определённой информации. А как проходит очистка памяти - Стек умирает вместе с методом, под который был выделен, а куча когда выгружаеться програма????
--------------------
Иногда шаг вперед - это результат хорошего пинка под зад.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по железу | Следующая тема »


 




[ Время генерации скрипта: 0.0453 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.