logo search
Операционные системы

Борьба со сбоями

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

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

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

1 Для создания файла FIFO в UNIX System V.3 и ранее используется системный вызов mknod(), а в BSD UNIX и System V.4 — вызов mkfifo() (этот вызов поддерживается и стандартом POSIX).

2 В данном случае это решение не совсем корректно, поскольку делается предположение, что процессы A и B за 10 единиц времени должны получить последние сообщения. Но для простоты решения мы опускаем проблемы синхронизации.

3 В этом случае возможна некорректная работа, если процессы A и/или B запускаются раньше основного процесса. В этом случае они обратятся к пока еще не созданному ресурсу, что приведет к ошибке.

209