Довільна помилка, яка виникає під час спотворення одного біта
послідовності даних, зумовлює отримання набору даних з
непарною кількістю одиниць. Контролер диска одразу виявляє, що
результат читання неправильний.
Очевидно, що пошкодженими можуть виявитися і декілька бітів
сектора водночас. У цьому випадку з імовірністю 50% кількість
одиниць у секторі виявиться парною і помилку не виявлять. Для
того, щоб виявити помилку, яка охоплює декілька бітів, набір бітів
парності необхідно розширити. Наприклад, якщо передбачити
8 бітів парності (по одному на один біт кожного байта), то
ймовірність того, що жоден з бітів парності не зможе підтвердити
помилку, оцінюється величиною 1/256. Якщо ж використовувати n
незалежних бітів парності, то ймовірність виникнення
незауваженої помилки становитиме 1/2
n
. Наприклад, якщо
виокремити під контрольну суму 4 байти, то помилка залишиться
невиявленою тільки в одному з 4 млрд випадків.
6.3. Стійкі сховища
Хоча механізм контрольних сум завжди дає змогу виявити
збійні ділянки носія і помилки операцій читання/запису, він не в
змозі забезпечити можливість виправлення помилок. Можлива
ситуація, коли після виконання спроби запису виявляється, що
попередній вміст сектора вже втрачено, а новий зчитати повторно
вже не можна. Уявіть, в яку проблему все це може обернутися,
якщо мова йтиме про зміни залишку на банківському рахунку, коли
виявляються втраченими обидва значення залишку, старе і нове. З
метою уникнення такої ситуації на базі одного чи декількох дисків
можна організувати так зване стійке сховище (stable storage).
Загальна ідея полягає в тому, що сектори диска (дисків) об’єдную-
ться в пари, і кожна пара представляє вміст Х одного сектора. Ми
посилатимемось на сектори пари як на «лівий» (X
L
) і «правий»(X
R
),
і вважатимемо, що обидва сектори містять достатню кількість бітів
парності. Отож вважатимемо, що w відображається вірно, якщо для
сектора X
L
або X
R
функція читання повертає значення w і
«істинний» біт індикації стану.
Алгоритм запису даних у стійке сховище можна представити
так:
56