В. Столлингс - Операционные системы (1114679), страница 110
Текст из файла (страница 110)
Любой запрос ввода-вывода включает параллельную передачу данных из всех дисков массива. Особенно заметна повышенная производительность при передаче боль-.:::. шого объема данных. Однако за один раз может быть выполнен только один запрос ввода-вывода, поэтому в ориентированной на транзакции среде производительность падает.
ВАШ 4 ВАП1-уровни с 4-го по 6-й используют технологию независимого доступа. В массиве с независимым доступом каждый диск функционирует независимо от других, так что отдельные запросы ввода-вывода могут выполняться параллельно. Соответственно, массивы с независимым доступом могут использоваться в тех приложе- ~ Здесь Е обозначает оаерацию "исключающее или". — Прим. перев, ниях, которым необходима высокая частота запросов ввода-вывода, и менее пригод ны для приложений, требующих большой скорости передачи данных.
Как и в других ВАЛА-схемах, здесь применяется расщепление данных на полосы. В схемах ВАШ 4 — 6 полосы сравнительно большие В ВА1П 4 по соот ветствующим полосам на каждом диске данных вычисляется полоса четности, хранящаяся на дополнительном избыточном диске. В схеме ВА1В 4 имеются дополнительные расходы при выполнении опера ции записи небольшого блока данных. При каждой записи программное обеспе чение управления массивом должно обновить не только пользовательские дан ные, но и соответствующие биты четности.
Рассмотрим массив, состоящий из пяти дисков, в котором устройства ХΠ— ХЗ содержат данные, а Х4 представляет собой диск четности. Предположим, что выполняется запись, которая включает только полосу на диске Х1. Изначально для каждого 1-го бита выполняется следующее соотношение: Х4 (1) = ХЗ(1) Е Х2(1) Е Х1(1) Е ХО(1) После обновления (измененные биты отмечены штрихом) получаем: х4'(-) = хз ехг ех1' ехО(.) =ХЗ ю' ЕХ2 1 ЕХ1' ЕХО(1)ЕХ1(1)ЕХ1(1) = Х4 1 ЕХ1 1 ЕХ1' Итак, для вычисления новой четности программное обеспечение управления массивом должно прочитать старую пользовательскую полосу и старую полосу четности. После этого программное обеспечение может обновить эти две полосы новыми данными и вновь рассчитанной четностью.
Таким образом, запись каждой полосы включает два чтения и две записи. При большом размере записи ввода-вывода, которая включает полосы на всех дисковых накопителях, четкость легко вычисляется путем расчета с использованием только новых битов данных. Таким образом, информация на диске четности может быть обновлена параллельно с обновлением пользовательских данных, без лишних операций чтения и записи. Тем не менее в любом случае каждая операция записи должна обновлять информацию на диске четности, что может стать узким местом системы. ИА10 5 ВА1П 5 организован подобно ВА10 4, но с тем отличием, что ВАП) б распределяет полосы четности по всем дискам. Распространенное размещение полос четности — в соответствии с циклической схемой, как показано на рис.
11.9,е. Распределение полос четности по всем накопителям позволяет избежать снижения производительности, связанного с операциями ввода-вывода с одним диском четности (с чем мы столкнулись при рассмотрении ВАП) 4). Схема ВАП) 6 была представлена в работе 1КАТЕ89) разработчиками из Веркли. В этой схеме выполняются два различных расчета четности, результаты которых хранятся в разных блоках на разных дисках. Поэтому массивы Касть 5. Операции ввода-вывода и фвйлы' валява 11.
управление вводом-выводом и дисковое планирование 577 ВА1П 6 с объемом пользовательских данных, требующих Х дисков, состоят из Я+2 дисков. На рис. 11.9,ж показана схема ВАП) 6. На этом рисунке Р и Ц пред и п ставляют результат и ы рименения двух различных алгоритмов проверки данных. Один пера ' . ", 04 и из них — применение опера перации "исключающего или", используемой в ВА1 и 5 гой представляет собой более сложную схему вычислений. Это дает ВА11ю, друго пре б в х исков массива. возможност о ть восстановления данных даже в случае сбоя двух дис . Преимущество ВАП) 6 состоит в том что эта схема обеспечивает чрезвы- Ф высокую надежность хранения данных. Потери данных возможны лишь чаино высо при одновременном выходе из строя трех дисков массива.
дру " ро ВАП) 6 высокие накладные расходы при операциях записи, поскольку каждая запись затрагивает два блока четности. 11.7ЪискОВЫЙ кэш ° 1 В разделе . и прило л 1.6 и п иложении А к главе 1, "Обзор компьютерных систем, мы рассмотрели принц ипы работы кэш-памяти. Термин кэие-память обычно и именяется к памяти, которая меньше и быстрее основной памяти и которая располагается между основной памятью и процессором. Кэ - у . Кэш-память меньшает среднее время доступа к памяти благодаря принципу локализации. Этот же принцип может быть применен и к дисковой памяти. Кэш диска представляет со о уфер в о б й б фе сновной памяти для содержимого некоторых секторов диска.
Если запрос ввода-вывода обращается к отдельному сектору, то сначала производится проверка на наличие этого сектора в кэше. Если сектор имеется в кэше, то запрос удовлетворяется из кэша. Б противном случае запрошенный сектор считывается в кэш с ш с диска. Если блок данных потребовался для выполнения одиночного запроса ввода-вывода, о, д т исхо я из принципа локализации, весьма вероятно, что он вновь потребуется в ближайшем будущем.
Вопросы разработки Некоторые вопросы разработки представляют о собый инте с. Первый из ре них связан с тем, что если запрос ввода-вывода удо р влетво яется кэшем, то данные из каша должны быть переданы запросившему р ц у. п о есс . Это может быть выполнено как путем пересылки блока данных в осно зной памяти из кэша в область пользовательского процесса, так и посредством сов ом совместного использования памяти каша (в этом случае запросившему процессу . о можно передать указатель на соответствующий слот кэша).
Последний подход э о ре экономит в мя, использовавшееся для пересылки данных из памяти в память, и р р ь и аз ешает совместный доступ к кэшу другим процессам (в соответствии с ра тре ассмо иной в главе б, "Параллельные вычисления: взаимоисключения и м о ад ногоз ачность", моделью читателей/писателей). Второй вопрос связан со стратегией замещения. Ко д . Ког а в кэш поступает новый сектор, он должен заменить один из содержащ х и ся в каше секторов. Эта проблема аналогична рассмотренной в главе 8, Виртуал "Б т альная память", проблеме замещения страниц.
При изучении этого вопроса был ро р оп бован яд алгоритмов, и в ре зультате наиболее подходящим (и, соответственно, р р р асп ост аненным) окаамен об а еннй зэлся алгоритм замен амены блока к которому дольше всего не было о ращ У Яасть 5.: Операции вводе-вывода и файлы (1еаз1 гесеп11у изей — 1КС). Логически кэш состоит из стека блоков, причем н вершине стека располагается блок, к которому было последнее обращение.
П р' обращении к блоку в кэше он перемещается из текущей позиции на вершин стека. Если блок поступает с диска, то самый нижний блок стека удаляется ~~~Э вновь поступивший блок размещается на вершине стека. Естественно, необходв мости в реальном перемещении блоков по основной памяти нет — с кэшем ме жет быть связан стек указателей на блоки. Другой возможностью является алгоритм замены тех блоков, обращение которым происходит наименее часто (1еаз(, Хгес~иеп(1у цэей — 1Г(1).
Этот алр~ ритм может быть реализован посредством назначения счетчика каждому блок кэша. При поступлении блока его счетчику присваивается значение 1; с кажды новым обращением значение счетчика увеличивается на 1. При необходимост замены выбирается блок с наименьшим значением счетчика. Может показатьсю что 1ГУ является более подходящей по сравнению с 1.ВП стратегией, поскольк 1Г(1 использует более существенную информацию о блоках. Однако у простог 1.ГУ-алгоритма имеется следующая проблема.
Может возникнуть ситуация, кс гда обращение к некоторым блокам выполняется относительно редко, но зат при обращении интервалы между повторными обращениями оказываются кс роткими вследствие локализации. Тем самым значение счетчика резко увеличь вается и не отражает реальной вероятности использования данного блока в блю жайшее время. Так эффект локализации может стать причиной того, что алг~ ритм 1Г(5 произведет неверный выбор замещаемого блока, Для преодоления этого недостатка алгоритма ЬГУ предлагается технологию известная как замещение, основанное на частоте обращений (ВОВ1901.
Для ясн~ сти рассмотрим упрощенную версию, представленную на рис. 11.11,а. Блоки лю гически организованы в виде стека, как в алгоритме 1.В11. Ряд блоков в верхне части стека отделяется как новый раздел. При успешном обращении к кэшу с< ответствующий блок перемещается на вершину стека. Если блок к атому врем~ ни уже находился в новом разделе, то его счетчик обращений не увеличиваетсю в противном случае его значение увеличивается на 1. Из-за того что размер н~ вого раздела достаточно большой, счетчики блоков, к которым происходит мн< гократное обращение за короткий период времени, останутся неизменными. Е~ ли же выполняется обращение к блоку, отсутствующему в каше, для замещени выбирается блок с наименьшим значением счетчика, расположенный вне новою раздела; в случае наличия нескольких таких блоков выбирается тот, к которои дольше всего не было обращений.
Авторы сообщают, что такая стратегия приводит лишь к незначительном улучшению стратегии 1.В11. Проблема заключается в следующем. 1. При отсутствии блока в кэше блок загружается в новый раздел со значен~ ем счетчика„равным 1. 2. Значение счетчика остается равным 1 все время пребывания блока в ново разделе. 3. Б конечном счете блоки покидают новый раздел, значение счетчика п1 этом остается равным 1 4. Если к такому блоку не происходит обращения за достаточно коротка промежуток времени, то вполне вероятно, что он будет заменен„ посколью значение его счетчика — наименьшее среди всех блоков вне нового разделю Глава 11.