phantom-84 писал(а):
Actium, опять в ВАП только вершина стека. Ну, вы экономный!
Решение того, какую часть стека держать в ВАПе, оставлено за рамками примера. Мне хотелось передать саму идею, а не конкретную реализацию.
phantom-84 писал(а):
Как я понял, по поводу возможной физической фрагментации стека страниц мысли вас не посещали.
Я не вижу причин, почему стек должен перестать работать (ну, или работать хуже) при фрагментации физ.памяти.
phantom-84 писал(а):
И что за сарказм был по поводу рекурсивного отображения каталога? Если вы высмеиваете один из самых эффективных способов управления ВАП, это вас характеризует не с лучшей стороны.
Для меня очевидно, что сарказм был обоснован, разве нет?
Edit: Сейчас у меня в тестировании код, который очень похож на приведенный выше. Модель виртуальной памяти содержит участок (8 MB), зарезервированный под стек. Функции allocate_page() и deallocate_page() управляют этим участком.
Да, я прогнал несколько тестов для случая, когда в виртуальной памяти находится лишь страница с верхушкой стека. Падение производительности в среднем меньше 1%. Так что вариант с сервисной страницей совсем даже не плох
(правда, не знаю, можно ли этот случай обобщать).