• SCT Error Recovery Control

      … или что такое на самом деле 'raid edition' для жёстких дисков



      Немного теории


      Существуют две стратегии поведения НЖМД при обнаружении ошибки:
      • standalone/desktop — пытаться прочитать до последнего. Это ощущается как «тормозящий винт», который всё-таки работает, если это единичный сбой, то «затупило, но прошло», плюс характерный перестук перекалибрующихся головок.
      • raid — отваливаться тут же. Это ощущается как «внезапно была ошибка диска но потом mhdd и т.д. НИЧЕГО НЕ НАШЁЛ ЧТО МНЕ ДЕЛАТЬ».
      Статегии очевидным образом различаются по предназначению — десктоп лучше протупит, но ошибку не выдаст, в рейде есть запасной винт, и терпеть минутные тормоза на чтении никто не имеет никакой возможности. Не получилось прочитать? Читаем с запасных винтов, помечаем весь винт как сбойный, начинаем ресинк, а диск потом отправят в утилизатор. Возможно, незаслуженно, но нечего икать на ответственной должности.

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

      Расшифровка названия


      Возможность управления поведением диска при ошибках называется очень и очень путанно: SCT ERC. Это расшифровывается как SCT Error Recovery Control. SCT в свою очередь название общего протокола SMART Command Transport. SMART в свою очередь расшифровывается как Self-Monitoring, Analysis and Reporting Technology, таким образом, полная расшифровка SCT ERC звучит так: Self-Monitoring, Analysis and Reporting Technology Command Transport Error Recovery Control (выдохнули).
      Читать дальше →
    • Моделирование большого количества взаимодействующих друг с другом частиц

      Рассмотрим ситуацию, когда необходимо обрабатывать столкновения между объектами. Как вы в этом случае поступите? Вероятно, самым простым решением будет проверить каждый объект с каждым другим объектом. И это правильное решение, и все будет замечательно до тех пор пока объектов не много. Как только их станет порядка нескольких тысяч, вы заметите, что все стало как-то медленно работать. А если частиц несколько десятков тысяч или сотен? Тогда все замрет. Вот здесь уже интересно, на какие хитрости и оптимизации вы пойдете, чтобы решить такую проблему.

      Для простоты, будем рассматривать 2D случай, частицы круглые, радиус частиц у всех одинаковый.

      Содержание


      1. Обзор алгоритмов
      1.1. Полный перебор
      1.2. Sweep & Prune
      1.3. Регулярная сеть
      2. Некоторые оптимизации
      2.1. Sweep & Prune
      2.2. Регулярная сеть
      3. Сравнение скорости выполнения
      4. Приложение (программа и исходный код)
      5. Заключение

      Читать дальше →
    • Бесплатные книги

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

        Основы программирования
        Читать дальше →