Спулинг подходит для символьных и блочных устройств ввода-вывода

Если каждому вычислительному процессу представляется виртуальное устройство(принтер), то поток символов идет сначала в спул-файл.

Системные процессы, которые управляют спул-файлом – спулеры чтения(Spool-reader) или спулеры записи (Spool-writer).

Локальный спул-файл – файл на компьютере, к которому присоеденен принтер.

Сетевой принтер – некоторый локальный принтер, предоставленный сети. Компьютер, предоставляющий его – принт-сервер.

Буферизированный ввод-вывод:

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

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

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

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

Двойная буферизация – схема буферизированного ввода-вывода, предусматривающая создание двух буферов внутри ядра.

Циклицеская буферизация – схема из множества буферов (более 2).

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

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

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

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

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

Асинхронный ввод-вывод характерен для большинства мультипрограммных ОС.

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

Аппаратура ввода-вывода – совокупность аппаратных процессоров, на которых выполняются так называемые внешние процессы.

На магнитном диске память организована блоками. При вращении диска магнитная головка, зафиксированная в одном положении образует дорожку. Блоки данных на дорожках – сектора. Размер сектора – 512 байт. Цилиндры – группы дорожек одного радиуса, расположенные на поверхностях магнитных дисков.

Деление дискового пространства на несколько частей-разделов (partitions) позволяет организовать на одном физическом устройстве несколько логических дисков.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: