
- •Задачи и интерфейсы Unix-подобных систем.
- •2.Структура ядра ос Linux.
- •3. Процессы в ос Linux. Общие понятия.
- •4. Процессы в ос Linux. Этапы создания процесса.
- •5. Взаимодействие процессов в ос Linux.
- •6. Реализация потоков в ос Linux.
- •7. Планирование в ос Linux.
- •8.Загрузка в ос Linux
- •13.Подкачка в ос Linux.
- •14.Алгоритм замещения страниц в ос Linux.
- •15.Ввод-вывод в ос Linux. Общие понятия.
- •17. Файловые системы в ос Linux. Общие понятия.
- •18. Файловые системы в ос Linux. Файловая система Ext2.
- •19. Файловые системы в ос Linux. Файловая система Ext3.
- •20. Файловые системы в ос Linux. Файловая система nfs.
- •21.Архитектура ос windows nt/2000/xp
- •22. Архитектура ос windows vista
- •23.Структура пользовательского режима. Программный интерфейс Win32 api.
- •24.Реестр ос Windows Vista.
- •25. Реализация объектов в oc windows Vista. Структура объектов.
- •26. Реализация объектов в oc windows Vista. Типы объектов.
- •27. Реализация объектов в oc windows Vista. Пространство имён.
- •Структура пространства имен
- •28. Задания, процессы, потоки, волокна в oc windows Vista.
- •29. Межпроцессное взаимодействие в oc windows Vista.
- •30. Реализация процессов и потоков в oc windows Vista.
- •31. Планирование в oc windows Vista. Условия вызова планировщика.
- •32. Планирование в oc windows Vista. Система приоритетов.
- •33. Планирование в oc windows Vista. Условия изменения приоритетов.
- •34. Технология dll. Структура dll-библиотеки. Наиболее важные dll-библиотеки.
- •35. Технология dll. Преимущества и недостатки dll. Win32 и dll
- •38. Конфигурация виртуального адресного пространства для пользовательского
- •39. Реализация, поддержка, особенности виртуальной памяти в oc windows Vista.
- •40. Реализация управления памятью в oc windows Vista. Обработка страничных
- •41. Алгоритм замещения страниц в oc windows Vista.
- •42. Управление физической памятью в oc windows Vista.
- •44. Файловая система fat. Загрузочный сектор.
- •45. Файловая система fat. Таблица размещения файлов.
- •46. Файловая система ntfs. Структура тома.
- •47. Файловая система ntfs. Структура главной файловой таблицы mft
- •48. Файловая система ntfs. Файловая запись mft для малого и большого файла.
- •49. Файловая система ntfs. Файловая запись mfTдля малого и большого каталога.
- •50. Файловая система ntfs. Файлы метаданных.
17. Файловые системы в ос Linux. Общие понятия.
ОС Линукс поддерживает несколько десятков файловых систем. Это возможно благодаря наличию виртуальной файловой системы (файловый ввод\вывод относится как раз к блочным устройствам). Файл в системе Линукс - это последовательность байтов произвольной длины содержащие произвольную информацию. В ОС Линукс нет различий между текстовыми файлами, двоичными файлами и любыми другими типами файлов; имена файлов ограничены длиной 256 символов, в именах допускается использование всех ASCII-символов кроме символа null; имена файлов состоят из двух частей: имя файла и расширение файла (расширение могут иметь произвольную длину, причем их может быть несколько). Файлы могут группироваться в каталоги, каталоги представляют собой особый тип файлов с которыми можно работать также как и с файлами. Каталоги могут содержать подкаталоги, создавая тем самым иерархическую структуру. Корневой каталог называется "/"(bin - двоичные исполняемые программы, dev - специальные файлы для устройств I/O, etc - различные системные файлы, lib - библиотеки, usr - каталоги пользователя). Два способа задания имени файлов: абсолютный путь (в этом способе необходимо указывать полный путь к файлу начиная с корневого каталога) и относительный путь (в данном способе используется понятие рабочего каталога и имена путей указываются относительно рабочего каталога). Также в ОС Линукс реализована система ссылок (link) - это запись каталога, указывающая на существующий файл (например, есть два пользователя с разными рабочими директориями: 1 и 2; пользователю 2 необходим доступ к файлу С. Для доступа к данному файлу 1-му пользователю необходимо указывать абсолютный путь. Чтобы этого избежать можно создать ссылку на нужный файл. Вторым способом решения данной проблемы является использование следующей записи: '../' ( при создании каталога в нём автоматически создаются две записи: запись "." и запись ".."; "." означает сам каталог, а ".." это ссылка на родительский каталог).
В системе может существовать одновременно несколько устройств хранения данных. При этом возникает задача по эффективному управлению данными устройствами. Одним из решений является создание отдельной файловой системы для каждого устройства и отдельно управлять ими. Совершенно другой подход применяется в ОС Windows. Он заключается в том, чтобы смонтировать одно из устройств в дерево файлов другого устройства (при таком подходе не имеет значение какому устройству или какому диску принадлежит данный файл). Точка монтирования.
18. Файловые системы в ос Linux. Файловая система Ext2.
(пишем весь 17 вопросы и содержание этого вопроса)
Структура
файловой системвы ext2 имеет следующий
вид:
-Загрузчик служит для загрузки ОС;
-Группа блоков "0" также относится к загрузке ОС (содержит код загрузки);
-Далее следуют следующие группы блоков.
Каждый блок состоит из:
- суперблок - в нём хранится информация о компоновке файловой системы, включая: количество и-узлов, количество дисковых блоков, начало списка свободных дисковых блоков;
- дескриптор группы - содержит информацию о расположении битовых массивов, количество свободных блоков и узлов в группе, количество каталогов в группе (это необходимо для равномерного распределения каталогов по всему диску);
- блоковый битовый массив — ведёт учёт свободных блоков;
- битовый массив и-узлов - ведёт учёт свободных и-узлов;
- и-узлы - нумеруются от единицы до какого-то значения (узел 1 - учёт повреждённых блоков, узел 2 - корневой каталог, и так далее); каждый и-узел имеет размер 128 байт, описывает ровно один файл или каталог;
-
блоки данных - хранятся каталоги и файлы,
причём если файл или каталог состоит
более чем из одного блока, то не обязательно
они будут храниться непрерывно на диске.
Файловая система ext2 пытается расположить обычные файлы в той же самой группе блоков что и родительский каталог, а файлы данных в том же блоке что и узел исходного файла. Битовые массивы используются для принятия быстрых решений по выделению свободного места. Когда выделяются новые блоки файлов, то файловая система ext2 делает упреждающее выделение дополнительных блоков для минимизирования будущей фрагментации. Рассмотрим пример структуры каталога с 3 файлами:
Каждый каталог состоит из некоторого количества дисковых блоков. В каталоге элементы для файлов находятся в неотсортированном порядке. Элементы не могут пересекать границы блоков, поэтому в конце каждого дискового блока есть некоторое количество неиспользуемых байт. Каждая запись каталога состоит из 4 полей фиксированной длины и одного переменного.
Структура каталога имеет следующие поля:
номер и-узла (чаще всего и-узлы не упорядочены);
размер всей записи (rec_len);
тип (файл, каталог и так далее);
длина имени файла;
имя файла, которое заканчивается нулевым байтом.
Особенности поиска файла после удаления пути:
-мы указали в командной строке такой путь: /usr/os/lab/f1. В данном случае поиск разделяется на несколько шагов: - система находит корневой каталог, который использует и-узел с номером 2; - данный элемент помещается в кэш элементов, в корневом каталоге производится поиск строки /os/lab/f1, вычисляется его и-узел; - найденный элемент помещается в кэш; - из найденного и-узла производится поиск записи /lab/f1, вычисляется и-узел; - найденный элемент помещается в кэш и так далее (то есть рекурсивно, пока не дойдём до файла).
Поиск в каталогах производится линейно, и поэтому, это занимает много времени. Для этого используется кэш каталога.
Некоторые элементы и-узла:
Mode (file(F) or directory(D));
Nlinks (количество элементов каталога указывающих на этот и-узел);
Size (размер файла в байтах);
Addr (адрес первых 12 блоков файлов);
Atime (время последнего доступа к файлу);
Mtime (время последней модификации файла);
Ctime (время последнего изменения и-узла).