Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
DiVM / OSISP / ОCиСП-Часть2 / Теория / Теория (ОСиСП).doc
Скачиваний:
32
Добавлен:
11.05.2015
Размер:
5.47 Mб
Скачать

Глава 14 Исследование виртуальной памяти 281

Системная информация 281

Программа-пример Syslnfo 283

Статус виртуальной памяти 284

Программа-пример VMStat 285

Определение состояния адресного пространства 286

Функция VMQuery 288

Программа-пример VMMap 290

Глава 15 Использование виртуальной памяти в приложениях 292

Резервирование региона в адресном пространстве 292

Передача памяти зарезервированному региону 294

Резервирование региона с одновременной передачей физической памяти 295

В какой момент региону передают физическую память 295

Возврат физической памяти и освобождение региона 297

В какой момент физическую память возвращают системе 298

Программа-пример VMAIloc 299

Изменение атрибутов защиты 301

Сброс содержимого физической памяти 302

Программа-пример MemReset 303

Механизм Address Windowing Extensions (только Windows 2000) 304

Программа-пример AWE 308

Глава 16 Стек потока 309

Стек потока в Windows 98 313

Функция из библиотеки С/С++ для контроля стека 315

Программа-пример Summation 316

Глава 17 Проецируемые в память файлы 318

Проецирование в память EXE- и DLL-файлов 319

Статические данные не разделяются несколькими экземплярами EXE или DLL 320

Статические данные разделяются несколькими экземплярами EXE или DLL 322

Программа-пример Applnst 327

Файлы данных, проецируемые в память 328

Метод 1: один файл, один буфер 328

Метод 2: два файла, один буфер 329

Метод 3: один файл, два буфера 329

Метод 4: один файл и никаких буферов 330

Использование проецируемых в память файлов 330

Этап1: создание или открытие объекта ядра «файл» 330

Этап 2: создание объекта ядра «проекция файла» 331

Этап 3: проецирование файловых данных на адресное пространство процесса 335

Этап 4: отключение файла данных от адресного пространства процесса 337

Этапы 5 и 6: закрытие объектов «проекция файла» и «файл» 338

Программа-пример FileRev 339

Обработка больших файлов 341

Проецируемые файлы и когерентность 343

Базовый адрес файла, проецируемого в память 344

Особенности проецирования файлов на разных платформах 345

Совместный доступ процессов к данным через механизм проецирования 348

Файлы, проецируемые на физическую память из страничного файла 348

Программа-пример MMFShare 349

Частичная передача физической памяти проецируемым файлам 350

Программа-пример MMFSparse 352

Глава 18 Динамически распределяемая память 356

Стандартная куча процесса 356

Дополнительные кучи в процессе 357

Защита компонентов 357

Более эффективное управление памятью 358

Локальный доступ 359

Исключение издержек, связанных с синхронизацией потоков 359

Быстрое освобождение всей памяти в куче 360

Создание дополнительной кучи 360

Выделение блока памяти из кучи 361

Изменение размера блока 362

Определение размера блока 363

Освобождение блока 363

Уничтожение кучи 364

Использование куч в программах на С++ 364

Другие функции управления кучами 368

Часть IV динамически подключаемые библиотеки 370

Глава 19 dll: основы 370

DLL и адресное пространство процесса 371

Общая картина 373

Создание DLL-модуля 376

Что такое экспорт 377

Создание DLL для использования с другими средствами разработки (отличными от Visual C++) 379

Создание ЕХЕ-модуля 380

Что такое импорт 380

Выполнение ЕХЕ-модуля 382