- •1. Операционные системы
- •2. Функциональные компоненты локальной ос
- •3. Назначение и функции сетевой ос
- •4. Функциональные компоненты сетевой ос
- •5. Коммуникационные средства
- •6. Классификация ос
- •8. Архитектура ос
- •9. Монолитные и многоярусные ядра
- •10. Функциональные компоненты Linux
- •11. Структура ядра
- •12. Функции слоёв ядра
- •13. Вспомогательные модули
- •14. Микроядерные системы
- •15. Объектная модель функционирования
- •16. Состав исполнительной системы WinNt
- •17. Совместимость
- •18. Множественные прикладные среды. Способы реализации
- •19. Интерфейсы ос
- •20. Файловая система
- •21. Логическая организация файла
- •22. Физическая организация файла
- •23. Общая модель фс
- •Непрерывное
- •2) Цепочечная
- •3) Фиксированный
- •Битовые карты (таблицы) – каждому блоку ставится в соответствие свой бит (1 – занят, 0 – свободен)
- •Цепочки сводных свободных порций
- •Список свободных блоков
- •Индексированный
- •24. Функции фс
- •25. Фс unix-подобных ос
- •26. Структура фс
- •27. Структура фс базовых unix-подобных ос
- •28. Архитектура виртуальной фс
- •29. Последовательность действий при монтировании
- •30. Файловые дескрипторы и трансляция имён
- •31. Физическая организация fat
- •32. Физическая организация ntfs
- •33. Управление процессами
- •34. Контекст и дескриптор
- •35. Структура контекста процесса
- •36. Планирование и диспетчеризация
- •37. Алгоритмы планирования
- •38. Планирование и диспетчеризация в unix системах
- •39. Управление процессами в unix-подобных системах
- •40. Атрибуты, инфраструктура процесса
- •41. Создание процессов
- •42. Этап exec()
- •43. Межпроцессные взаимодействия (ipc)
- •44. Каналы (pipe)
- •45. Fifo
- •46. Пространство имен
- •47. Сообщения
- •48. Семафоры
- •49. Разделяемая память
- •50. Сигналы
- •51. Последовательность событий
- •52. Функции управления процессами
- •53. Сообщения в микроядерных ос.
- •54. Процессы и потоки в WinNt
- •55. Базовая структура процесса, создание процесса в WinNt
- •56. Основные различия управления процессами в различных средах
- •57. Состав потока в WinNt и контекст потока
- •58. Передача сообщений с помощью lpc (локальный вызов процедур)
- •59. Распределенные системы. Удаленный вызов процедур. Rpc (Remote Procedure Call)
- •60. Система ввода-вывода в Win nt
- •61. Реализация свв в Windows nt
- •62. Унифицированная модель драйвера
- •63. Формат пакета irp
- •64. Структура драйвера
- •65. Редиректор и сервер. Встроенные сетевые компоненты
30. Файловые дескрипторы и трансляция имён
Прикладные процессы работают с файлами и модифицируют их. При работе с фалами мы работаем либо с файловыми дескрипторами, либо с именами. Ядро же различает файлы по индексному дескриптору => требуется установка соответствия между файловыми дескрипторами и индексными дескрипторами. В большинстве случаев используется трансляция имен.
Системные вызов, требующие трансляции имен: exec(), chown(), chgrp(), chmod(), rmdir, mkdir, mknode, open(), link()…
Для трансляции имен существенно указывать полный или относительный путь к файлу.
Если есть точка монтирования, то для проведения трансляции необходимо выполнить vfs_root() для перехода через точку монтирования, в результате которого получается vnode корневой системы.
Трансляция продолжается до тех пор, пока не будут просмотрены все имена. В результате завершения операции трансляции – возвращении виртуального дескриптора.
Доступ к ФС из процесса.
В системной таблице содержится следующая информация:
F_flag = fread;
F_cont=2;
F_vnode=03564; *
F_offset=0x32;
F_flag = fwrite;
F_cont=1;
F_vnode=03304; **
F_offset=0x16;
Окончательная таблица.
Виртуальная ФС позволяет пройти от пользовательского процесса до устройства.
Файловые дескрипторы получаются процессом в результате системных вызовов из пользовательских приложений. Файловый дескриптор – индекс в таблице файловых дескрипторов каждого из процессов. Хранится эта таблица в u_area каждого процесса.
Существует системная таблица, в которую переписывается информация из всех таблиц ФД всех активных процессов. Поскольку эта системная таблица одна на всех – возможны повторения. Каждая активная запись представляет открытый файл и адресует область таблицы. Существует суммарная таблица виртуальных дескрипторов, где каждый файл упоминается 1 раз. Делается соответствующая запись и по этим записям имеется возможность обратиться к реальной ФС, используя вышеописанные структуры.
31. Физическая организация fat
Логический раздел состоит из:
· Загрузочного сектора с программой начальной загрузки (512 байт)
· Основной копии FAT (размер зависит от объема диска)
· Копии FAT
· Корневого каталога фиксированного размера (32 сектора – 16 Кбайт), куда можно занести 512 записей о НД. Каждая запись – 32 байта.
· Область данных – вся остальная область раздела.
FAT поддерживает 2 типа НД – файл и каталог. Память распределяется только из области данных, порциями в кластер.
Таблица FAT – массив индексных указателей, каждому указателю соответствует один кластер. Указатель может иметь значения:
· Кластер свободен
· Кластер принадлежит файлу и не последний
· Кластер – последний в файле
· Кластер сбойный
· Кластер резервный
Размер указателя бывает 12, 16 или 32 разряда, что позволяет ссылаться на 4096, 65536 или более 4 млр. Кластеров.
FAT12 – для дисков до 16 Мбайт, FAT16 – для дисков до 512 Мбайт (максимально -4Гбайт), FAT32 – для дисков с практически неограниченным размером (до 128 Тбайт). Используемый метод хранения адресной информации не очень надежен, так как сбой в списке индексов приводит к потере всего хвоста файла.
В FAT16, как и FAT 12, используются имена 8+3 символа, но в ОС Win32 возможно применение длинных имен, из 255 символов UNICODE (по 2 байта на символ). Первые 8+3 символа хранятся в этом случае также в основной записи каталога а последующие символы – по 13 штук (26 байт) + 6 служебных байт – отдельными порциями за основной записью. Аналогично устроена ФС FAT32.