Студопедия

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника



Представление объекта ядра в памяти. Менеджер объектов.

Читайте также:
  1. II. Чрезвычайные ситуации на химически опасных объектах экономики и при использовании химического оружия
  2. IV. Чрезвычайные ситуации на радиационно-опасных объектах
  3. Performance-представление,спектакль
  4. V. Основы чрезвычайных ситуаций, вызванных авариями и катастрофами на пожаро- и взрывоопасных объектах экономики.
  5. Аварии на пожароопасных объектах
  6. Аварии на химически опасных объектах
  7. АГЕНТ/МЕНЕДЖЕР З ТУРИЗМУ
  8. Акт о приемке из ремонта объекта, разрешающий его пуск в эксплуатацию, утверждается в установленном порядке.
  9. Актуальные требования к профессиональной культуре и компетенции менеджера
  10. Анализ динамики и структуры объекта исследования

 

Каждый объект ядра — на самом деле просто блок памяти, выделенный ядром и доступный только ему. Этот блок представляет собой структуру данных, в элементах которой содержится информация об объекте. Объекты хранятся в нестраничных пулах (не выгружаются на диск). Объекты определенных типов хранятся вместе. Объекты ядра имеют теги (например файл имеет тег «File»).

HANDLE_TABLE – таблица дескрипторов объектов ядра, расположена в страничном пуле. Каждый элемент этой таблицы – HANDLE_TABLE_ENTRY.

Структура Memory Descriptor List

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

Кроме того, буфер, описанный с помощью MDL, может быть использован для операций DMA – механизм, позволяющий устройством передавать данные в физическую память без участия процессора. Для этого физический адрес внутри MDL должен быть транслирован в логический адрес (имеющий смысл только для данного устройства DMA) с помощью функции loMapTransfer().

Интересно отметить следующий момент. MDL предназначен для описания буфера данных, непрерывного в виртуальной памяти. Однако страницы физической памяти, список которых собственно и содержит MDL, могут располагаться в памяти произвольным образом. Это дает возможность «собирать» непрерывный в виртуальной памяти буфер из различных фрагментов физической памяти без копирования памяти.

 


Дата добавления: 2015-01-29; просмотров: 9; Нарушение авторских прав


<== предыдущая лекция | следующая лекция ==>
Блокирование страниц в памяти. Списки описателей памяти (MDL) и их использование | Структура драйвера операционной системы Windows. Точки входа в драйвер.
lektsii.com - Лекции.Ком - 2014-2019 год. (0.013 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты