Управление свободным и занятым дисковым пространством.
В современных ОС используется несколько способов учета используемого места на диске.
Учет при помощи организации битового вектора.
Часто список свободных блоков диска реализован в виде битового вектора (bit map или bit vector). Каждый блок представлен одним битом, принимающим значение 0 или 1, в зависимости от того, занят он или свободен. Например, 00111100111100011000001...
Главное преимущество этого подхода состоит в том, что он относительно прост и эффективен при нахождении первого свободного блока или n последовательных блоков на диске. Многие компьютеры имеют инструкции манипулирования битами, которые могут использоваться для этой цели. Например, компьютеры семейств Intel и Motorola имеют инструкции, при помощи которых можно легко локализовать первый единичный бит в слове. Описываемый метод в Apple Macintosh.
Несмотря на то, что размер описанного битового вектора наименьший из всех возможных структур, даже такой вектор может оказаться большого размера. Поэтому данный метод эффективен, только если битовый вектор помещается в памяти целиком, что возможно лишь для относительно небольших дисков. Если битовый вектор становится большим, для ускорения поиска в нем его разбивают на регионы и организуют резюмирующие структуры данных, содержащие сведения о количестве свободных блоков для каждого региона.
Учет при помощи организации связанного списка.
Другой подход – связать в список все свободные блоки, размещая указатель на первый свободный блок в специально отведенном месте диска, попутно кэшируя в памяти эту информацию.
Подобная схема не всегда эффективна. Для трассирования списка нужно выполнить много обращений к диску. Однако, к счастью, нам необходим, как правило, только первый свободный блок.
Иногда прибегают к модификации подхода связанного списка, организуя хранение адресов n свободных блоков в первом свободном блоке. Первые n–1 этих блоков действительно используются. Последний блок содержит адреса других n блоков и т. д.
Существуют и другие методы, например, свободное пространство можно рассматривать как файл и вести для него соответствующий индексный узел.
Размер блока.
В некоторых системах (Unix) он может быть задан при форматировании диска. Небольшой размер блока будет приводить к тому, что каждый файл будет содержать много блоков. Чтение блока осуществляется с задержками на поиск и вращение, таким образом, файл из многих блоков будет читаться медленно. Большие блоки обеспечивают более высокую скорость обмена с диском, но из-за внутренней фрагментации снижается процент полезного дискового пространства.
Для систем со страничной организацией памяти характерна сходная проблема с размером страницы.
Можно также учесть, что в системах с виртуальной памятью желательно, чтобы единицей пересылки диск-память была страница (наиболее распространенный размер страниц памяти – 4 Кбайта). Отсюда обычный компромиссный выбор блоков размерами: 512 байт, 1 Кбайт, 2 Кбайт, 4 Кбайт.
- Связанный список. Хранение файла в виде связанного списка дисковых блоков.
- Индексные узлы.
- Управление свободным и занятым дисковым пространством.
- Структура файловой системы на диске. Примерная структура файловой системы на диске.
- Связывание файлов. Структура файловой системы с возможностью связывания файла с новым именем.
- Кооперация процессов при работе с файлами.
- Примеры разрешения коллизий и тупиковых ситуаций.
- Hадежность файловой системы.
- Целостность файловой системы.
- Порядок выполнения операций.
- Журнализация.
- Производительность файловой системы. Кэширование.
- Современные архитектуры файловых систем.
- Дополнительные возможности современных файловых систем (на примере ntfs ос Windows xp).
- Система управления вводом-выводом
- Физические принципы организации ввода-вывода.
- Общие сведения об архитектуре компьютера.
- Прямой доступ к памяти (Direct Memory Access – dma).
- Структура системы ввода-вывода. Логические принципы организации ввода-вывода.
- Структура подсистемы ввода-вывода. Драйверы.
- Функции подсистемы ввода-вывода.
- Компоненты подсистемы ввода-вывода (структурная схема).
- Диспетчер ввода-вывода.
- Типовая обработка ввода-вывода.
- Установка драйвера.
- Диспетчер электропитания.
- Сетевые и распределенные операционные системы.
- Взаимодействие удаленных процессов как основа работы вычислительных сетей.
- Основные вопросы логической организации передачи информации между удаленными процессами.
- Понятие протокола.
- Многоуровневая модель построения сетевых вычислительных систем. Семиуровневая эталонная модель osi/iso.
- Проблемы адресации в сети. Одноуровневые адреса. Двухуровневые адреса.
- Удаленная адресация и разрешение адресов. Схема разрешения имен с использованием dns-серверов.
- Основные понятия информационной безопасности. Угрозы безопасности
- Формализация подхода к обеспечению информационной безопасности.
- Криптография как одна из базовых технологий безопасности ос.
- Шифрование. Шифрование открытым ключом.
- Шифрование с использованием алгоритма rsa.
- Защитные механизмы ос. Идентификация и аутентификация
- Пароли, уязвимость паролей.
- Шифрование пароля.
- Авторизация. Разграничение доступа к объектам ос.
- Аудит системы защиты.
- Анализ некоторых популярных ос с точки зрения их защищенности: ms-dos; Windows nt/2000/xp; Windows Vista; Windows 7.
- Брандмауэр ос ms Windows.