- •Содержание
 - •Основы операционных систем
 - •Операционная система как менеджер ресурсов
 - •Операционная система как защитник пользователей и программ
 - •Операционная система как постоянно функционирующее ядро
 - •Второй период (1955 г.–начало 60-х). Компьютеры на основе транзисторов. Пакетные операционные системы
 - •Третий период (начало 60-х – 1980 г.). Компьютеры на основе интегральных микросхем. Первые многозадачные ос
 - •Четвертый период (с 1980 г. По настоящее время). Персональные компьютеры. Классические, сетевые и распределенные системы
 - •Прерывания
 - •Исключительные ситуации
 - •Многоуровневые системы (Layered systems)
 - •Виртуальные машины
 - •Микроядерная архитектура
 - •Смешанные системы
 - •Системы реального времени
 - •Взаимодействие с периферийными устройствами
 - •Понятие процесса
 - •Состояния процесса
 - •Process Control Block и контекст процесса
 - •Одноразовые операции
 - •Многоразовые операции
 - •Переключение контекста
 - •Заключение
 - •Уровни планирования
 - •Критерии планирования и требования к алгоритмам
 - •Параметры планирования
 - •Вытесняющее и невытесняющее планирование
 - •Гарантированное планирование
 - •Приоритетное планирование
 - •Многоуровневые очереди (Multilevel Queue)
 - •Многоуровневые очереди с обратной связью (Multilevel Feedback Queue)
 - •Заключение
 - •Взаимодействующие процессы
 - •Категории средств обмена информацией
 - •Информационная валентность процессов и средств связи
 - •Поток ввода/вывода и сообщения
 - •Надежность средств связи
 - •Как завершается связь?
 - •Нити исполнения
 - •Заключение
 - •Критическая секция
 - •Запрет прерываний
 - •Переменная-замок
 - •Строгое чередование
 - •Флаги готовности
 - •Алгоритм Петерсона
 - •Алгоритм булочной (Bakery algorithm)
 - •Аппаратная поддержка взаимоисключений
 - •Команда Test-and-Set (проверить и присвоить 1)
 - •Решение проблемы producer-consumer с помощью семафоров
 - •Мониторы
 - •Сообщения
 - •Реализация семафоров и передачи сообщений с помощью мониторов
 - •Реализация семафоров и мониторов с помощью очередей сообщений
 - •Заключение
 - •Введение
 - •Условия возникновения тупиков
 - •Основные направления борьбы с тупиками
 - •Игнорирование проблемы тупиков
 - •Нарушение условия ожидания дополнительных ресурсов
 - •Нарушение принципа отсутствия перераспределения
 - •Hарушение условия кругового ожидания
 - •Обнаружение тупиков
 - •Восстановление после тупиков
 - •Заключение
 - •Введение
 - •Физическая организация памяти компьютера
 - •Локальность
 - •Логическая память
 - •Связывание адресов
 - •Функции системы управления памятью
 - •Простейшие схемы управления памятью
 - •Один процесс в памяти
 - •Оверлейная структура
 - •Динамическое распределение. Свопинг
 - •Страничная память
 - •Сегментная и сегментно-страничная организация памяти
 - •Заключение
 - •Понятие виртуальной памяти
 - •Архитектурные средства поддержки виртуальной памяти
 - •Страничная виртуальная память
 - •Сегментно-страничная организации виртуальной памяти
 - •Структура таблицы страниц
 - •Ассоциативная память
 - •Инвертированная таблица страниц
 - •Размер страницы
 - •Заключение
 - •11. Лекция: Файлы с точки зрения пользователя: версия для печати и pda в настоящей лекции вводится понятие и рассматриваются основные функции и интерфейс файловой системы.
 - •Введение
 - •Типы файлов
 - •Атрибуты файлов
 - •Организация файлов и доступ к ним
 - •Другие формы организации файлов
 - •Операции над файлами
 - •Директории. Логическая структура файлового архива
 - •Разделы диска. Организация доступа к архиву файлов.
 - •Операции над директориями
 - •Заключение
 - •Общая структура файловой системы
 - •Связный список
 - •Индексные узлы
 - •Учет при помощи организации связного списка
 - •Размер блока
 - •Структура файловой системы на диске
 - •Реализация директорий
 - •Связывание файлов
 - •Кооперация процессов при работе с файлами
 - •Примеры разрешения коллизий и тупиковых ситуаций
 - •Порядок выполнения операций
 - •Журнализация
 - •Проверка целостности файловой системы при помощи утилит
 - •Управление "плохими" блоками
 - •Оптимальное размещение информации на диске
 - •Связывание файла
 - •Удаление файла
 - •Современные архитектуры файловых систем
 - •Заключение
 - •13. Лекция: Система управления вводом-выводом: версия для печати и pda в лекции рассматриваются основные физические и логические принципы организации ввода-вывода в вычислительных системах.
 - •Физические принципы организации ввода-вывода
 - •Общие сведения об архитектуре компьютера
 - •Структура контроллера устройства
 - •Опрос устройств и прерывания. Исключительные ситуации и системные вызовы
 - •Прямой доступ к памяти (Direct Memory Access – dma)
 - •Логические принципы организации ввода-вывода
 - •Структура системы ввода-вывода
 - •Систематизация внешних устройств и интерфейс между базовой подсистемой ввода-вывода и драйверами
 - •Функции базовой подсистемы ввода-вывода
 - •Блокирующиеся, неблокирующиеся и асинхронные системные вызовы
 - •Буферизация и кэширование
 - •Spooling и захват устройств
 - •Обработка прерываний и ошибок
 - •Планирование запросов
 - •Алгоритм First Come First Served (fcfs)
 - •Алгоритм Short Seek Time First (sstf)
 - •Алгоритмы сканирования (scan, c-scan, look, c-look)
 - •Заключение
 - •Введение
 - •Угрозы безопасности
 - •Формализация подхода к обеспечению информационной безопасности
 - •Криптография как одна из базовых технологий безопасности ос
 - •Шифрование с использованием алгоритма rsa
 - •Теорема Эйлера
 - •Заключение
 
Порядок выполнения операций
Очевидно, что для правильного функционирования файловой системы значимость отдельных данных неравноценна. Искажение содержимого пользовательских файлов не приводит к серьезным (с точки зрения целостности файловой системы) последствиям, тогда как несоответствия в файлах, содержащих управляющую информацию (директории, индексные узлы, суперблок и т. п.), могут быть катастрофическими. Поэтому должен быть тщательно продуман порядок выполнения операций со структурами данных файловой системы.
Рассмотрим пример создания жесткой связи для файла [Робачевский, 1999]. Для этого файловой системе необходимо выполнить следующие операции:
- 
создать новую запись в каталоге, указывающую на индексный узел файла;
 - 
увеличить счетчик связей в индексном узле.
 
Если аварийный останов произошел между 1-й и 2-й операциями, то в каталогах файловой системы будут существовать два имени файла, адресующих индексный узел со значением счетчика связей, равному 1. Если теперь будет удалено одно из имен, это приведет к удалению файла как такового. Если же порядок операций изменен и, как прежде, останов произошел между первой и второй операциями, файл будет иметь несуществующую жесткую связь, но существующая запись в каталоге будет правильной. Хотя это тоже является ошибкой, но ее последствия менее серьезны, чем в предыдущем случае.
Журнализация
Другим средством поддержки целостности является заимствованный из систем управления базами данных прием, называемый журнализация (иногда употребляется термин "журналирование"). Последовательность действий с объектами во время файловой операции протоколируется, и если произошел останов системы, то, имея в наличии протокол, можно осуществить откат системы назад в исходное целостное состояние, в котором она пребывала до начала операции. Подобная избыточность может стоить дорого, но она оправданна, так как в случае отказа позволяет реконструировать потерянные данные.
Для отката необходимо, чтобы для каждой протоколируемой в журнале операции существовала обратная. Например, для каталогов и реляционных СУБД это именно так. По этой причине, в отличие от СУБД, в файловых системах протоколируются не все изменения, а лишь изменения метаданных (индексных узлов, записей в каталогах и др.). Изменения в данных пользователя в протокол не заносятся. Кроме того, если протоколировать изменения пользовательских данных, то этим будет нанесен серьезный ущерб производительности системы, поскольку кэширование потеряет смысл.
Журнализация реализована в NTFS, Ext3FS, ReiserFS и других системах. Чтобы подчеркнуть сложность задачи, нужно отметить, что существуют не вполне очевидные проблемы, связанные с процедурой отката. Например, отмена одних изменений может затрагивать данные, уже использованные другими файловыми операциями. Это означает, что такие операции также должны быть отменены. Данная проблема получила название каскадного отката транзакций [Брукшир, 2001]
Проверка целостности файловой системы при помощи утилит
Если же нарушение все же произошло, то для устранения проблемы несовместимости можно прибегнуть к утилитам (fsck, chkdsk, scandisk и др.), которые проверяют целостность файловой системы. Они могут запускаться после загрузки или после сбоя и осуществляют многократное сканирование разнообразных структур данных файловой системы в поисках противоречий.
Возможны также эвристические проверки. Hапример, нахождение индексного узла, номер которого превышает их число на диске или поиск в пользовательских директориях файлов, принадлежащих суперпользователю.
К сожалению, приходится констатировать, что не существует никаких средств, гарантирующих абсолютную сохранность информации в файлах, и в тех ситуациях, когда целостность информации нужно гарантировать с высокой степенью надежности, прибегают к дорогостоящим процедурам дублирования.
