Главная страница  Межпроцессное взаимодействие (состязание) 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 [ 154 ] 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187

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


узлы располагаются в начале диска

Диск разделен на группы цилиндров, каждая со своими собственными блоками и i-узлами

Группа цилиндров


Рис. 5.17. а - i-узлы, размещенные в начале диска; б - диск, разделенный на группы цилиндров, каждая со своими собственными блоками и i-узлами

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

5.3.6. Файловые системы

с журнальной структурой, LFS

Изменения в технологии оказывают влияние на современные файловые системы. В частности, центральные процессоры становятся все быстрее, емкость дисков увеличивается, цена их снижается (но скорость увеличивается не столь значительно), а размеры оперативной памяти растут экспоненциально. Единственным параметром, не меняющимся столь стремительно, является время поиска цилиндра диска. В результате во многих файловых системах появляется узкое место. В университете Беркли были проведены исследования, направленные на снижение остроты этой проблемы при помощи создания совершенно новой файловой системы LPS (Log-structured File System - файловая система с журналь-



ной структурой). В этом разделе мы кратко опишем, как работает система LFS. Дополнительные сведения можно узнать в [65].

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

Ситуация усложняется тем, что в большинстве файловых систем операции записи выполняются над очень маленькими блоками данных. Такие операции записи оказываются крайне неэффективными, поскольку самой физической записи, занимающей 50 мкс, часто предшествует поиск цилиндра в течение 10 мс и 6-миллисекундная задержка вращения. При таких параметрах эффективность диска падает до 1 %.

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

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

При такой организации г-узлы существуют и имеют ту же структуру, что и в UNIX, но теперь они, вместо того чтобы располагаться в фиксированной позиции на диске, рассредоточены по всему журналу. Тем не менее, когда программа находит г-узел, определение расположения блоков выполняется обычным способом. Конечно, здесь обнаружить г-узел намного сложнее, так как его адрес не определяется по его номеру, как это было в UNIX. Чтобы можно было найти г-узел, создается массив г-узлов, индексированный по г-номерам. Элемент г массива указывает на г-узел i на диске. Массив хранится на диске, но также содержится и в кэше, а это означает, что наиболее часто востребуемые части этого массива постоянно находятся в оперативной памяти.



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

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

Для решения проблемы повторного использования блоков в старых сегментах в файловую систему LPS встроена нить чистильщика, в обязанности которого входит постоянное сканирование журнала с целью сделать последний более компактным. Чистильщик начинает с того, что считывает содержимое самого первого сегмента журнала с целью определить, какие г-узлы и файлы в нем находятся. Затем он смотрит в текущий массив г-узлов, проверяя, являются ли г-узлы все еще текущими, и используются ли все еще блоки файлов. Если нет, эта информация отбрасывается, а используемые г-узлы и блоки считываются в память, чтобы записать их в следующий сегмент. Исходный сегмент помечается как свободный, поэтому журнал может помещать в него новые данные. Таким образом чистильщик двигается по журналу, удаляя старые сегменты с диска и помещая всю имеющую ценность информацию в память для перезаписи в следующий сегмент. В результате диск представляет собой большой кольцевой буфер, в котором пишущий поток добавляет новые сегменты с одного конца, а чистящий процесс удаляет старые сегменты с другого.

Учет расположения блоков здесь весьма нетривиален, поскольку, когда блок файла записывается в новый сегмент, г-узел файла (где-то в журнале) должен быть найден, обновлен и помещен в буфер для записи в следующий сегмент. При этом массив г-узлов также должен быть обновлен, чтобы элемент массива указывал на новую копию. Тем не менее администрирование такой системы вполне возможно, а увеличение производительности показывает, что все эти сложности были не напрасны. Результаты измерений показали, что файловая система с журнальной структурой (LPS) превосходит файловую систему UNIX при множестве небольших записей на порядок, а при чтении и больших записях обладает сходной или лучшей производительностью.

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

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



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 [ 154 ] 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187

© 2000 - 2018 ULTRASONEX-AMFODENT.RU.
Копирование материалов разрешено исключительно при условии цититирования.