В. Столлингс - Операционные системы (1114679), страница 106
Текст из файла (страница 106)
В большинстве случае аев зто Времз значительно меньше времени работы без буферизации. Схема одинарного буфера может быть применена и при поточно ориентированном вводе-выводе — построчно или побайтово. Построч б ная уфери зация применима, например, в неинтеллектуальных терминалах гд е пользова тель вводит данные построчно, завершая строки символом возврат та каретки сигнализируя об окончании строки; вывод на терминал происходит таким ж< образом — построчно.
Другим примером может служить строчный принтер. По байтовые операции применяются при использовании терминалов с с рмами, также многих других периферийных устройств, когда каждое нажатие клавипц является значимым. В случае построчного ввода-вывода буфер может быть использован дл я хра нения одной строки. Пользовательский процесс приостанавливается на на времз ввода, ожидая поступления целой строки. При операции вывода пользователь ский процесс может разместить строку в буфере и продолжить работу.
Необхо димость приостановления этого процесса возникает только в том случае, еслт П о требуется вывод второй строки, в то время как первая еще не покинула б фе ри побайтовом вводе-выводе, взаимодействие операционной системы и пользо вательского процесса следует модели производителя/потребителя, рассмотренно1 в главе б, "Параллельные вычисления; взаимоисключения и многозадачность". Устройство ввода-вывода в)Двойнаябуферизация Пользовательский процесс Олерационная системз Устройство ввода-вывода т) Циклинеская буферизация Рис.
11.6. Схемы буферизации ввода-вывода «ввод) Часть 5. Операции ввода-вывода и Похожие рассуждения применимы и к блочно-ориентированному в Если данные передаются на устройство, то сначала они копируются из пол тельского пространства в системный буфер, из которого они в конечном будут записаны на устройство. В этой ситуации выводящий данные проце жет продолжать работу сразу же после передачи данных в системный буфе В книге )КЬШТ971 приводится грубое, но очень показательное сра процессов при использовании одинарной буферизации и при ее отсутс Предположим, что Т вЂ” это время, необходимое для ввода одного блока, для вычислений, выполняющихся между запросами на ввод данных.
Вез ризации общее время выполнения, приходящееся на один блок, будет Т+ С. При использовании одинарной буферизации время выполнения птах1С„Т] + М, где и — время, необходимое для перемещения данных Двойной буфер Улучшить схему одинарной буферизации можно путем использования дв з У системных буферов (рис. 11.б,в). Теперь процесс выполняет передачу данных т один буфер (или считывание из него), в то время как операционная система ос вобождает (или заполняет) другой.
Эта технология известна как двойная буфе ризация или сменный буфер. Время выполнения при блочно-ориентированной передаче данных можно груб» оценить как птах1С, Т3. Таким образом, если С'< Т, то блочно-ориентированное уст ройство может работать с максимальной скоростью. Если же С > Т, то двойная бу Феризация избавляет процесс от необходимости ожидания завершения ввода-вывода В любом случае достигается преимущество перед одинЬрной буферизацией.
Эт< Улучшение буферизации осуществляется за счет увеличения ее сложности. При поточно-ориентированном вводе мы снова обращаемся к двум альтер нативным режимам работы. Необходимость приостановления процесса при по строчном выводе возникает только в том случае, если при выводе очередно1 строки оба буфера не пусты. При побайтовых операциях двойной буфер не имев" никакого преимущества перед одинарным буфером двойной длины.
В обоих слу чаях используется модель производителя/потребителя. Циклический буфер Схема двойного буфера призвана выровнять поток данных между устройст вом вво а- ввода-вывода и процессом. Если нас интересует производительность некото Рого процесса, то в первую очередь требуется, чтобы операции ввода-вывода н< тормозили его работу. двойная буферизация может оказаться не остаточной, ес д процесс часто выполняет ввод или вывод. Зачастую в таком случае решит» проблему помогает наращивание количества буферов. Глава 11. Управление вводам-выводом и дисковое планирование ЬИ При использовании множества буферов, состоящего более чем из двух элементов, схема именуется циклической буферизацией (рис.
11.б,г). В ней каждый индивидуальный буфер представляет собой модуль циклического буфера. Такая буферизация описывается моделью производителя1потребителя с ограниченным буфером, которая рассматривалась в главе б, Параллельные вычисления: взаимоисключения и многозадачность". Использоиание буферизации Буферизация представляет собой метод сглаживания всплесков количества запросов ввода-вывода. Однако никакое количество буферов не позволит устройству ввода-вывода работать наравне с процессом в течение неограниченного времени в ситуации, когда средняя скорость запросов процесса превышает возможности их обработки устройством ввода-вывода. Даже при наличии большого количества буферов в конечном счете все они будут заполнены, и процесс будет вынужден приостановиться в ожидании обработки порции данных устройством ввода-вывода. Однако в многозадачной среде при наличии разнообразных процессов с запросами ввода-вывода и такого же разнообразия устройств буферизация оказывается инструментом, способным увеличить как производительность операционной системы в целом, так и производительность отдельных процессов.
На протяжении последних 30 лет увеличение скорости процессоров и основной памяти осуществляется с большим опережением по сравнению со скоростью доступа к диску. Приблизительно можно сказать, что рост скорости работы процессора и основной памяти на два порядка соответствует росту скорости работы диска на один порядок. В результате скорость обращения к дискам сейчас по меньшей мере на четыре порядка меньше скорости обращения к основной памяти, и разрыв этот, похоже, в обозримом будущем будет только увеличиваться.
Поэтому производительность дисковой системы является жизненно важным вопросом, и множество исследовательских работ направлено на поиск схем ее,!;-''не'-:.:: улучшения. В этом разделе мы рассмотрим некоторые ключевые вопросы и наи-,;"":~1~ более важные подходы в этой области. Поскольку производительность дисков системы тесно связана с вопросами файловой системы, рассмотрение продолж~ ся в главе 12, "'управление файлами". Параметры производительности диска Конкретные детали дисковой операции ввода-вывода зависят от компьюте ной системы, операционной системы, природы канала ввода-вывода и аппар ного обеспечения контроллера диска.
Обобщенная временная диаграмма пере чи данных дисковым устройством ввода-вывода представлена на рис. 11-7. При работе диска его скорость вращения постоянна. Для того чтобы выпо нить чтение или запись, головка должна находиться над искомой дорожкой кроме того — над началом искомого сектора на этой дорожке. Процедура выбо дорожки включает в себя перемещение головки (в системе с подвижными гол хами) или электронный выбор нужной головки (в системе с неподвижными лавками). В системе с подвижными головками на позиционирование головки н дорожкой затрачивается время, известное как время поиска. В любом случае по. сле выбора дорожки контроллер диска ожидает момент, когда начало искомог~ сектора достигнет головки.
Время, необходимое для достижения головки вача лом сектора, известно как время задержки из-за вращения, или время ожида ния вращения. Сумма времен поиска (если таковой выполняется) и времени за держхи из-за вращения составляет время доступа — время„которое требуется для позиционирования для чтения или записи. Как только головка попадает в искомую позицию, выполняется операция чтения или записи, осуществляемая во время движения сектора под головкой, — это и есть непосредственнал передача данных при выполнении операции ввода-вывода.
Задержка иа-аа щжцейия Рис. 11.7, Временнал диаграмма работы диена Кроме этого, существует ряд других задержек, обычно присутствующих в дисковой операции ввода-вывода. Когда процесс выполняет запрос на ввод- вывод, последний должен быть размещен в очереди устройства. После этого выполняется назначение устройства процессу. Если устройство использует каналы ввода-вывода совместно с другими дисками, необходимо дополнительное ожидание доступности канала.
И только после этого осуществляется непосредственный доступ к диску, рассмотренный ранее. В некоторых мейнфреймах используется методика, известная как вращательное позиционное считывание (го$айопа1 розЖопа1 зепвшя — ВРВ), работающая следующим образом. При выполнении команды поиска происходит освобождение канала для обработки других операций ввода-вывода.
После выполнения поиска устройство определяет момент, когда данные окажутся под головкой. Как только этот сектор подходит к головке, устройство пытается восстановить связь с узлом. Если либо контроллер, либо канал заняты другой операцией ввода-вывода, то попытка восстанов. ления связи оказывается неуспешной и диск совершает полный оборот перед по.
вторной попыткой, Это дополнительный элемент, который следует добавить к пол. ному времени ожидания (рис. 11. 7). Время поиска Время поиска представляет собой время, необходимое для перемещения го ловки и нужной дорожке; к сожалению, очень трудно установить этот параметр количественно.
Время поиска состоит из двух ключевых компонентов: элемент начального запуска и времени, необходимого на пересечение дорожек в процесса поиска. К сожалению, время пересечения дорожек не является линейной Функ цией от их количества„но при этом включает время начальной установки ~ принятия решения для каждой пересекаемой дорожки (время, прошедшее посл( установления головки над искомой дорожкой до идентификации последней).