Асинхронный режим в windows.

      Комментарии к записи Асинхронный режим в windows. отключены

Windows позволяет осуществить асинхронный режим ввода/вывода с использованием функций ReadFile и WriteFile или ReadFileEX и WriteFileEX. Первые две функции обеспечивают обмен данными как в обычном (синхронном) режиме, так и в асинхронном режиме. Вторые две функции специально предназначены для работы в асинхронном режиме. Для использования функций ReadFile и WriteFile в асинхронном режиме необходимо при открытии (создании) файла подготовить (заполнить) специальную структуру данных и передать ее адрес этим функциям. В случае вызова этих функций в асинхронном режиме процесс обмена данными только инициируется, а управление немедленно возвращается вызвавшему их блоку. Одним из параметров, передаваемым этим функциям, является количество участвующих в обмене с устройством байт, т. е., фактически размер буфера для обмена с файлом. Операционная система автоматически создает отдельную задачу, обеспечивающую ввод/вывод, а вызвавшая эти функции задача продолжит свое выполнение, не дожидаясь завершения обмена. В случае необходимости ожидания завершения операции обмена, этой, или другой задачей, следует пользоваться соответствующими средствами синхронизации. В качестве этих средств могут быть задействованы или функция WaitForSingleObject или функция GetOverLappedResult, которая обычно используется для проверки результата выполнения асинхронной файловой операции.

Порядок выполнения лабораторной работы.

Часть I

2.1.1 Для выполнения первой части данной лабораторной работы необходимо изучить правила обращения к функциям, перечисленным в пункте 1, и структуры данных, связанные с этими функциями.

2.1.2 Подготовить заранее некоторый файл (например, текстовый), над которым будут выполняться действия в ходе выполнения лабораторной работы.

2.1.3. Подготовить и отформатировать дискету с указанием метки тома;

2.1.4. Разработать приложение, которое реализует следующие функции:

    • Получает полнуюинформацию о выбранном файле. Файл выбирается из каталога с помощьюстандартных диалоговых панелей;
    • Изменяет атрибутывыбранного файла;
    • Получает информацию оналичии дисковых устройств в системе;
    • Получает информацию одискете (см. п. 2.1.3);
    • Изменяет метку томана дискете (см. п. 2.1.3);

2.1.5. Изменяя с помощью разработанного приложения атрибуты выбранного файла, попытаться выполнить над ним различные действия стандартными средствами: текстовым редактором и т. п. Например: установить атрибут только чтение и попытаться его модифицировать. После каждого действия над файлом следить за изменением информации с помощью разработанного приложения.

Часть II

2.2.1. Для выполнения второй части лабораторной работы необходимо изучить правила обращения к функциям, перечисленным в пункте 2, и структуры данных, связанные с этими функциями.

2.2.2. Разработать приложение, которое реализует следующие функции:

    • Создает на сменноммагнитном диске некоторый текстовый файл;
    • Заполняет егонекоторыми (случайными) символами (не менее 1000 Кб) в обычном(синхронном) режиме;
    • После закрытия файлазапускает какую — либо вычислительную процедуру (например, излабораторной работы №1) с большим количеством циклов и отображением ходаее выполнения;
    • После его завершениявыводит на терминал время, потребовавшееся для выполнениявышеперечисленных действий;
    • Уничтожает ранеесозданный файл;
    • Вновь создает его, нодля заполнения в асинхронном режиме;
    • Заполняет егонекоторыми (случайными) символами (не менее 1000 Кб) в асинхронномрежиме;
    • Не дожидаясьзавершения обмена, запускает вышеуказанную вычислительную процедуру;
    • После окончанияоперации обмена выводит на терминал соответствующее сообщение и время,затраченное на эту операцию;
    • После окончаниявычислительной процедуры выводит на терминал соответствующее сообщение ивремя, затраченное на ее выполнения;
    • После завершения всехдействий выводит на терминал время, затраченное на их выполнение.

Перечисленные пункты необходимо выполнить, задавая различные размеры буфера обмена: 512, 1024, 2048 и 4096 байт.

Содержание отчета.

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

Introducing Game Mode for Windows 10