На главную
Подписка
Новости










Главная / MS-DOS / MS-DOS. РУКОВОДСТВО РАЗРАБОТЧИКА / Глава 7 / Управление логическими адресами Сделать домашней страницей Добавить в избранное Написать писмо

НАЗАД СОДЕРЖАНИЕ ВПЕРЁД

Управление логическими адресами

Спецификация расширенной памяти LIM определяет обработчик как 16-битовую величину (даже когда поддерживается максимум 255 обработчиков) и номер логической страницы как 14-битовое число (логические страницы нумеруются от 0 до 2047). Субадресация объектов внутри логической страницы не имеет отношения к менеджеру расширенной памяти, но является главной заботой разработчика приложения расширенной памяти. В особенности, данные какого типа следует хранить в расширенной памяти и как ими следует управлять?


Общий метод сохранения следа элемента данных в расширенной памяти без обращения к побитным трюкам требует от Вашей программы обеспечивать три 16-битовые переменные на элемент - обработчик, номер страниц и байтовое смещение внутри страницы. Эти накладные расходы делают применение расширенной памяти наиболее пригодным для запоминания структур данных, которые относительно велики по сравнению с указателями, применяемыми для обращения к ним. Мало смысла сохранять 4-байтовый элемент данных в расширенной памяти, если при этом требуется 6-байтовый указатель для доступа к нему.


Еще одним фактором для рассмотрения является динамическое поведение структур данных, которые Вы намереваетесь хранить в расширенной памяти. Поддержание связного списка, состоящего из элементов переменной длины могло бы быть интересным предложением, если он размещается в расширенной памяти. Довольно сложная схема управления памятью потребовалась бы для того, чтобы эффективно уплотнять свободное пространство и обрабатывать переполнение, когда размер списка превысит размер логической страницы.


В действительности, эффективные способы управления расширенной памятью совершенно аналогичны методам поддержания файлового буфера и индексации, применяемым системами управления базами данных. Существующая проблема является проблемой управления элементами данных переменного размера (записи, массивы и т.д.) в ограниченном множестве буферов фиксированного размера (16-Кбайт в случае спецификации расширенной памяти). Неудивительно, что некоторые программы баз данных для персональных компьютеров, совместимых с IBM PC, пользуются преимуществами данного сходства путем хранения индексов файлов или, даже целых файлов, в расширенной памяти, когда она имеется в наличии.


Потребовались бы значительные усилия для использования расширенной памяти в качестве средства управления памятью общего назначения в Ваших программах. Однако, Вы можете эффективно использовать расширенную память во многих обычных задачах сохранения данных при простых специальных подходах. Примеры приложений, перечисленные в конце данной главы показывают, какие относительно несложные методы управления расширенной памятью достаточны для обработки задач управления динамической памятью. Последующие разделы в данной главе посвящены детальному рассмотрению нескольких функций, добавленных в спецификации расширенной памяти LIM 4.0, которые значительно сокращают усилия по программированию, необходимые для работы с кодами и данными в расширенной памяти.


НАЗАД СОДЕРЖАНИЕ ВПЕРЁД

Hosted by uCoz