Разное

Операции ввода вывода: Описание операции ввода-вывода сети — Win32 apps

Описание операции ввода-вывода сети — Win32 apps

Twitter LinkedIn Facebook Адрес электронной почты

  • Статья
  • Чтение занимает 2 мин

На следующем рисунке показан процесс операции ввода-вывода сети в Windows.

Когда приложение вызывает функцию ввода-вывода файла для доступа к файлу на удаленном компьютере, происходят следующие события:

  • Запрос ввода-вывода перехватывается сетевым перенаправителем, который также называется перенаправлением на локальном компьютере. Это показано на предыдущем рисунке сплошной стрелкой между приложением и перенаправителем клиента.
  • Перенаправитель создает пакет данных, содержащий все сведения о запросе, и отправляет его на сервер, на котором находится файл. Это показано на предыдущем рисунке сплошной стрелкой между перенаправителем клиента и перенаправителем сервера.
  • Перенаправитель на сервере получает пакет от клиента, проверяет подлинность доступа к файлу, требуемому запросом ввода-вывода, и при проверке подлинности выполняет запрос от имени клиента. В противном случае он возвращает код ошибки перенаправлению на клиенте. На рисунке выше показана изогнутая сплошная стрелка между перенаправителем сервера и файлом.
  • При выполнении запроса перенаправитель на сервере отправляет все данные, полученные из запроса ввода-вывода, на клиент, а также уведомление об успешном выполнении. На предыдущем рисунке показана пунктирная стрелка между сервером и перенаправителем клиента.
  • Перенаправитель на клиенте получает пакет с сервера и передает данные в пакете приложению вместе с уведомлением об успешном выполнении. На рисунке выше показана пунктирная стрелка между перенаправителем клиента и приложением.

Windows могут использовать различные сетевые протоколы для выполнения операций ввода-вывода сети, включая протокол Microsoft SMB и общие сведения о протоколе CIFS и NFS.

Раздел Описание
Различия в локальных и сетевых ввода-выводах
Различия между локальным вводом-выводом и сетевым вводом-выводом в Windows.
Сетевые перенаправления
Описывает функциональные возможности перенаправителя сети.

Синхронные и асинхронные операции ввода-вывода — Win32 apps

  • Статья
  • Чтение занимает 5 мин

См. также примеры приложений, связанных с вводом-выводом.

Существует два типа синхронизации ввода-вывода: синхронный ввод-вывод и асинхронный ввод-вывод. Асинхронный ввод-вывод также называется перекрывающимся вводом-выводом.

В синхронном файле ввода-вывода поток запускает операцию ввода-вывода и немедленно переходит в состояние ожидания до завершения запроса ввода-вывода. Поток, выполняющий асинхронный ввод-вывод файлов, отправляет запрос ввода-вывода в ядро, вызывая соответствующую функцию. Если запрос принимается ядром, вызывающий поток продолжает обработку другого задания, пока ядро не сигнализирует потоку о завершении операции ввода-вывода. Затем он прерывает текущее задание и обрабатывает данные из операции ввода-вывода по мере необходимости.

Два типа синхронизации показаны на следующем рисунке.

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

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

Если файл или устройство открывается для синхронного ввода-вывода (то есть FILE_FLAG_OVERLAPPED не указан), последующие вызовы функций, таких как WriteFile , могут блокировать выполнение вызывающего потока до тех пор, пока не произойдет одно из следующих событий:

  • Операция ввода-вывода завершается (в этом примере выполняется запись данных).
  • Ошибка ввода-вывода. (Например, канал закрывается с другого конца.)
  • В самом вызове произошла ошибка (например, один или несколько параметров недопустимы).
  • Другой поток в процессе вызывает функцию CancelSynchronousIo с помощью дескриптора потока заблокированного потока, который завершает операции ввода-вывода для этого потока, завершая операцию ввода-вывода.
  • Заблокированный поток завершается системой; Например, сам процесс завершается или другой поток вызывает функцию TerminateThread с помощью дескриптора заблокированного потока. (Как правило, это считается последним средством и не является хорошим дизайном приложений.)

В некоторых случаях эта задержка может быть неприемлемой для проектирования и назначения приложения, поэтому конструкторы приложений должны рассмотреть возможность использования асинхронного ввода-вывода с соответствующими объектами синхронизации потоков, такими как порты завершения ввода-вывода. Дополнительные сведения о синхронизации потоков см. в разделе «Сведения о синхронизации».

Процесс открывает файл для асинхронного ввода-вывода в вызове CreateFile , указав флаг FILE_FLAG_OVERLAPPED в параметре dwFlagsAndAttributes . Если FILE_FLAG_OVERLAPPED не указан, файл открывается для синхронных операций ввода-вывода. При открытии файла для асинхронного ввода-вывода указатель на структуру OVERLAPPED передается в вызов ReadFile и WriteFile. При выполнении синхронных операций ввода-вывода эта структура не требуется в вызовах ReadFile и

WriteFile.

Примечание

Если файл или устройство открывается для асинхронного ввода-вывода, последующие вызовы таких функций, как WriteFile , с помощью которых обычно возвращаются немедленно, но также могут работать синхронно в отношении заблокированного выполнения. Для получения дополнительной информации см. https://support.microsoft.com/kb/156932.

 

Хотя CreateFile — это наиболее распространенная функция для открытия файлов, томов дисков, анонимных каналов и других аналогичных устройств, операции ввода-вывода также можно выполнять с помощью дескриптора типа из других системных объектов, таких как сокет или прием функций.

Дескриптора для объектов каталога получаются путем вызова функции CreateFile с атрибутом FILE_FLAG_BACKUP_SEMANTICS

. Дескрипторы каталогов почти никогда не используются. Приложения резервного копирования являются одним из немногих приложений, которые обычно используют их.

После открытия объекта файла для асинхронного ввода-вывода структура OVERLAPPED должна быть правильно создана, инициализирована и передана в каждый вызов функций, таких как ReadFile и WriteFile. При использовании структуры OVERLAPPED в асинхронных операциях чтения и записи учитывайте следующее:

  • Не отменяйте выделение или изменение структуры OVERLAPPED или буфера данных до завершения всех асинхронных операций ввода-вывода в объекте файла.
  • Если вы объявляете указатель на структуру OVERLAPPED как локальную переменную, не закрывайте локальную функцию до завершения всех асинхронных операций ввода-вывода в объект файла.
    Если локальная функция завершается преждевременно, структура OVERLAPPED выйдет из области, и она будет недоступна для любых функций ReadFile или WriteFile , с которыми она сталкивается за пределами этой функции.

Вы также можете создать событие и поместить дескриптор в структуру OVERLAPPED ; Затем функции ожидания можно использовать для ожидания завершения операции ввода-вывода, ожидая дескриптора события.

Как уже говорилось, при работе с асинхронным дескриптором приложения должны использовать осторожность при определении времени освобождения ресурсов, связанных с указанной операцией ввода-вывода для этого дескриптора. Если дескриптор освобождается преждевременно, ReadFile или WriteFile может неправильно сообщить, что операция ввода-вывода завершена. Кроме того, функция WriteFile иногда возвращает

значение TRUE со значением GetLastErrorERROR_SUCCESS, даже если используется асинхронный дескриптор (который также может возвращать значение FALSE с ERROR_IO_PENDING). Программисты, привыкшие к синхронному проектированию ввода-вывода, обычно освобождают ресурсы буфера данных на этом этапе, так как true и ERROR_SUCCESS указывают на завершение операции. Однако если порты завершения ввода-вывода используются с этим асинхронным дескриптором, пакет завершения также будет отправлен, даже если операция ввода-вывода завершена немедленно. Другими словами, если приложение освобождает ресурсы после того, как WriteFile возвращает значение TRUE с ERROR_SUCCESS в дополнение к подпрограмме порта завершения ввода-вывода, оно будет иметь состояние двойной ошибки. В этом примере рекомендуется разрешить подпрограмме порта завершения отвечать исключительно за все операции освобождения таких ресурсов.

Система не поддерживает указатель на асинхронные дескрипторы файлов и устройств, поддерживающих указатели файлов (т. е. поиск устройств), поэтому положение файла должно передаваться функциям чтения и записи в связанных элементах данных смещения структуры OVERLAPPED . Дополнительные сведения см. в разделе WriteFile и ReadFile.

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

Приложение также может ждать дескриптора файла, чтобы синхронизировать завершение операции ввода-вывода, но это требует крайней осторожности. При каждом запуске операции ввода-вывода операционная система устанавливает дескриптор файла в незначаемое состояние. При каждом завершении операции ввода-вывода операционная система устанавливает дескриптор файла в сигнальное состояние. Таким образом, если приложение запускает две операции ввода-вывода и ожидает дескриптора файла, невозможно определить, какая операция завершается после установки дескриптора в сигнальное состояние. Если приложение должно выполнять несколько асинхронных операций ввода-вывода в одном файле, оно должно ожидать дескриптора событий в конкретной структуре OVERLAPPED для каждой операции ввода-вывода, а не на общем дескрипторове файлов.

Чтобы отменить все ожидающие асинхронные операции ввода-вывода, используйте один из следующих способов:

  • CancelIo — эта функция отменяет только операции, выданные вызывающим потоком для указанного дескриптора файла.
  • CancelIoEx — эта функция отменяет все операции, выданные потоками для указанного дескриптора файла.

Используйте CancelSynchronousIo для отмены ожидающих синхронных операций ввода-вывода.

Функции ReadFileEx и WriteFileEx позволяют приложению указать подпрограмму для выполнения (см. fileIOCompletionRoutine) после завершения асинхронного запроса ввода-вывода.

 

 

404: Страница не найдена

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

Что я могу сделать сейчас?

Если вы впервые посещаете TechTarget, добро пожаловать! Извините за обстоятельства, при которых мы встречаемся. Вот куда вы можете пойти отсюда:

Поиск
  • Пожалуйста, свяжитесь с нами, чтобы сообщить, что эта страница отсутствует, или используйте поле выше, чтобы продолжить поиск
  • Наша страница «О нас» содержит дополнительную информацию о сайте, на котором вы находитесь, WhatIs.com.
  • Посетите нашу домашнюю страницу и просмотрите наши технические темы

Просмотр по категории

Сеть

  • DHCP (протокол динамической конфигурации хоста)

    DHCP (Dynamic Host Configuration Protocol) — это протокол управления сетью, используемый для динамического назначения IP-адреса любому …

  • облачная сеть радиодоступа (C-RAN)

    Облачная сеть радиодоступа (C-RAN) — это централизованная архитектура на основе облачных вычислений для сетей радиодоступа.

  • потоковая телеметрия сети

    Потоковая сетевая телеметрия — это служба сбора данных в режиме реального времени, в которой сетевые устройства, такие как маршрутизаторы, коммутаторы и . ..

Безопасность

  • кража учетных данных

    Кража учетных данных — это тип киберпреступления, связанный с кражей удостоверения личности жертвы.

  • суверенная идентичность

    Самостоятельная суверенная идентификация (SSI) — это модель управления цифровой идентификацией, в которой отдельные лица или предприятия владеют единолично …

  • Сертифицированный специалист по безопасности информационных систем (CISSP) Сертифицированный специалист по безопасности информационных систем

    (CISSP) — это сертификат информационной безопасности, разработанный …

ИТ-директор

  • рассказывание историй о данных

    Рассказывание историй о данных — это процесс перевода анализа данных в понятные термины с целью повлиять на деловое решение…

  • оншорный аутсорсинг (внутренний аутсорсинг)

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

  • FMEA (анализ видов и последствий отказов)

    FMEA (анализ видов и последствий отказов) представляет собой пошаговый подход к сбору сведений о возможных точках отказа в …

HRSoftware

  • самообслуживание сотрудников (ESS)

    Самообслуживание сотрудников (ESS) — это широко используемая технология управления персоналом, которая позволяет сотрудникам выполнять множество связанных с работой …

  • платформа обучения (LXP)

    Платформа обучения (LXP) — это управляемая искусственным интеллектом платформа взаимного обучения, предоставляемая с использованием программного обеспечения как услуги (…

  • Поиск талантов

    Привлечение талантов — это стратегический процесс, который работодатели используют для анализа своих долгосрочных потребностей в талантах в контексте бизнеса …

Обслуживание клиентов

  • виртуальный помощник (помощник ИИ)

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

  • жизненный цикл клиента

    В управлении взаимоотношениями с клиентами (CRM) жизненный цикл клиента — это термин, используемый для описания последовательности шагов, которые проходит клиент…

  • интерактивный голосовой ответ (IVR)

    Интерактивный голосовой ответ (IVR) — это автоматизированная система телефонии, которая взаимодействует с вызывающими абонентами, собирает информацию и маршрутизирует …

Определение ввода/вывода | ПКМаг

(1) См. информационные операции.

(2) ( I ввод/ O вывод) Передача данных между процессором компьютера и периферийным устройством. Каждая передача состоит из операций ввода и вывода; отсюда и термин «ввод-вывод». Передача либо выводится из ЦП и вводится в периферийное устройство, либо выводится из периферийного устройства и вводится в ЦП. См. ввод/вывод ПК.

Реклама

Истории PCMag, которые вам понравятся

{X-html заменен}

Выбор редакции

ЭТО ОПРЕДЕЛЕНИЕ ПРЕДНАЗНАЧЕНО ТОЛЬКО ДЛЯ ЛИЧНОГО ИСПОЛЬЗОВАНИЯ. Любое другое воспроизведение требует разрешения.
Copyright © 1981-2023. The Computer Language(Opens in a new window) Co Inc. Все права защищены.

Информационные бюллетени PCMag

Информационные бюллетени PCMag

Наши лучшие истории в папке «Входящие»

Подпишитесь на PCMag

  • Фейсбук (Открывается в новом окне)
  • Твиттер (Откроется в новом окне)
  • Флипборд (Открывается в новом окне)
  • Гугл (откроется в новом окне)
  • Инстаграм (откроется в новом окне)
  • Pinterest (Открывается в новом окне)

PCMag.com является ведущим авторитетом в области технологий, предоставляющим независимые лабораторные обзоры новейших продуктов и услуг. Наш экспертный отраслевой анализ и практические решения помогут вам принимать более обоснованные решения о покупке и получать больше от технологий.

Как мы тестируем Редакционные принципы

  • (Открывается в новом окне) Логотип Зиффмедиа
  • (Открывается в новом окне) Логотип Аскмен
  • (Открывается в новом окне) Логотип Экстримтек
  • (Открывается в новом окне) Логотип ИНГ
  • (Открывается в новом окне) Логотип Mashable
  • (Открывается в новом окне) Предлагает логотип
  • (Открывается в новом окне) Логотип RetailMeNot
  • (Открывается в новом окне) Логотип Speedtest
  • (Открывается в новом окне) Логотип Спайсворкс

(Открывается в новом окне)

PCMag поддерживает Group Black и ее миссию по увеличению разнообразия голосов в СМИ и прав собственности на СМИ.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *