RU/2: Форум. Общение пользователей и разработчиков OS/2 (eCS). : Ответить на сообщение
Имя:
e-mail:
FIDO:
Home page:
сохранить данные о вас
Тема:
> > Я знаю, как работает защитная страницы, вопрос был "почему стек просто не коммитят?". > > Чтобы память зря не тратить. Незакоммиченая страница отнимает кусочек адресного пространства _процесса_. Закоммиченая - отнимает физическую память (ну или кусок свопфайла) у _системы_. > > > > > Нету дальних указателей. Нету. Это _малая_ модель. > > > Специально для тебя абисняю: _малая_ модель - это когда _и_стек _и_данные лежат в _одном_ сегменте. Вот тогда можно в основном обходиться near указателями. Раздельные сегменты стека и данных - это compact или large - в зависимости от количества сегментов кода. > > Объснение принято, но дальних указателей всё равно нет :) > > Блин, я устал уже просить показать на пальцах, как функция, получающая на входе near указатель на некий буфер будет определять, где именно этот буфер лежит - в стеке или в сегменте данных? Как ей к нему обращаться - через SS или через DS? > Вот к примеру классический memset(ptr, 0, sizeof(struct)). Ну получил он 32-битный near указатель ptr. Какую память он должен обнулять - SS:ptr или DS:ptr ? >
_, _, _, _, _ _ _,_
(_ | / \ |\ | | |_/
, ) | , \ / | \| | | \
~ ~~~ ~ ~ ~ ~ ~ ~
Programmed by
Dmitri Maximovich
,
Dmitry I. Platonoff
,
Eugen Kuleshov
.
25.09.99 (c) 1999,
RU/2
. All rights reserved.
Rewritten by
Dmitry Ban
. All rights ignored.