
- •1) Технологии проектирования операционных систем (микроядерные, монолитные ос, технология клиент - сервер)
- •2) Объектно-ориентированный подход в проектировании операционных систем.
- •3) Основные принципы проектирования операционных систем
- •4) Модульное программирование ос. Привилегированные, непривилегированные, рентабельные модули.
- •5) Управление процессами в многозадачных средах. Контекст и дескриптор процесса.
- •Состояния процессов
- •6) Управление процессами в многозадачных средах.
- •7. Методы синхронизации параллельно выполняющихся процессов. Взаимные исключения. Семафоры
- •8. Методы синхронизации параллельно выполняющихся процессов. Блокирующие переменные. Мониторы Хоара.
- •9. Управление процессами в многозадачных средах.
- •10) Логическая организация файловой системы. Файлы прямого, последовательного доступа, индексные файлы.
- •11) Физическая организация файлов на диске.
- •13) Файловая система ext. Особенности ее реализации.
- •14 Типы файловых систем
- •15) Общая модель современной файловой системы.
- •16) Методы защиты данных в ос unix.
- •17) Странично-сегментное управление памятью.
- •18) Виртуальные ресурсы. Виртуальная память. Свопинг.
- •19) Обеспечение эффективности обработки данных. Иерархия зу. Кэширование. Буферизация данных.
- •20) Управление устройствами ввода/вывода.
- •Прерывания и способы их обработки
- •Драйверы устройств
- •21) Управление устройствами ввода/вывода. Спулинг.
- •22) Компиляторы. Лексический анализатор. Дескрипторный текст программы.
- •23) Компиляторы. Синтаксический анализатор. Методы построения синтаксического дерева вывода.
- •24) Компиляторы. Семантический анализатор. Генерация, оптимизация кода программы.
- •25) Распределение оп при выполнении программ.
13) Файловая система ext. Особенности ее реализации.
Extfs (Extended File System, расширенная файловая система) — первая файловая система, разработанная специально для ОС linux. Файловая система Ext2 была разработана с целью устранения ошибок, обнаруженных в предыдущей системе Ext и снятия некоторых ее ограничений.
Ext2 файловая система стала основой для LINUX. В качестве стандартных возможностей Ext 2 называются следующие:
• Поддержка стандартных типов файлов Unix: обычных файлов, папок, файлов устройств и символических связей.
• Поддержка больших разделов - до 4 Тб. Поддержка длинных имен файлов - до 255 символов.
Существуют и "расширенные" возможности ФС Ext 2, не присущие ФС Unix: (1)Файловые атрибуты позволяют пользователям изменять действия ядра при работе с наборами файлов; Ext2 позволяет выбрать размер логического блока при создании ФС, это может быть 1024, 2048 или 4096 байт; (2)Ext2 предоставляет механизм быстрых символичных связей. Такие связи не занимают блоков данных в ФС; (3)Ext2 может сама следить за своим состоянием. На самом деле это означает, что в ФС встроены механизмы, позволяющие форсировать проверку ФС в случае необходимости.
Атрибуты файлов позволяют установить "безопасное" удаление файлов. При таком удалении на место бывшего файла записываются случайные данные. Таким образом восстановить содержимое файла становиться невозможным.
Введены новые типы файлов: (1)Неизменные (Immutable) файлы доступны только для чтения: никто не может их удалить или перезаписать. (2)Конкатенационные (Append-only) файлы могут быть использованы для записи, но любые данные будут только добавлены и только в конец файла. Как и неизменные файлы из нельзя удалить или переименовать.
Создание ФС ext2 заключается в создании в разделе диска определенной логической структуры. Эта структура строится следующим образом.
Во-первых, на диске выделяется загрузочная область. Загрузочная область создается в любой файловой системе. На первичном разделе она содержит загрузочную запись - фрагмент кода, который инициирует процесс загрузки операционной системы при запуске. На других разделах эта область не используется. Все остальное пространство на диске делится на блоки. Блок может иметь размер от 1, 2 или 4 килобайта. Выделение места файлам осуществляется целыми блоками.
Блоки, в свою очередь, объединяются в группы блоков. Группы блоков в файловой системе и блоки внутри группы нумеруются последовательно, начиная с 1. Первый блок на диске имеет номер 1 и принадлежит группе с номером 1. Общее число блоков на диске (в разделе диска) является делителем объема диска, выраженного в секторах. А число групп блоков не обязано делить число блоков, потому что последняя группа блоков может быть не полной.
Общая структура ФС может быть представлена такой таблицей: Загрузочный сектор, Группа блоков 1 , … Группа блоков n .
Каждая группа блоков имеет одинаковое строение:
Супер блок |
Дескрипторы ФС |
Карта блоков |
Карта inode |
Таблица inode |
Блоки данных |
Такая структура служит повышению производительности ФС за счет того, что сокращается расстояние между таблицей индексных дескрипторов и блоками данных, а, следовательно, сокращается время поиска нужного места головками в процессе операций записи/считывания файла.
Первый элемент каждой группы блоков (суперблок) одинаков для всех групп, а все остальные - индивидуальны для каждой группы. Суперблок хранится в первом блоке каждой группы блоков. Информация, хранимая в суперблоке, используется для организации доступа к остальным данным на диске.
Ext 3 - имеет точно такую же стуктуру, как и Ext 2, но Ext 3 ведет журнал, а Ext 2 - нет. Основная цель, которая преследуется при создании журналируемых файловых систем, состоит в том, чтобы обеспечить как можно большую вероятность быстрого восстановления системы после сбоев.
В журнал записывается три типа блоков данных:
1)Метаданные, 2)Блоки дескрипторов 3)Заголовочные блоки
Блок метаданных журнала содержит полностью один блок метаданных ФС, такой, как он обновляется транзакцией. Даже при малейших изменениях в ФС необходимо записать полный журнальный блок. Тем не менее, это не очень сильно сказывается на производительности, так как эти операции специально оптимизируются.
Блоки дескрипторов описывают другие блоки метаданных журнала, так что механизм восстановления данных может скопировать метаданные назад в основную ФС. Эти блоки записываются перед любыми изменениями метаданных журнала.
И, наконец, заголовочные блоки описывают заголовки и окончания журнала плюс порядковый номер, для гарантии порядка записи во время восстановления.