Cтраница 3
Системы с диспетчером памяти отличаются от систем без него по ряду характеристик. [31]
Микросхемы представляют собой диспетчер памяти, обеспечивающий стыковку КН1811ВМ1 с оперативной памятью емкостью до 4 Мбайт. Для системного режима и режима пользователя перемещение адресов осуществляется постранично с длиной страницы от 64 байт до 8 кбайт с шагом 64 байт. [32]
Я написал свой собственный диспетчер памяти, который подключается к диспетчеру памяти Delphi, используемому по умолчанию. Написанный мною диспетчер следит за выделением и освобождением памяти. Помимо того что он отображает общее значение ( сейчас Delphi также делает это), он может также сохранить детальное описание состояния памяти в файл. [33]
Поскольку библиотека использует диспетчер памяти компании Borland, динамически загружающая ее программа должна делать то же самое. Поэтому необходимо добавить модуль ShareMem в проект примера DynaCall. Как это ни странно, в предыдущих версиях Delphi, если библиотека не использует строчные значения, это было не так. [34]
![]() |
Обработка страничного прерывания с внешним обработчиком страниц. [35] |
Все детали работы диспетчера памяти инкапсулированы в драйвере MMU. Он представляет собой машинозависимую программу и должен переписываться для каждой новой платформы, на которую переносится операционная система. Обработчик страничных прерываний является программой, не зависящей от машины, и содержит большую часть технических средств для страничной подкачки. Политика в основном определяется внешним обработчиком страниц, работающим в пользовательском пространстве. [36]
Для комплексов без диспетчера памяти ( типа СМ-3) виртуальное пространство адресов совпадает с физической памятью. Использование аппаратуры диспетчера памяти ( в СМ-4) позволяет XM / TS-мониторам отображать виртуальное адресное пространство программы на различные области физической памяти. [37]
![]() |
Структура слова памяти. [38] |
Функциональные регистры используются аппаратным диспетчером памяти для преобразования виртуальных адресов в физические. [39]
Таким образом, регистры диспетчера памяти применяются так, что 12К адресного пространства заняты операционной системой, причем ее виртуальные адреса совпадают с физическими. [40]
Модуль DelphiMM определяет библиотеку альтернативного диспетчера памяти, которая будет использована при передаче строк из исполняемой программы в DLL ( динамически подключаемую библиотеку Windows), которые обе были созданы в Delphi. Эта библиотека диспетчера памяти по умолчанию скомпилирована в файл библиотеки Borlndmm. [41]
Указанные преобразования адреса выполняются диспетчером памяти. [42]
Блоки формирования адресов операндов ( диспетчер памяти) состоит из блока сегментации и блока страничной адресации. Физический адрес ячейки памяти формируется последовательно: сначала в пределах сегмента, а затем в пределах страницы. [43]
В базовую часть процессора входят диспетчер памяти для автоматического преобразования 16-разрядных виртуальных адресов программы в 18-разрядные физические адреса ОШ и разбиения памяти на страницы, а также защиты от несанкционированного доступа. [44]
Сейчас мы покажем, как диспетчер памяти вычисляет физические адреса. Поскольку не все программы требуют полной страницы памяти ( равной 4К), поле длины страницы в регистре описания страницы ( PDR) позволяет указывать переменную длину, от 1 до 128 32-словных блоков. Начальный адрес каждой страницы - величина, кратная 32 словам, а ее максимальная длина - 4096 слов. [45]