Особенностью в
том, что размер стека составляет 1 Мб + 128 Кб. Структура:
Функции компилятора для контроля стека.
В случае DOS при компиляции программ нужно было включать
дополнительный программный код для контроля размера стека. В Windows 95, 98, NT этой
проблемы нет, но возникает проблема контроля за выделением страниц физической памяти.
Например,
VOID SomeFunc(…)
{
int Values[4000];
Values[0]=0;
}
Физическая память
Физическая память
Зарезервированная страница
Зарезервированная страница
переменная локальная
четыре страницы
При создании стека резервируется 16000 байт. Физическая память выделена только
двум страницам, поэтому при компиляции программы вставляется дополнительный код. Этот
дополнительный код работает по следующему алгоритму: