Накопители на дисковых массивах RAID
В результате изысканий, проведенных различными фирмами, появилось самостоятельное направление разработки накопителей на жестких магнитных дисках — создание накопителей на дисковых массивах. Название RAID (Redundant Array of Independent Disks) переводится как “резервирующие массивы независимых дисков”. Идея RAID проста: несколько дисков, объединенных вместе, могут не только увеличить объем накопителя, но и повысить надежность хранения информации при возросшей скорости передачи данных. Такие системы целесообразно использовать для хранения огромных массивов данных, электронных библиотек и т. п. при совместной работе с мощным сервером (или несколькими серверами).
Массив дисков, будучи подключенным к компьютеру, распознается системой как один диск большой емкости. Отказоустойчивость дискового массива может быть увеличена за счет избыточности хранимой информации.
RAID-массив строится на основе распределения данных между дисками. Пространство каждого диска разбивается на сегменты. Дисковое пространство RAID-массива представляет собой объединение сегментов всех дисков массива.
Архитектура построения и распределения дисковой памяти в устройствах RAID имеет несколько классов (уровней). На сегодняшний день существует девять уровней RAID-массивов, которые различаются по скорости, надежности и стоимости изготовления. Наибольшее распространение получили уровни: нулевой, первый, второй и пятый. В меньшей степени распространены третий, шестой и седьмой уровни.
В системе RAID уровня 0 (часто называемого уровнем чередования данных) информация каждого файла располагается на нескольких дисках. Однако при такой организации высока вероятность отказа. Иногда этот уровень называют дисковым массивом без дополнительной отказоустойчивости.
Дисковые массивы уровня 1 (зеркального дублирования дисков) имеют полный дубликат каждого диска, обеспечивая тем самым надежность хранения информации и быстродействие накопителя, но стоимость таких массивов высока. Достоинства использования массивов RAID 1 состоят в следующем:
скорость записи на зеркальные диски идентична скорости записи на один диск;
скорость чтения данных в два раза выше, чем одного диска;
Высокая скорость восстановления данных вследствие избыточности информации. Восстановление происходит путем копирования данных с одного диска на другой.
К недостаткам можно отнести низкий коэффициент использования дискового пространства (Кисп= 0.5).
Дисковые массивы уровня RAID 2 основаны на использовании алгоритма Хемминга для проверки/восстановления данных. Поток данных разбивается на отдельные слова, каждое слово, в свою очередь, разбивается на биты. Биты последовательно записываются на диски. Для каждого слова данных по алгоритму Хемминга вычисляется значение корректирующего кода. Код Хемминга (назван именем Р. В. Хемминга) является корректирующим кодом, исправляющим одну ошибку в каждом кодовом слове. Вычисленные по алгоритму Хемминга контрольные суммы записываются на отдельный диск и используются для проверки данных при считывании. Достоинствами технологии RAID 2 являются:
оперативное исправление ошибок;
высокая скорость передачи данных, увеличивающаяся с ростом числа дисков в массиве;
возрастание коэффициента использования дискового пространства по мере увеличения числа дисков;
относительно простое конструктивное исполнение.
Пятый уровень ориентирован на активную работу с дисками и обеспечивает максимальную скорость доступа к информации за счет использования независимых дисков данных и равномерного распределения контрольных сумм между дисками. Этот уровень находит наибольшее распространение в тех случаях, когда требуется достаточно высокая скорость передачи большого количества информационных файлов малого объема. Для RAID 5 характерно распределение информации контрольных данных, как минимум, по трем дискам.
Основы алгоритмизации и
Программирования
Алгоритм и его свойства
Понятие алгоритма
Рассмотрим простую жизненную ситуацию: что следует сделать, если нужно привлечь к решению задачи человека, не знакомого с ее решением:
а) выбирают способ (метод, порядок) решения задачи и изучают его во всех подробностях;
б) сообщают исполнителю выбранный метод в абсолютно понятном для него виде;
в) исполнитель решает задачу строго в соответствии с методом.
Углубляясь в суть этого процесса, рассмотрим пристальнее каждый из этапов.
Первый этап этого процесса обычно не вызывает затруднений, так как для большинства встречающихся задач метод решения либо известен из практики, либо подсказывается здравым смыслом, либо описан в литературе. Часто главная трудность — из нескольких методов выбрать такой, который в наибольшей степени отвечал бы некоторым требованиям, например, минимальная трудоемкость, максимальная эффективность и т. д.
Второй этап значительно сложнее. Дело в том, что, если способ (метод) решения задачи описан произвольно, нет гарантии, что он будет верно понят исполнителем. Поэтому описание метода следует выполнять в соответствии с определенными правилами, а именно:
выделить величины, являющиесяисходными для задачи;
разбить процесс решения задачи на такие этапы, которые известны исполнителю и которые он может выполнить однозначно без всяких пояснений;
указать порядок выполнения этапов;
указать признак окончания процесса решения задачи;
указать во всех случаях, что является результатом решения задачи.
Описание метода, выполненное в соответствии с этими правилами, называется алгоритмом решения задачи. Составить такое описание обычно нелегко, но, следуя ему, механически выполняя все указанные в нем этапы в требуемом порядке, исполнитель может всегда правильно решить задачу.
Итак, мы подошли к центральному понятию информатики — алгоритму. Более строго это понятие можно определить так: алгоритм — это метод (способ) решения задачи, записанный по определенным правилам, обеспечивающим однозначность его понимания и механического исполнения при всех значениях исходных данных (из некоторого множества значений). Алгоритм – система понятных и точных указаний, предписывающих исполнителю выполнить определенную последовательность действий, в соответствии с которыми за конечное число шагов достигается решение поставленной задачи.
В Толковом словаре по информатике дано общепринятое определение этого понятия: алгоритм — точное предписание, определяющее вычислительный процесс, ведущий от варьируемых начальных данных к искомому результату.
Примером алгоритма может служить кулинарный рецепт приготовления блюда.
Рассмотрим простейший алгоритм — алгоритм заварки чая:
1. Подготовить исходные величины — чай, воду, чайник, стакан, ложку.
2. Налить в чайник воду.
3. Довести воду до кипения и снять с огня.
4. Всыпать в чайник чай.
5. Довести воду до кипения (но не кипятить), снять с огня.
6. Чай готов. Процесс прекратить.
Свойства алгоритмов
Для углубления понятия алгоритма выделим и раскроем его основные свойства, вытекающие из его определения:
1. Дискретность алгоритма. Свойство алгоритма, означающее, что процесс решения задачи, определяемый алгоритмом, разделен на отдельные элементарные действия (шаги) и, соответственно, алгоритм представляет последовательность указаний, команд, определяющих порядок выполнения шагов процесса.Дискретность алгоритма–пошаговое выполнение алгоритма.
2. Определенность алгоритма. Это свойство означает, что каждая команда алгоритма (предписание, выдаваемое на каждом шаге) должна быть понятна исполнителю, не оставлять места для ее неоднозначного толкования и неопределенного исполнения. Описание алгоритма должно быть таким, чтобы его мог выполнить любой грамотный пользователь.
3. Результативность алгоритма. Свойство алгоритма, состоящее в том, что он всегда приводит к результату через конечное, возможно, очень большое число шагов. Результативность алгоритма – свойство алгоритма заключающееся в том, что решение задачи должно происходить за конечное число шагов и за конечное время. В алгоритме всегда должно быть указано условие его выполнения.
4. Массовость алгоритма. Это свойство заключается в том, что каждый алгоритм, разработанный для решения некоторой задачи, должен быть применим для решения задач этого типа при всех допустимых значениях исходных данных.
Вернемся к первоначальной цели — решению задач на ЭВМ. Оказывается, процесс решения задачи с помощью ЭВМ, в целом, мало чем отличается от только что рассмотренного процесса решения этой же задачи человеком-исполнителем. Так же следует выбирать и изучать метод решения задачи, так же составлять алгоритм и решать задачу строго в соответствии с ним, только решать должна ЭВМ, а не человек.Программный принцип работы–способность действовать по алгоритму, реализованному в виде программы.
Возможность использования ЭВМ вместо человека объясняется соответствием свойств алгоритма и ЭВМ: алгоритм допускает механическое выполнение его для решения задачи, а ЭВМ может механически, не вникая, выполнять операции в заданном порядке. Отличие указанного процесса решения задачи при использовании ЭВМ в том, что, составляя алгоритм, мы разбиваем процесс решения задачи на такие операции, которые в состоянии выполнить ЭВМ.Система команд исполнителя – совокупность команд, которые могут быть выполнены исполнителем.
Другое отличие в том, что составленный алгоритм решения задачи следует перевести на язык, понятный ЭВМ, аналогично тому, как алгоритм, записанный на русском языке, нужно перевести на французский, если исполнителем является француз.
Существует значительное число подобных языков — БЕЙСИК, ФОРТРАН, ПЛ/1, ПАСКАЛЬ и др. Они называются языками программирования. Язык программирования – язык записи алгоритмов для исполнения их на ЭВМ. Запись алгоритма на таком языке называется программой, а процесс перевода алгоритма на указанный язык — программированием. Программа – это алгоритм, представленный в специальной, понятной ЭВМ форме.Программирование – составление программы по заданному алгоритму (кодирование).
Представление алгоритма
В настоящее время используется несколько таких способов.
1. Словесно-формульное описание алгоритма, т. е. описание алгоритма с помощью слов и формул. Это наиболее простой способ. Для его понимания достаточно рассмотреть пример, приведенный ниже. Кстати, кулинарный рецепт — пример такого описания алгоритма.
Задача 4.1.
Составить алгоритм начисления зарплаты согласно следующему правилу: если стаж работы сотрудника менее 5 лет, то зарплата 130 тыс. руб., при стаже работы от 5 до 15 лет — 180 тыс. руб., при стаже свыше 15 лет зарплата повышается с каждым годом на 10 тыс. руб.
Сформулируем задачу в математическом виде: вычислить
где: ZP — зарплата; ST — стаж работы.
Словесно-формульное описание алгоритма решения задачи 4.1:
1. Ввести ST, перейти к п. 2.
2. Если ST<5, то 2Р:=130, перейти к п. 4, иначе — перейти к п. 3.
3. Если STd15, то ZP:=180, перейти к п. 4, иначе ZP:=180+(ST-15)10, перейти к п. 4.
4. Вывести (отпечатать) значение ZP, перейти к п. 5.
5. Вычисления прекратить.
Алгоритм, очевидно, не нуждается в пояснении, поскольку форма записи его очень естественна.
2. Графическое описание алгоритма, т. е. описание с помощью схем алгоритмов. Схема алгоритма представляет собой систему связанных геометрических фигур. Каждая фигура обозначает один этап процесса решения задачи и называется блоком. Порядок выполнения этапов указывается стрелками, соединяющими блоки. В схеме блоки стараются размещать сверху вниз, в порядке их выполнения. Для наглядности операции разного вида изображаются в схеме различными геометрическими фигурами.
Операция присваивания изображается прямоугольником, например:
Операции Ввод и Вывод изображаются параллелограммом, например:
Каждый из трех указанных блоков имеет один вход и один выход.
Операция Условный переход изображается ромбом; блок имеет два выхода — Да и Нет, например:
Если условие выполняется — выходим из блока по выходу Да, если не выполняется — по выходу Нет.
Начало процесса решения задачи обозначается блоком Начало.
Завершение процесса решения задачи обозначается блоком Останов.
Последние два блока изображаются так:
Пример: схема алгоритма решения задачи 4.1 (см. рис. 4.1):
Рис. 4.1. Схема алгоритма решения задачи 4.1.
3. Описание алгоритма на алгоритмическом языке (алгоязыке).