Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Laboratornaya_rabota_5.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
183 Кб
Скачать
☆
  1. Асинхронный режим в Windows.

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

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

Часть 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 байт.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]