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

Программа методов доступа

Драйвер

End

Пусть за один раз заполняется одна треть буфера

Вначале программа методов доступа проверяет, доступен ли буфер если доступен, то в буфер заносится первая запись. Идёт извещение процесса о том, что операция ввода вывода завершена. Если буфер занят, то программа методов доступа передаёт управление драйверу (передаёт адрес буфера). Пользовательский процесс продолжает работу.

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

Три основных метода управления буферным пулом:

  1. Режим пересылки.

Системный буфер

Буферный пул

Приложение 1

Рабочая область

Программа методов доступа

Приложение 2

Рабочая область

Рабочая область находится в памяти отводимой процессу. Размер одной рабочей области соответствует размеру одного буфера. Буферный пул обслуживается своим диспетчером.

  1. Режим подстановки.

Приложение 1 (Write)

Буферный пул

Программа методов доступа

Приложение 2 (Write)

После заполнения буфера он передаётся диспетчеру ввода вывода, и программа методов доступа запрашивает следующий буфер.

  1. Режим указания – основан на том, что системный буферный пул является динамическим.

Приложение (write)

Программа методов доступа

Рабочая область

Буферный пул

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

  1. Реализация процесса ввода вывода в среде Windows.

Разделение систем ввода вывода по исполнению:

  • Пользовательский режим

  • Режим операционной системы

В пользовательском режиме имеются два элемента:

  • Среда окружения (входит в пакеты разработки приложений)

  • Динамическая библиотека (.DLL)

В windows имеются следующие уровни подсистемы ввода вывода:

  • сервисы

  • диспетчера ввода вывода

  • драйверы (концептуально разные)

  • HAL (уровень абстракции оборудования)

Существует несколько типов запроса по выполнению операции ввода вывода:

    1. Синхронный - приложение останавливается до получения следующего запроса

    2. Асинхронный – приложение выдаёт запрос на ввод вывод, но не ждёт оповещения об успешности выполнения ввода вывода приложение оповещается только о том, что запрос принят.

    3. Проецируемый запрос на ввод вывод – вместо выполнения операция ввода вывода заменяется на отображение файла, на виртуальное адресное пространство процесса (осуществляется с помощью подкачки страниц)

    4. Прямой запрос на ввод вывод – запрос на ввод вывод, который должен выполняться за одно обращение к устройству ввода вывода (проходит без промежуточных прерываний процесса ввода вывода)

В windows реализованы все три метода буферизации. Режим подстановки или указания реализован через интерфейс ядра. Режим пересылки не использует режим ядра операционной системы.

Синхронный зарос на вывод

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