Использование битового массива
Состояние любого блока определяется содержимым бита с номером каждого блока.
Если блок свободен, бит равен 1, занят – 0.
Пример:
Для HDD 16 Gb потребуется 2048 блоков для хранения
битового массива
Все пространство для хранения – битовая карта – массив битов. Номер бита от начала массива соответствует номеру блока. Если блок свободен, бит равен 1, занят – 0.
Квотирование пространства файловой системы
Одним из ресурсов ВС является лимитированное пространство ФС, выделенное для пользователя.
Количество имен файла ограничено сверху размером раздела. Пространство, занимаемое файлами лимитировано.
Для каждого из этих ресурсов определяется 2 квоты : на блоки и на файлы.
Существуют жесткие и гибкие лимиты .
С гибким лимитом блоков связывается два параметра – это непосредственно значение, которое лимитирует использование ресурсов – это первый параметр. Второй параметр – это так называемый счетчик предупреждений. Работа осуществляется следующим образом. Пользователь заходит в свой номер, система определяет статус использования соответствующего лимита. Если реально используемый лимит, предположим это лимит на блоки файлов, превосходит гибкий лимит блоков, то пользователю при входе в систему дается предупреждение, что он израсходовал свой лимит, и счетчик предупреждения уменьшается на 1. Пользователю дается возможность заходить к себе в номер и работать до тех пор пока счетчик предупреждений не станет равен 0. Так только он станет равен 0 работа пользователя будет блокирована.
Жесткое лимитирование – этот тот лимит, который перейти нельзя никогда. Если при входе пользователя в систему обнаружится, что он превзошел жесткий лимит, то его работа блокируется сразу все зависимости от других ситуаций. Гибкий и жесткий лимит – это есть средства, в принципе, возможно использование различных
Если пользователь попытался превзойти жесткий лимит, то он блокируется сразу.
Надежность файловой системы
Критерий надежность файловой системы достаточно просто формулируется. Т.е. нужно обеспечить работу таким образом, чтобы при возникновении внештатной ситуации объем потерянной информации был минимальной. Внештатная ситуация может быть самой разнообразной – сбой в любом из узлов компьютера, в том числе на носителе, в котором находится файловая система, физическое уничтожение информации (в том числе и случайное) и т.д. Первым и наиболее исторически традиционным путем решения этой проблемы является резервное копирование или резервное архивирование файла.
=>
Нужно, чтобы при возникновении внештатной ситуации потеря информации стремилась к нулю.
Резервное копирование должно проходить в ограниченный промежуток времени.
Различные модели резервного копирования
1.Копируются не все файлы файловой системы (избирательность архивирования по типам файлов); Не копируются *.obj
и системные (те, которые можно переустановить).
2. Создается мастеркопия архива по расписанию, или в произвольные моменты времени. Копируются все файлы, которые
были изменены с момента создания последней мастеркопии. Копии получаются очень большие.
3. Использование компрессии при архивировании (риск потери всего архива из-за ошибки в чтении/записи сжатых данных);
4. Проблема архивирования «на ходу» (во время копирования происходят изменения файлов, создание, удаление каталогов
и т.д.). Возможность потери информации из-за внештатной ситуации (например отключение от питания)
5. Распределенное хранение резервных копий. Лучше держать много копий в разных местах – хоть где-нибудь, да
останется.
Стратегии архивирования
Физическая архивация
1.«один в один»;
При этом можно копировать свободные блоки, что не надо. Решение этой проблемы – п.2
2. интеллектуальная физическия архивация (копируются только использованные блоки файловой системы);
3. проблема обработки дефектных блоков. Чем больше носителей, тем больше дефектных блоков.
Логическая архивация – копирование файлов (а не блоков), модифицированных после заданной даты.
Проверка целостности файловой системы
Проблема – при аппаратных или программных сбоях возможна потеря информации:
• потеря модифицированных данных в «обычных» файлах;
• потеря системной информации (содержимое каталогов, списков системных блоков, индексные узлы и т.д.)
Необходим контроль целостности или непротиворечивости файловой системы.
Модельная стратегия контроля
1.Формируются две таблицы:
- таблица занятых блоков;
- таблица свободных блоков;
(размеры таблиц соответствуют размеру файловой системы – число записей равно числу блоков ФС)
Изначально все записи таблиц обнуляются.
2. Анализируется список свободных блоков. Для каждого номера свободного блока увеличивается на 1 соответствующая ему запись в таблице свободных.
3. Анализируются все индексные узлы. Для каждого блока, встретившегося в индексном узле, увеличивается его счетчик на 1 в таблице занятых блоков.
4. Анализ содержимого таблиц и коррекция ситуаций.
Варианты анализа таблиц
1.Таблица занятых блоков и таблица свободных блоков дополняют друг друга до всех единиц, тогда все в порядке,
целостность системы соблюдена.
2. Пропавший блок – не числится ни среди свободных, ни среди занятых. Можно оставить как есть и ждать претензий со стороны пользователя, но система замусоривается. Считаем свободным.
3. таблица занятых блоков корректна, а какой-то из свободных блоков дважды или более раз посчитан свободным, т.е. список свободных блоков (таблица) не корректен. В этом случае нужно запустить процесс пересоздания списка свободных блоков. Т.е. нужно запустить процесс, который проанализирует все индексные дескрипторы и соответственно сформирует список свободных блоков.
4.Дубликат занятого блока. Блок повстречался в 2х индексных дискрипторах. Локализуем проблему на уровне файлов.
Действие:
1.Name1 ---> копируется Name12
2.Name2 ---> копируется Name22
3.Удаляются Name1, Name2
4.Запускается переопределение списка свободных блоков
5.Обратное переименование файлов и фиксация факта их возможной проблемности.
ОС Unix: файловая система
Появление ФС UNIX совершило революцию в файловых системах по нескольким направлениям – в СПО, в организации ОС.
Например:
1.UNIX был первой ОС, разработанной с помощью языка высокого уровня.
2. Элегантная и развитая система управления процессами.
3. Древовидная организация ФС. (Древовидная в общем случае, но есть средства нарушающие древовидность.) Такая организация – не абсолютное первенство UNIX, это было заимствовано из Maltix, однако UNIX - первая файловая система с древовидной организацией, которая получила широкое распространение.
4. Использование концепции файлов. Все представляется в виде файлов. Все работает через унифицированный интерфейс.
- Конспект по курсу лекций Операционные системы
- Структура вычислительной системы
- Аппаратный уровень вычислительной системы
- Системы программирования
- Модель организации прерываний с использованием регистра «слово состояние процессора»
- 3.6.1.1 Устройство последовательного доступа
- Организация управления внешними устройствами
- Иерархия памяти
- Аппаратная поддержка ос и систем программирования
- Некоторые проблемы
- 1. Вложенные обращения к подпрограммам
- 2. Накладные расходы при смене обрабатываемой программы:
- 4. Фрагментация памяти
- 4.2.1 Регистровые окна ( register window )
- Системный стек
- Виртуальная память.
- Базирование адресов.
- Страничная память.
- Многомашинные, многопроцессорные ассоциации.
- Терминальные комплексы
- Компьютерные сети.
- Семейство протоколов tcp/ip
- Ip адрес представляется последовательностью четырех байтов. В адресе кодируется уникальный номер сети, а также номер компьютера (сетевого устройства в сети).
- Транспортный уровень
- Уровень прикладных программ
- Сетевые, распределенные ос
- Операционные системы Основные понятия
- Структура ос.
- Модельная ос
- Жизненный цикл процесса
- Типы операционных систем
- Системы разделения времени
- Управление внешними устройствами. Архитектура.
- Программное управление внешними устройствами
- Буферизация обмена
- Планирование дисковых обменов
- Raid системы.
- Файлы устройств, драйверы
- Управление оперативной памятью
- Двухуровневая организация
- Структурная организация файлов
- Атрибуты файла
- Типовые программные интерфейсы работы с файлами
- Подходы в практической реализации файловой системы Структура «системного» диска
- Модели реализации файлов Непрерывные файлы
- Файлы, имеющие организацию связанного списка.
- Индексные узлы (дескрипторы)
- Модели организации каталогов
- Варианты соответствия: имя файла – содержимое файла
- Координация использования пространства внешней памяти
- Учет свободных блоков файловой системы Связный список свободных блоков
- Использование битового массива
- Организация фс Unix
- Логическая структура каталогов
- Внутренняя организация фс Модель версии System V Структура фс
- Работа с массивами номеров свободных блоков
- Работа с массивом свободных ид
- Индексные дескрипторы
- Адресация блоков файла
- Файл каталог
- Установление связей
- Недостатки фс модели версии System V
- Модель версии ffs bsd
- Стратегии размещения
- Внутренняя организация блоков
- Структура каталога ffs
- Понятие «процесс».
- Процессы в ос Unix Системно-ориентированное определение процесса
- Базовые средства организации и управления процессами
- Семейство системных вызовов exec()
- Использование схемы fork-exec
- Формирование процессов 0 и 1
- . Планирование Основные задачи планирования
- Планирование очереди процессов на начало обработки
- Кванты постоянной длины.
- Кванты переменной длины
- Класс подходов, использующих линейно возрастающий приоритет.
- Разновидности круговорота.
- Смешанные алгоритмы планирования
- Планирование в системах реального времени
- Общие критерии для сравнения алгоритмов планирования
- Планирование в ос unix
- Планирование в Windows nt.
- Планирование свопинга в ос Unix
- Взаимодействие процессов: синхронизация, тупики Параллельные процессы
- Проблемы организации взаимного исключения
- Тупики (deadlocks)
- Способы реализации взаимного исключения
- Семафоры Дейкстры
- Мониторы
- Обмен сообщениями
- Классические задачи синхронизации процессов
- Задача «читателей и писателей»
- Задача о «спящем парикмахере»
- Реализация взаимодействия процессов
- Сигналы
- Системный вызов kill()
- Системный вызов signal()
- Пример 1.
- Пример 2.
- 5 Пример. Программа “Будильник”.
- Пример. Двухпроцессный вариант программы “Будильник”.
- Пример. Использование канала.
- Пример. Схема взаимодействия процессов с использованием канала.
- Пример. Реализация конвейера.
- Пример. Совместное использование сигналов и каналов – «пинг-понг».
- Именованные каналы. Особенность именованных каналов в ос Unix.
- Пример. «Клиент-сервер».
- Межпроцессное взаимодействие, проводимое по модели «главный-подчинённый».
- Системный вызов ptrace()
- Общая схема трассировки процессов
- Пример. Использование трассировки.
- Система межпроцессного взаимодействия ipc.
- Очередь сообщений
- Системный вызов msgget()
- Функция msgsnd()
- Функция msgrcv()
- Функция msgctl()
- Пример. Использование очереди сообщений.
- Пример. Очередь сообщений. Модель «клиент-сервер».
- Разделяемая память.
- Пример. Работа с общей памятью в рамках одного процесса.
- Семафоры
- Пример. Использование разделяемой памяти и семафоров.
- 1Й процесс:
- 2Й процесс:
- Механизм сокетов
- Типы сокетов.
- Функция создания сокета
- Запрос на соединение
- Прослушивание сокета
- Подтверждение соединения
- Прием и передача данных
- Закрытие сокета
- Пример. Работа с локальными сокетами
- Пример работы с сокетами в рамках сети.