Линейка Windows не являются RTOS. Однако есть одно но. Пишем тестовую программу Код (Text): int _tmain(int argc, _TCHAR* argv[]) { printf("I am work"); return 0; } Создаем bat файл Код (Text): :loop tester.exe goto loop; И запускаем. Память начинает расти с невероятное скоростью. Так что ОС не пытается освобождать память от старых процессов. А только выделяет для новых, обычная логика RTOS. Вопрос пожалуй в следующем, кто счиает это нормальным??? И на какой версии это еще повторяется может кто то пробывал.(Моя виртуалка просто останавливалась с sp2 и sp3).
)))Не просто винда не успевает освобождать память. Там вропде это в background работает. А вот cmd берет все процессорное время(даже на 4 ядрах).....
Вру, кэш память расходуется, когда запускаем разные проги. Попробовал сейчас на висте, память не расходуется. Вообще это похоже на утечку памяти, не думаю что это имеет место в XP.
1. Попробуй в конец кода вместо return 0; поставить ExitProcess(0); 2. Запускать tester.exe как while(TRUE) CreateProcess(....); из другого exe, а не скриптового cmd. В любом случае это не имеет отношения к XP, т.к. память она высвобождает по завершении процесса в любом случае, очищая списки VAD и прочее.
Ключевое слово : виртуалка. Единственное что немного тормозит эту задачку в реальной ОС - вывод на консоль. В виртуалке все происходит гораздо быстрее и ОС не успевает освободить память от постоянно запускаемых процессов. При случае повторю именно в виртуалке.