- •1. Понятие ос
- •2. Функции ос
- •3. Классификация ос
- •4. Загрузка программ
- •5. Управление оперативной памятью
- •6. Открытая память
- •7. Алгоритмы динамического управления памятью
- •8. Системы с базовой виртуальной адресацией
- •9. Сегментная и страничная виртуальная память
- •10. Страничный обмен
- •11. Параллельное и псевдопараллельное исполнение (планировщик)
- •12. Методы синхронизации при параллельной работе
- •13. Прерывания, сигналы и семафоры
- •14. Блокировка участков файлов
- •15. Гармонически взаимодействующие последовательные процессы
- •16. Межзадачное взаимодействие
- •17. Средства для гармонического межпроцессного взаимодействия
- •18. Трубы. Линки
- •19. Системы управляемые событиями
- •20. Многопроцессность на однопроцессных компьютерах
- •21. Кооперативная многопроцессность и вытесняющая многопроцессность
- •22. Планировщики с приоритетом
- •23. Монолитные системы и системы с микроядром
- •24. Драйверы внешних устройств и функции драйверов
- •25. Синхронный ввод/вывод в однозадачных и многозадачных системах
- •26. Асинхронный ввод/вывод
- •27. Дисковый кэш и спулинг
- •28. Файловые системы
- •29. Структуры файловых систем
- •30. Устойчивость фс к сбоям
- •31. Безопасность. Идентификация пользователя. Права доступа
- •32. Защита оперативной памяти. Кольца защиты
- •33. Взаимно недоверяющие подсистемы
- •34. Пользовательский интерфейс
- •35. Определение операционной системы
- •37. Структура сетевой ос (одноранговые, с выделенными серверами, для рабочих групп и ос для сетей масштаба предприятия)
- •38. Управление процессами (состояние, контекст и дескриптор процесса)
- •39. Алгоритмы планирования процессов (вытесняющие и невытесняющие)
- •40. Средства синхронизации и взаимодействия процессов. Нити исполнения
- •41. Управление памятью. Типы адресов
- •42. Методы распределения памяти без использования дискового пространства (разделы фиксированные, переменной величины и перемещаемые)
- •43. Методы распределения памяти с использованием дискового пространства (виртуальная память, страничное, сегметное, странично-сегментное распределение)
- •44. Иерархия запоминающих устройств (может быть исключён). Принцип кэширования данных
- •45. Аппаратная поддержка управления памятью и многозадачной среды
- •46. Средства поддержки сегментации памяти
- •47. Управление вводом-выводом. Физическая организация устройств ввода-вывода
- •48. Обработка прерываний. Драйверы устройств
- •49. Управление вводом-выводом. Независимый от устройств слой операционной системы
- •50. Пользовательский слой программного обеспечения
- •51. Фс. Имена файлов. Типы файлов.
- •52. Фс. Логическая и физическая организация файлов
- •53. Современные архитектуры фс (Олифер)
- •54. Фс. Отображаемые в память файлы
- •55. Управление распределёнными ресурсами. Способы адресации
- •56. Базовые примитивы передачи сообщений в распределённых системах
- •57. Синхронизация в распределённых системах. Логические часы. Взаимные исключения. Неделимые транзакции
- •58. Процессы и нити в распределённых системах. Понятие нити. Вопросы реализации нитей.
- •59. Распределённые фс. Интерфейсы файлового сервиса и сервиса каталогов
- •60. Распределённые фс. Семантика разделения файлов. Вопросы разработки структуры фс.
- •61. Распределённые фс. Кэширование. Репликация
- •1. Сквозная запись.
- •62. Основные подходы к реализации взаимодействия в гетерогенных сетях
- •63. Шлюзы. Мультиплексирование стеков протоколов в гетерогенных сетях
- •66. Расширяемость, переносимость, совместимость и безопасность современных ос
- •67. Структура ос: монолитные системы, многоуровневые системы
- •68. Структура ос: модели клиент-сервер и микроядра
- •69. Структура ос: объектно-ориентированный подход
- •70. Структура ос: множественные прикладные среды
30. Устойчивость фс к сбоям
1) Устойчивость к сбоям питания
Одна из важнейших характеристик ФС. Под «сбоем питания» понимается более широкое понятие, вообще любое резкое прекращение работы без размонтирования ФС: извлечение носителя, жёсткая перезагрузка и т.д.
В узком смысле слова «устойчивость» означает лишь то, что такая ФС после аварийной перезагрузки необязательно нуждается в починке. Такие ФС обеспечивают целостность собственных структур данных в случае сбоя, но, вообще говоря, не гарантируют целостности пользовательских данных в файлах.
В широком смысле «устойчивость» гарантирует также целостность пользовательских данных в случае сбоя, но её обеспечение накладывает серьёзные ограничения на ФС и программы, работающие с данными.
Большее внимание уделяется узкому смыслу, т.к. целостность всей системы ставится выше целостности отдельного файла.
Задача обеспечения целостности файловых систем при сбоях усложняется тем, что дисковые подсистемы практически всех современных ОС активно используют отложенную запись. Отложенная запись, особенно в сочетании с сортировкой запросов по номеру блока на диске, может приводить к тому, что изменения инода или ф-нода файла могут все-таки записываться на диск раньше, чем изменения списка свободных блоков, что может приводить к возникновению «скрещенных» файлов.
2) Восстановление ФС после сбоя
Чаще всего используется следующая схема: суперблок ФС содержит dirty-флаг, который устанавливается при загрузке системы и сбрасывается при размонтировании ФС. Т.о., если работа с ФС завершилась некорректно, флаг не успеет сброситься, и это будет сигналом того, что ФС нуждается в починке.
Починка состоит в том, что система прослеживает пространство, выделенное всем файлам. При этом должны выполняться следующие требования:
– Каждая запись в каталоге должна иметь правильный формат и содержать осмысленные данные.
– Каждый блок или кластер диска должен принадлежать не более чем одному файлу.
– Каждому файлу должно быть выделено пространство, соответствующее его длине.
– Все блоки, не принадлежащие файлам, должны быть помечены как свободные.
– Ошибочные иноды в системах UNIX.
3) Файловые системы с регистрацией намерений
Операции над ФС организуются в блоки – транзакции, являющиеся атомарными операциями. Каждая транзакция выполняется по сценарию:
– Система пишет в журнальный файл свои намерения
– Транзакция выполняется
– Запись в журнале помечается как успешная.
При использовании отложенной записи транзакция считается завершенной, когда последний блок измененных данных будет физически записан на диск. При операциях с самим журналом отложенную запись нельзя использовать.
Транзакцией считаются либо только операции по распределению пространства, либо также все операции по изменению данных (второй вариант требует выделения сегмента отката и замедляет работу).
4) Устойчивость ФС к сбоям диска
Кроме общесистемных сбоев, ФС должна обеспечивать средства восстановления при физических сбоях диска. Наиболее распространенным видом таких сбоев являются нечитаемые – «плохие» блоки, появление которых обычно связано с физическими дефектами магнитного носителя.
Дисковые контроллеры используют при записи кодировку с исправлением ошибок, чаще всего, коды типа CRC которые позволяют обнаруживать и исправлять ошибки. Тем не менее, если при чтении была обнаружена ошибка, большинство ОС отмечают такой блок как плохой, даже если данные удалось восстановить на основании избыточного кода.
В «сложных» файловых системах обычно используется горячая замена (hotfixing). В ФС хранится список всех обнаруженных плохих блоков, и каждому такому блоку поставлен в соответствие блок из специального пула горячей замены. При этом плохие блоки, на которые оказались отображены системные структуры данных, также подвергаются горячей замене. Таблица горячей замены может быть как статической, так и динамической.