Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Задание6.doc
Скачиваний:
2
Добавлен:
13.11.2019
Размер:
251.9 Кб
Скачать

11

Задание

на лабораторное занятие № 6

Программирование задач по отображению файлов в память

Цель занятия:

1. Закрепить знания механизме проецирования (отображения) файлов в память.

2. Закрепить практические навыки системного программирования.

3. Изучить приемы практического применения функций Win 32 API для реализации механизмов проецирования (отображения) файлов в память при создании приложений для ОС Windows NT.

1. Задание по практическому занятию

1.1. Изучить (по справочному материалу) назначение и применение функций Win 32 API CreateFileMapping, MapViewOfFile, OpenFileMapping, UnmapViewOfFile, CloseHandle для программирования задач проецирования (отображения) файлов в память в операционной системе Windows NT.

1.2. Разработать программный проект с использованием функций Win 32 API CreateFileMapping, MapViewOfFile, OpenFileMapping, UnmapViewOfFile, CloseHandle для программирования задач проецирования (отображения) файлов в память в операционной системе Windows NT.

2. Подготовка к занятию

2.1. Изучить настоящее задание.

2.2. Повторить материал занятий, на которых рассматривались: виртуальная память и применение функций Win 32 API программирования (управления) виртуальной памяти, организация файлового ввода-вывода ОС Windows NT, реализация механизма проецирования файлов в память, повторить методику создания проектов различных типов (различных приложений).

3. Методические указания

3.1. Для программирования механизма проецирования файлов в память необходимо соблюдать следующую последовательность:

создать или открыть объекта ядра “файл” (функция CreateFile);

создать объекта ядра “проекция файла” (функция CreateFileMapping);

выполнить проецирование файловых данных на адресное пространство процесса (функция MapViewOfFile);

отключить файл данных от адресного пространства процесса (функция UnmapViewOfFile);

закрыть объекты “проекция файла” и “файл”(функция CloseHandle).

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

3.2.2. Рекомендуемый алгоритм, положенный в основу работы такой программы, представлен в виде блок-схемы на рис. 2., ключевой особенностью которого является то, что в нем присутствует решение (условие) по которому определяется как будет выполняться программа (процесс) при первом или втором запуске.

3.2.3. При разработке программного проекта, в котором реализована описанная задача, на основе оконного интерфейса рекомендуется использовать модель состояний, представленную на рис. 3.

3.3. При программировании функции CreateFileMapping первый параметр должен (рекомендуется) иметь значение 0xFFFFFFFF, для третьего параметра выбрать значения атрибутов защиты, которые обеспечили выполнение чтение-запись, значение четвертого — 0, значение пятого — 10 Кб.

3.4. При программировании функции MapViewOfFile, второму параметру присвоить такое значение, которое позволило бы выполнение операций чтение-запись, последним трем параметрам рекомендуется задать нулевые значения.

3.5. При программировании функции OpenFileMapping первый параметр желательно установить так, как третий в функции CreateFileMapping, второму присвоить — FALSE.