Для обхода сбоев использую следующие методы:
1. Контроль записи используется следующие методы: считается и сверяется с тем, что записали. При несовпадении - еще попытки и при неуспехе генерируется ошибка - эхо - контроль.
2. Организация дубль - блоков - все данные записываются по два раза, при считывании - если не удалось прочитать, то считывается с дубль блока.
3. Контроль продольной четности - каждому байту добавляют дополнительный девятый бит и он выставляется в единицу, если установить единичный бит в байте нечетно, или наоборот.
4. Контроль поперечной четности: все данные разделены на группы байт, и к каждой гурппе добавляется доп. байт, и - ый бит которого выставлен в единицу, если количество итых битов в группе байтов нечетно. 0 - в противном случае.
5. Контроль продольно поперечной четности: к каждому байту добавляется дополнительный девятый бит, и все данные разбиты на группы байт, и в к группе добавляется дополнительный байт.
При потере нескольких бит можно с номером контрольных битов и байтов восстановить исходный вид.
Для контроля ошибок еще используют метод контрольных сумм, который заключается в разбиении данных на группы и добавлении к каждой некоторой контрольной суммы.
Управление устройствами.
Большинство устройств общается с ОС с помощью контроллеров устройств. Они управляют устройствами (ДА ЛАДНО?), а общение системы и контроллера происходит с помощью микрокода.
Например, чтобы принудить диск читать какие - либо данные контроллеру диска передается инфо. о месте хранения данных (номер диска, дорожка, сектор) и действие, которое нужно совершить (чтение/запись). Это и есть микрокод.
Каждое устройство снабжено портами ввода - вывода, с помощью которых инфо. и передается. Еще одной характеристикой устройства является номер прерывания (IRQ), которое возникает по окончанию операции вводы - вывода.
После окончания операции ОС получает управление и забирает данные с помощью портов ввода - вывода.
При наличии у устройства поддержки DMA процессор для получения данных не используется, а контроллер устройства после окончания операции кладет полученные данные в оп. память с указанием адреса, а процессор при этом выполняет другие задачи.
Файловая система.
Файл - компонент области данных, хранящийся во внешней памяти. В задачи файловой системы входит хранение файлов во внеш. памяти, а так же предоставление пользователю средств "общения" с ними.
При запросе пользователем на запись/чтение из файла, файл. система определяет местоположение файла, после этого обращается к драйверу (часть ОС, управляющая этим контроллером устройства с помощью микрокода) нужного устройства, который генерирует микрокод для контроллера устройства, после чего на физ. уровне выдает команду устройству и по окончании операции драйвер забирает прочит. данные от контроллера с ком. портов или DMA и передает ОС, которая отдает их пользователю.
Буферизация.
При чтении или записи данных следующая операция с большой вероятностью будет обращаться к данным, расположенным рядом с теми, что расположены рядом прочитанными/записанными.
В силу этого ОС целесообразно читать/записывать большим куском данных(а не маленькими), для этого существует буфер чтения/записи.
В буфер записывается большой фрагмент данных, а по мере поступления запросов от пользователей реальное чтение не происходит, данные просто возвращаются из буфера.
Буфер зап. и буфер чтен. необходимо синхронизировать. Это буфер рабочей области, куда поочередно записывает один из них. Это циклический буфер.
Планирование доступа к магнитным дискам.
В силу того, что чтен. и зап. на диск слишком долгие из - за механических перемещений, для увеличения быстродействия работы с ними сущ. следующие стратегии доступа к ним:
1. FIFO
2. STTN (Shortest Seek Time Next) - первыми обрабатываются те запросы, перемещение головки для которых минимально. Недостаток - дискримин. дорожек в крайних областях.
3. SCAN - сканирование - приоритеты направления движения головки, и при достижении крайней дорожки направление меняется на противоположное. Недостаток: та же дискриминация дорожек, но в меньшей степени.
4. C - SCAN - циклич. сканирование - аналог обычного, но направление не изменяется, а при достижении крайних происходит резкий перескок на противоположную сторону. Недостаток - большое время на перескок.
5. N-STEP-SCAN, N-STEP-C-SCAN - аналог 3 и 4, но при движении в приоритете направления не учитываются запросы, пришедшие во время движения по этому направлению, они учитываются на следующем шаге.
Доп инфа, плюшки приколюшки, сяськи масяськи
Семафо́р — объект, позволяющий войти в заданный участок кода не более чем n потокам. Определение введено Эдсгером Дейкстрой.
Семафоры используются при передаче данных через разделяемую память.
Алгоритм Деккера - озволяет двум потокам выполнения совместно использовать неразделяемый ресурс без возникновения конфликтов
Если два процесса пытаются перейти в критическую секцию одновременно, алгоритм позволит это только одному из них, основываясь на том, чья в этот момент очередь. Если один процесс уже вошёл в критическую секцию, другой будет ждать, пока первый покинет её. Это реализуется при помощи использования двух флагов (индикаторов "намерения" войти в критическую секцию) и переменной turn (показывающей, очередь какого из процессов наступила).
Дейкстра определил две операции над семафорами:
P(s) и V(s). Операция P блокирует семафор, операция V деблокирует семафор. Более
точно, операции P и V определены следующим образом:
Операция P(s) проверяет, что семафор s открыт. Если семафор открыт, операция закры-
вает семафор и завершается. Операция проверки и открытия является атомарной, то есть
ни один другой процесс не может наблюдать ситуации, когда семафор проверен, но ещё не
закрыт. Если на момент проверки семафор уже закрыт, операция P приостановит процесс
до тех пор, пока некоторый другой процесс не откроет семафор. После того, как некоторый
процесс открыл семафор, система выбирает из множества процессов, ожидающих открытия
семафора, какой-то один и разблокирует его.
Операция V(s) разблокирует семафор. Эта операция никогда не приостанавливает вы-
полнение процесса.
Обычно сам по себе семафор s это переменная некоторого целого типа. Значению 0
может соответствовать открытый семафор, а значению 1закрытый семафор. Если сема-
фор может принимать только два значения, такой семафор называется бинарным.