RU/2: Форум. Общение пользователей и разработчиков OS/2 (eCS). : А вот вопрос, однако...


Список сообщений | Написать новое | Ответить на сообщение | Домой Поиск:
Предыдущее сообщение | Следующее сообщение
From : valerius
To : Юрий Пронякин
Subj : А вот вопрос, однако...

> > Адресные пространства конструируются рекурсивно. Для этого служат операции map и grant. Обе эти операции оперируют виртуальными страницами (flexpages или fpages).
>
> Всё, остальное не интересовало.
> Теперь смотри, что получается: flexpage - это страница того, что в архитектуре x86 называется линейным адресным пространством (не путать с "адресным пространством" в терминологии L4). Каждой странице линейного адресного пространства может быть сопоставлена некая физическая страница. А может быть не сопоставлена. (Текущее состояние описывается в таблице трансляции адресов.) При обращении программы к ячейке памяти по адресу, для которого имеется физическая страница, всё проходит безболезненно. А вот при обращении по адресу, для которого физической страницы нет, происходит трап. Трап этот обрабатывается пейджером данного адресного простраства (L4). Но ему предлагаются только map и grant, которыми можно только отдать свою страницу кому-то другому. А как запросить недостающую? По-моему, здесь явно недостаёт чего-то вроде borrow.

Есть и способ, как запросить недостающую -- можно запросить страницу у менеджера памяти согласно его протоколу (например, "sigma0 protocol" --протокол запроса страниц у сервера sigma0. Смысл в том, что сервер посылает запрос к sigma0, в котором указана запрошенная flexpage и ее дополнительные атрибуты. Sigma0 отвечает либо GrantItem'ом (т.е., ответной операцией grant), либо отказом (закодированная "пустая" страница NilPage)). Многие серверы используют или расширяют этот протокол.


Tue 26 Jun 2007 07:19 Mozilla/5.0 (OS/2; U; Warp 4.5; en-US; rv:1.7.10) Gecko/2005




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.